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

Commit 8afd10c9 authored by Winson Chung's avatar Winson Chung
Browse files

Ensure that ML model results are still bounded by the gesture insets

- In some cases, the ML model may return that it is a valid swipe
  even if it is out of the current inset bounds

Bug: 178561216
Test: Enable ML model, rotate to landscape and try to swipe near
      the edges
Change-Id: Iaecd11acf50a1a19fe5964e11e06fb564ca6988c
parent f0a75544
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -609,20 +609,21 @@ public class EdgeBackGestureHandler extends CurrentUserTracker implements Displa
        if (mVocab != null) {
            app = mVocab.getOrDefault(mPackageName, -1);
        }
        // Check if we are within the tightest bounds beyond which
        // we would not need to run the ML model.
        boolean withinRange = x < mMLEnableWidth + mLeftInset
                || x >= (mDisplaySize.x - mMLEnableWidth - mRightInset);
        if (!withinRange) {
            int results = -1;
            if (mUseMLModel && (results = getBackGesturePredictionsCategory(x, y, app)) != -1) {
                withinRange = results == 1;
            } else {
                // Denotes whether we should proceed with the gesture.
                // Even if it is false, we may want to log it assuming
                // it is not invalid due to exclusion.
                withinRange = x < mEdgeWidthLeft + mLeftInset

        // Denotes whether we should proceed with the gesture. Even if it is false, we may want to
        // log it assuming it is not invalid due to exclusion.
        boolean withinRange = x < mEdgeWidthLeft + mLeftInset
                || x >= (mDisplaySize.x - mEdgeWidthRight - mRightInset);
        if (withinRange) {
            int results = -1;

            // Check if we are within the tightest bounds beyond which we would not need to run the
            // ML model
            boolean withinMinRange = x < mMLEnableWidth + mLeftInset
                    || x >= (mDisplaySize.x - mMLEnableWidth - mRightInset);
            if (!withinMinRange && mUseMLModel
                    && (results = getBackGesturePredictionsCategory(x, y, app)) != -1) {
                withinRange = (results == 1);
            }
        }