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

Commit 7c6dd3d5 authored by Ned Burns's avatar Ned Burns
Browse files

Collapse shade on ACTION_CANCEL (sometimes)

As of ag/11546928, the framework emits an ACTION_CANCEL when the
proximity sensor turns off the screen, not an ACTION_UP. Previously, we
always expanded the shade in response to an ACTION_CANCEL. However,
after this change, this caused Dialer users to end up with an expanded
shade after putting the phone to their face, making it easy to
face-dial their notifications. This CL changes the behavior to put the
shade back to where it was when the gesture started -- either expanded
or closed.

Fixes: 155362798
Test: manual
Change-Id: I2d11d9f03bfe1e905028a640e2eb871d32e37248
parent 4f5495ea
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -371,12 +371,26 @@ public abstract class PanelViewController {
            float vectorVel = (float) Math.hypot(
                    mVelocityTracker.getXVelocity(), mVelocityTracker.getYVelocity());

            boolean expand = flingExpands(vel, vectorVel, x, y)
                    || event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel;
            final boolean onKeyguard =
                    mStatusBarStateController.getState() == StatusBarState.KEYGUARD;

            final boolean expand;
            if (event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
                // If we get a cancel, put the shade back to the state it was in when the gesture
                // started
                if (onKeyguard) {
                    expand = true;
                } else {
                    expand = !mPanelClosedOnDown;
                }
            } else {
                expand = flingExpands(vel, vectorVel, x, y);
            }

            mDozeLog.traceFling(expand, mTouchAboveFalsingThreshold,
                    mStatusBar.isFalsingThresholdNeeded(), mStatusBar.isWakeUpComingFromTouch());
            // Log collapse gesture if on lock screen.
            if (!expand && mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
            if (!expand && onKeyguard) {
                float displayDensity = mStatusBar.getDisplayDensity();
                int heightDp = (int) Math.abs((y - mInitialTouchY) / displayDensity);
                int velocityDp = (int) Math.abs(vel / displayDensity);