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

Commit 9f72c67e authored by Jerry Chang's avatar Jerry Chang
Browse files

Fix split screen divider corners flicker

Divider bar might be hidden before swipe-up gesture started when users
touching task bar region. This makes sure to update visibility of
divider bar only after gesture started.

Fix: 219995626
Test: long press task bar region to stash/unstash task bar, divider bar
      won't be hidden as long as it didn't trigger swipe up gesture.
Change-Id: Iacf690c84a3ad4b5e4fc9b066e9a1ecb8a8aa7d1
parent 49cb99a4
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -833,12 +833,9 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        // Notify when the animation starts
        flushOnRecentsAnimationAndLauncherBound();

        // Start hiding the divider
        setDividerShown(false /* shown */, false /* immediate */);

        // Only add the callback to enable the input consumer after we actually have the controller
        mStateCallback.runOnceAtState(STATE_APP_CONTROLLER_RECEIVED | STATE_GESTURE_STARTED,
                mRecentsAnimationController::enableInputConsumer);
                this::startInterceptingTouchesForGesture);
        mStateCallback.setStateOnUiThread(STATE_APP_CONTROLLER_RECEIVED);

        mPassedOverviewThreshold = false;
@@ -1457,6 +1454,17 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        return swipePipToHomeAnimator;
    }

    private void startInterceptingTouchesForGesture() {
        if (mRecentsAnimationController == null) {
            return;
        }

        mRecentsAnimationController.enableInputConsumer();

        // Start hiding the divider
        setDividerShown(false /* shown */, true /* immediate */);
    }

    private void computeRecentsScrollIfInvisible() {
        if (mRecentsView != null && mRecentsView.getVisibility() != View.VISIBLE) {
            // Views typically don't compute scroll when invisible as an optimization,