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

Commit 5feda220 authored by Jason Chang's avatar Jason Chang Committed by Android (Google) Code Review
Browse files

Merge "Fix abnormal flicking when swiping up to exit OHM"

parents 870d7336 e08dd586
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class OneHandedModeInputConsumer extends DelegateInputConsumer {
    private final PointF mLastPos = new PointF();

    private boolean mPassedSlop;
    private boolean mIsStopGesture;

    public OneHandedModeInputConsumer(Context context, RecentsAnimationDeviceState deviceState,
            InputConsumer delegate, InputMonitorCompat inputMonitor) {
@@ -105,7 +106,7 @@ public class OneHandedModeInputConsumer extends DelegateInputConsumer {
                    float distance = (float) Math.hypot(mLastPos.x - mDownPos.x,
                            mLastPos.y - mDownPos.y);
                    if (distance > mDragDistThreshold && mPassedSlop) {
                        onStopGestureDetected();
                        mIsStopGesture = true;
                    }
                }
                break;
@@ -113,15 +114,14 @@ public class OneHandedModeInputConsumer extends DelegateInputConsumer {
            case ACTION_UP: {
                if (mLastPos.y >= mDownPos.y && mPassedSlop) {
                    onStartGestureDetected();
                } else if (mIsStopGesture) {
                    onStopGestureDetected();
                }

                mPassedSlop = false;
                mState = STATE_INACTIVE;
                clearState();
                break;
            }
            case ACTION_CANCEL:
                mPassedSlop = false;
                mState = STATE_INACTIVE;
                clearState();
                break;
        }

@@ -130,6 +130,12 @@ public class OneHandedModeInputConsumer extends DelegateInputConsumer {
        }
    }

    private void clearState() {
        mPassedSlop = false;
        mState = STATE_INACTIVE;
        mIsStopGesture = false;
    }

    private void onStartGestureDetected() {
        if (mDeviceState.isOneHandedModeEnabled()) {
            if (!mDeviceState.isOneHandedModeActive()) {