Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1af8b968 authored by Derek Wu's avatar Derek Wu
Browse files

Add flag to enable jerk prediction pruning.

For now this flag will simply allow all motion predictions (no-op).

Test: atest libinput_tests
Bug: 266747654
Change-Id: I7f8254bb4ea6702fecbb8cd8cfa568dbd06e4f37
parent 0c81eb0a
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -22,17 +22,21 @@
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <string>
#include <vector>

#include <android-base/logging.h>
#include <android-base/strings.h>
#include <android/input.h>
#include <com_android_input_flags.h>

#include <attestation/HmacKeyManager.h>
#include <ftl/enum.h>
#include <input/TfLiteMotionPredictor.h>

namespace input_flags = com::android::input::flags;

namespace android {
namespace {

@@ -197,7 +201,14 @@ std::unique_ptr<MotionEvent> MotionPredictor::predict(nsecs_t timestamp) {
            // device starts to speed up, but avoids producing noisy predictions as it slows down.
            break;
        }
        // TODO(b/266747654): Stop predictions if confidence is < some threshold.
        if (input_flags::enable_jerk_prediction_pruning()) {
            // TODO(b/266747654): Stop predictions if confidence is < some threshold
            // Arbitrarily high pruning index, will correct once jerk thresholding is implemented.
            const size_t upperBoundPredictionIndex = std::numeric_limits<size_t>::max();
            if (i > upperBoundPredictionIndex) {
                break;
            }
        }

        const TfLiteMotionPredictorSample::Point predictedPoint =
                convertPrediction(axisFrom, axisTo, predictedR[i], predictedPhi[i]);
+7 −0
Original line number Diff line number Diff line
@@ -128,3 +128,10 @@ flag {
  description: "Enable fling scrolling to be stopped by putting a finger on the touchpad again"
  bug: "281106755"
}

flag {
  name: "enable_jerk_prediction_pruning"
  namespace: "input"
  description: "Enable prediction pruning based on jerk thresholds."
  bug: "266747654"
}