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

Commit dea4663f authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed an issue where the phone would be stuck pulseExpanding

During long drags, in combination with face unlock / bypass
the phone could get stuck pulseExpanding, especially when
the screen was turned off. We now give the pulse expandhelper
the touch if it is currently handling the pulse to gracefully
reset.

Test: expand with a long pulse with bypass, turn off screen, observe not stuck
Fixes: 192239213
Change-Id: Ifcb6ce48f9d406843599cc7f8e7edc27f3ad0cd0
parent 0b674848
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -179,7 +179,10 @@ constructor(
    }

    override fun onTouchEvent(event: MotionEvent): Boolean {
        if (!canHandleMotionEvent()) {
        val finishExpanding = (event.action == MotionEvent.ACTION_CANCEL ||
            event.action == MotionEvent.ACTION_UP) && isExpanding
        if (!canHandleMotionEvent() && !finishExpanding) {
            // We allow cancellations/finishing to still go through here to clean up the state
            return false
        }

+7 −2
Original line number Diff line number Diff line
@@ -3821,8 +3821,13 @@ public class NotificationPanelViewController extends PanelViewController {
                    expand(true /* animate */);
                }
                initDownStates(event);
                if (!mIsExpanding && !shouldQuickSettingsIntercept(mDownX, mDownY, 0)
                        && mPulseExpansionHandler.onTouchEvent(event)) {

                // If pulse is expanding already, let's give it the touch. There are situations
                // where the panel starts expanding even though we're also pulsing
                boolean pulseShouldGetTouch = (!mIsExpanding
                        && !shouldQuickSettingsIntercept(mDownX, mDownY, 0))
                        || mPulseExpansionHandler.isExpanding();
                if (pulseShouldGetTouch && mPulseExpansionHandler.onTouchEvent(event)) {
                    // We're expanding all the other ones shouldn't get this anymore
                    return true;
                }