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

Commit 3f5d510b authored by Tony Huang's avatar Tony Huang
Browse files

Fix launcher crash by set divider hidden

We will hide divider when isLikelyToStartNewTask become true, but
this call sometime earlier than onRecentsAnimationStart then cause
crash because mRecentsAnimationTargets is still null.

Fix this by checking mRecentsAnimationTargets before set divider
visibility. And also add new condition to hide divider to ensure
it hidden if such case happened.

Fix: 265238266
Test: manaul
Test: pass existing tests
Change-Id: I80b1294e69a52e7ac5255cd8e55e7c5e6a3dcbcb
parent 77a388c7
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -324,6 +324,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
    // May be set to false when mIsTransientTaskbar is true.
    private boolean mCanSlowSwipeGoHome = true;
    private boolean mHasReachedOverviewThreshold = false;
    private boolean mDividerHiddenBeforeAnimation = false;

    @Nullable
    private RemoteAnimationTargets.ReleaseCheck mSwipePipToHomeReleaseCheck = null;
@@ -1677,7 +1678,8 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        mRecentsAnimationController.enableInputConsumer();

        // Start hiding the divider
        if (!mIsTransientTaskbar || mTaskbarAlreadyOpen || mIsTaskbarAllAppsOpen) {
        if (!mIsTransientTaskbar || mTaskbarAlreadyOpen || mIsTaskbarAllAppsOpen
                || mDividerHiddenBeforeAnimation) {
            setDividerShown(false /* shown */, true /* immediate */);
        }
    }
@@ -2327,6 +2329,12 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
    }

    private void setDividerShown(boolean shown, boolean immediate) {
        if (mRecentsAnimationTargets == null) {
            if (!shown) {
                mDividerHiddenBeforeAnimation = true;
            }
            return;
        }
        if (mDividerAnimator != null) {
            mDividerAnimator.cancel();
        }