Merge "Do not animate moving to rest state on CHANGE_ACTIVE_SCREEN." into tm-qpr-dev am: eef0b1640b

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20794890

Change-Id: Icb84709366849144227bba98c744f86019d04520
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Pat Manning
2022-12-22 18:11:20 +00:00
committed by Automerger Merge Worker
2 changed files with 10 additions and 3 deletions

View File

@@ -937,7 +937,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) {

View File

@@ -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;
}