diff --git a/src/com/android/launcher3/statemanager/StateManager.java b/src/com/android/launcher3/statemanager/StateManager.java index 89d89d6eca..198dad3c89 100644 --- a/src/com/android/launcher3/statemanager/StateManager.java +++ b/src/com/android/launcher3/statemanager/StateManager.java @@ -229,8 +229,10 @@ public class StateManager> { listener.onAnimationEnd(null); } return; - } else if (!mConfig.userControlled && animated && mConfig.targetState == state) { - // We are running the same animation as requested + } else if ((!mConfig.userControlled && animated && mConfig.targetState == state) + || mState.shouldPreserveDataStateOnReapply()) { + // We are running the same animation as requested, and/or target state should not be + // reset -- allow the current animation to complete instead of canceling it. if (listener != null) { mConfig.currentAnimation.addListener(listener); }