diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 6e7db5529b..ea4b08d3bd 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -384,10 +384,10 @@ public abstract class AbsSwipeUpHandler, // Set up a entire animation lifecycle callback to notify the current recents view when // the animation is canceled mGestureState.runOnceAtState(STATE_RECENTS_ANIMATION_CANCELED, () -> { - ThumbnailData snapshot = mGestureState.getRecentsAnimationCanceledSnapshot(); + ThumbnailData snapshot = mGestureState.consumeRecentsAnimationCanceledSnapshot(); if (snapshot != null) { - RecentsModel.INSTANCE.get(mContext).onTaskSnapshotChanged( - mRecentsView.getRunningTaskId(), snapshot); + mRecentsView.switchToScreenshot(snapshot, + () -> mRecentsAnimationController.cleanupScreenshot()); mRecentsView.onRecentsAnimationComplete(); } }); diff --git a/quickstep/src/com/android/quickstep/GestureState.java b/quickstep/src/com/android/quickstep/GestureState.java index a302a07bca..015002f0e1 100644 --- a/quickstep/src/com/android/quickstep/GestureState.java +++ b/quickstep/src/com/android/quickstep/GestureState.java @@ -376,11 +376,14 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL } /** - * Returns the canceled animation thumbnail data. This call only returns a value while - * STATE_RECENTS_ANIMATION_CANCELED state is being set. + * Returns and clears the canceled animation thumbnail data. This call only returns a value + * while STATE_RECENTS_ANIMATION_CANCELED state is being set, and the caller is responsible for + * calling {@link RecentsAnimationController#cleanupScreenshot()}. */ - ThumbnailData getRecentsAnimationCanceledSnapshot() { - return mRecentsAnimationCanceledSnapshot; + ThumbnailData consumeRecentsAnimationCanceledSnapshot() { + ThumbnailData data = mRecentsAnimationCanceledSnapshot; + mRecentsAnimationCanceledSnapshot = null; + return data; } void setSwipeUpStartTimeMs(long uptimeMs) {