From 8935d9515c17db0d717757022d9d2442153ecf0d Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 18 May 2018 16:12:54 -0700 Subject: 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 --- src/com/android/launcher3/LauncherStateManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/com/android/launcher3/LauncherStateManager.java') diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java index b5eef8bd3..02fa916b1 100644 --- a/src/com/android/launcher3/LauncherStateManager.java +++ b/src/com/android/launcher3/LauncherStateManager.java @@ -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; -- cgit v1.2.3