Defer cleaning up screenshot until after we actually switch to screenshot
- In the case where we get a screenshot on cancel, we should wait to finish the recents animation until the view gets a chance to update Bug: 185643608 Test: Swipe up to overview in 2 button, hit home Change-Id: I2ac3567006f6fa7e6f473499f6862e5e408dfc3d
This commit is contained in:
parent
f91abaa6f9
commit
a7d7f78c08
|
@ -383,10 +383,10 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
|||
// 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();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue