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

Commit ea18d209 authored by Justin Weir's avatar Justin Weir
Browse files

Ignore down touches in QS while animating

This prevents touches inside the QS bounds from putting NPVC in a
bad state that causes subsequent touches to be mishandled.

Bug: 261156369
Test: manual and atest
Change-Id: Ia5cab8c4104b1314bfca7189f0eba2e1175fed9b
parent e4cfc066
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -2421,7 +2421,7 @@ public final class NotificationPanelViewController implements Dumpable {
            mInitialTouchY = event.getY();
            mInitialTouchX = event.getX();
        }
        if (!isFullyCollapsed()) {
        if (!isFullyCollapsed() && !isShadeOrQsHeightAnimationRunning()) {
            handleQsDown(event);
        }
        // defer touches on QQS to shade while shade is collapsing. Added margin for error
@@ -5211,6 +5211,11 @@ public final class NotificationPanelViewController implements Dumpable {
        }
    }

    /** Returns whether a shade or QS expansion animation is running */
    private boolean isShadeOrQsHeightAnimationRunning() {
        return mHeightAnimator != null && !mHintAnimationRunning && !mIsSpringBackAnimation;
    }

    /**
     * Phase 2: Bounce down.
     */
@@ -6228,8 +6233,7 @@ public final class NotificationPanelViewController implements Dumpable {
                    mCollapsedAndHeadsUpOnDown =
                            isFullyCollapsed() && mHeadsUpManager.hasPinnedHeadsUp();
                    addMovement(event);
                    boolean regularHeightAnimationRunning = mHeightAnimator != null
                            && !mHintAnimationRunning && !mIsSpringBackAnimation;
                    boolean regularHeightAnimationRunning = isShadeOrQsHeightAnimationRunning();
                    if (!mGestureWaitForTouchSlop || regularHeightAnimationRunning) {
                        mTouchSlopExceeded = regularHeightAnimationRunning
                                || mTouchSlopExceededBeforeDown;