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

Commit e53315ec authored by Shawn Lee's avatar Shawn Lee
Browse files

Prevent flings after motion gestures on fully expanded keyguard

Any up-down gesture on keyguard would trigger a fling that visibly
jumped the keyguard up due to the different height calculation for
shade vs keyguard. If the gesture was quick enough, we were stuck
with this incorrect expansion fraction until the next touch.
This change simply blocks flings on keyguard off
guestures that end at full expansion.

Test: manual
Bug: 259023628
Change-Id: Id67c0e38cc28a13fd19d23bdd0b6bff31cf1fe30
parent 3d2e83aa
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -3508,12 +3508,15 @@ public final class NotificationPanelViewController implements Dumpable {
    }

    private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
        // don't fling while in keyguard to avoid jump in shade expand animation
        boolean fullyExpandedInKeyguard = mBarState == KEYGUARD && mExpandedFraction >= 1.0;
        mTrackingPointer = -1;
        mAmbientState.setSwipingUp(false);
        if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
        if (!fullyExpandedInKeyguard && ((mTracking && mTouchSlopExceeded)
                || Math.abs(x - mInitialExpandX) > mTouchSlop
                || Math.abs(y - mInitialExpandY) > mTouchSlop
                || (!isFullyExpanded() && !isFullyCollapsed())
                || event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
                || event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel)) {
            mVelocityTracker.computeCurrentVelocity(1000);
            float vel = mVelocityTracker.getYVelocity();
            float vectorVel = (float) Math.hypot(
@@ -3561,9 +3564,9 @@ public final class NotificationPanelViewController implements Dumpable {
            if (mUpdateFlingOnLayout) {
                mUpdateFlingVelocity = vel;
            }
        } else if (!mCentralSurfaces.isBouncerShowing()
        } else if (fullyExpandedInKeyguard || (!mCentralSurfaces.isBouncerShowing()
                && !mAlternateBouncerInteractor.isVisibleState()
                && !mKeyguardStateController.isKeyguardGoingAway()) {
                && !mKeyguardStateController.isKeyguardGoingAway())) {
            onEmptySpaceClick();
            onTrackingStopped(true);
        }