Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55d1e44c authored by Sunny Goyal's avatar Sunny Goyal
Browse files

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
parent 3831fc99
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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