Set mState = mCurrentStableState in onAnimationCancel

mState is set when the transition starts toward that state even if it is
never reached. If the animation is canceled, therefore, we should reset
mState = mCurrentStableState since that is the state we came from.

For instance, when swiping up from overview, mState = ALL_APPS, but when
swiping back down we cancel that animation and create the task launch
animation. When creating the task launch animation, we reapplyState(),
which, before this change, was still ALL_APPS instead of OVERVIEW.

Bug: 79935289
Change-Id: I59c5799e92350747e4ef1d99a80ba678a2ce7b98
This commit is contained in:
Tony Wickham
2018-05-18 16:12:54 -07:00
parent 688701317a
commit 8935d9515c
@@ -347,6 +347,12 @@ public class LauncherStateManager {
}
}
@Override
public void onAnimationCancel(Animator animation) {
super.onAnimationCancel(animation);
mState = mCurrentStableState;
}
@Override
public void onAnimationSuccess(Animator animator) {
// Run any queued runnables
@@ -432,7 +438,6 @@ public class LauncherStateManager {
}
public void setCurrentUserControlledAnimation(AnimatorPlaybackController controller) {
clearCurrentAnimation();
setCurrentAnimation(controller.getTarget());
mConfig.userControlled = true;
mConfig.playbackController = controller;