diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index b7c6743780..5a3e009b8d 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -217,6 +217,8 @@ public abstract class AbsSwipeUpHandler, // Either RectFSpringAnim (if animating home) or ObjectAnimator (from mCurrentShift) otherwise private RunningWindowAnim mRunningWindowAnim; + // Possible second animation running at the same time as mRunningWindowAnim + private Animator mParallelRunningAnim; private boolean mIsMotionPaused; private boolean mHasMotionEverBeenPaused; @@ -798,6 +800,13 @@ public abstract class AbsSwipeUpHandler, mRunningWindowAnim.end(); } } + if (mParallelRunningAnim != null) { + if (cancel) { + mParallelRunningAnim.cancel(); + } else { + mParallelRunningAnim.end(); + } + } } private void onSettledOnEndTarget() { @@ -1060,7 +1069,11 @@ public abstract class AbsSwipeUpHandler, ActivityManagerWrapper.getInstance().registerTaskStackListener( mActivityRestartListener); - mActivityInterface.onAnimateToLauncher(mGestureState.getEndTarget(), duration); + mParallelRunningAnim = mActivityInterface.getParallelAnimationToLauncher( + mGestureState.getEndTarget(), duration); + if (mParallelRunningAnim != null) { + mParallelRunningAnim.start(); + } } if (mGestureState.getEndTarget() == HOME) { diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index 3afffc1dad..d810947ee5 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -347,7 +347,9 @@ public abstract class BaseActivityInterface