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

Commit e59a723a authored by Tony Wickham's avatar Tony Wickham
Browse files

Fix taskbar jumping when going home

- Set resumed state immediately when finishing recents controller to launcher, otherwise there's a race where we start animating gesture state to 0 before animating resumed state to 1, which causes the jump in the bug

Test: Swipe from app to home 10 times, no jump
Fixes: 203725820
Change-Id: Ie8a1add29902a9961ba4d7861ba5424ab656f1c8
parent eb4b2d01
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -195,7 +195,7 @@ import java.util.function.Supplier;
        if (hasAnyFlag(changedFlags, FLAG_RESUMED)) {
            boolean isResumed = isResumed();
            ObjectAnimator anim = mIconAlignmentForResumedState
                    .animateToValue(getCurrentIconAlignmentRatio(), isResumed ? 1 : 0)
                    .animateToValue(isResumed ? 1 : 0)
                    .setDuration(duration);

            anim.addListener(new AnimatorListenerAdapter() {
@@ -351,9 +351,16 @@ import java.util.function.Supplier;

        private void endGestureStateOverride(boolean finishedToApp) {
            mCallbacks.removeListener(this);

            // Update the resumed state immediately to ensure a seamless handoff
            boolean launcherResumed = !finishedToApp;
            mIconAlignmentForResumedState.updateValue(launcherResumed ? 1 : 0);

            updateStateForFlag(FLAG_RECENTS_ANIMATION_RUNNING, false);
            updateStateForFlag(FLAG_RESUMED, launcherResumed);
            applyState();


            TaskbarStashController controller = mControllers.taskbarStashController;
            controller.updateStateForFlag(FLAG_IN_APP, finishedToApp);
            controller.applyState();