Fixing user getting stuck in quick-switch state
If we are cancelled after the animation has completed, but before the deferred frame was captured, we set the state as cancelled, and start the new consumer with the existing recents controller. But after the deferred frame, we finish the controller (and since the state was set to cancelled, do not launch the new task) Bug: 132756514 Change-Id: If30af713c76b6d895d0b01b93d31c0e1403b7214
This commit is contained in:
+8
-1
@@ -1261,7 +1261,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity>
|
||||
} else {
|
||||
taskView = mRecentsView.updateThumbnail(mRunningTaskId, mTaskSnapshot);
|
||||
}
|
||||
if (taskView != null) {
|
||||
if (taskView != null && !mCanceled) {
|
||||
// Defer finishing the animation until the next launcher frame with the
|
||||
// new thumbnail
|
||||
finishTransitionPosted = new WindowCallbacksCompat(taskView) {
|
||||
@@ -1271,6 +1271,13 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity>
|
||||
|
||||
@Override
|
||||
public void onPostDraw(Canvas canvas) {
|
||||
// If we were cancelled after this was attached, do not update
|
||||
// the state.
|
||||
if (mCanceled) {
|
||||
detach();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mDeferFrameCount > 0) {
|
||||
mDeferFrameCount--;
|
||||
// Workaround, detach and reattach to invalidate the root node for
|
||||
|
||||
Reference in New Issue
Block a user