diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 82eaecdd6b..d08949baa4 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -230,6 +230,7 @@ public abstract class AbsSwipeUpHandler, // Used to control launcher components throughout the swipe gesture. private AnimatorControllerWithResistance mLauncherTransitionController; + private boolean mHasEndedLauncherTransition; private AnimationFactory mAnimationFactory = (t) -> { }; @@ -603,11 +604,11 @@ public abstract class AbsSwipeUpHandler, /** * We don't want to change mLauncherTransitionController if mGestureState.getEndTarget() == HOME - * (it has its own animation). + * (it has its own animation) or if we explicitly ended the controller already. * @return Whether we can create the launcher controller or update its progress. */ private boolean canCreateNewOrUpdateExistingLauncherTransitionController() { - return mGestureState.getEndTarget() != HOME; + return mGestureState.getEndTarget() != HOME && !mHasEndedLauncherTransition; } @Override @@ -1422,6 +1423,8 @@ public abstract class AbsSwipeUpHandler, } private void endLauncherTransitionController() { + mHasEndedLauncherTransition = true; + if (mLauncherTransitionController != null) { // End the animation, but stay at the same visual progress. mLauncherTransitionController.getNormalController().dispatchSetInterpolator( diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 37cb979a0d..e8324f70e0 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -64,6 +64,7 @@ import android.view.Surface; import android.view.accessibility.AccessibilityManager; import androidx.annotation.BinderThread; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.UiThread; import androidx.annotation.WorkerThread; @@ -323,10 +324,10 @@ public class TouchInteractionService extends Service implements PluginListener