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

Commit cc31ba53 authored by Pat Manning's avatar Pat Manning
Browse files

Do not animate moving to rest state on CHANGE_ACTIVE_SCREEN.

Fix: 259380717
Test: manual
Change-Id: Icec103b26603290c7998977fa9c4d89132620a9d
parent 74229430
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ import com.android.launcher3.logging.StatsLogManager.StatsLogger;
import com.android.launcher3.model.BgDataModel.FixedContainerItems;
import com.android.launcher3.model.WellbeingModel;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.popup.SystemShortcut;
import com.android.launcher3.proxy.ProxyActivityStarter;
import com.android.launcher3.proxy.StartActivityParams;
@@ -920,7 +919,11 @@ public class QuickstepLauncher extends Launcher {
        // When changing screens, force moving to rest state similar to StatefulActivity.onStop, as
        // StatefulActivity isn't called consistently.
        if ((flags & CHANGE_ACTIVE_SCREEN) != 0) {
            getStateManager().moveToRestState();
            // Do not animate moving to rest state, as it can clash with Launcher#onIdpChanged
            // where reapplyUi calls StateManager's reapplyState during the state change animation,
            // and cancel the state change unexpectedly. The screen will be off during screen
            // transition, hiding the unanimated transition.
            getStateManager().moveToRestState(/* isAnimated = */false);
        }

        if ((flags & CHANGE_NAVIGATION_MODE) != 0) {
+5 −2
Original line number Diff line number Diff line
@@ -342,7 +342,6 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> {
            public void onAnimationSuccess(Animator animator) {
                onStateTransitionEnd(state);
            }

        };
    }

@@ -377,12 +376,16 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> {
    }

    public void moveToRestState() {
        moveToRestState(shouldAnimateStateChange());
    }

    public void moveToRestState(boolean isAnimated) {
        if (mConfig.currentAnimation != null && mConfig.userControlled) {
            // The user is doing something. Lets not mess it up
            return;
        }
        if (mState.shouldDisableRestore()) {
            goToState(getRestState());
            goToState(getRestState(), isAnimated);
            // Reset history
            mLastStableState = mBaseState;
        }