From 729eb8458bfc1adcb70f1207b55429b8d779bdd9 Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Fri, 15 Apr 2022 20:24:58 +0000 Subject: [PATCH] Fix crash/flicker with taskbar when canceling drag and drop The surfaceControl transaction is performed more than once so close the transaction at the end of the animation. Test: manual - start a drag from taskbar into split and then pull it back so that it doesn't complete => ensure taskbar doesn't flicker / no crash in logs Bug: 228006271 Change-Id: I38c8efe310596bbbbf09f361c266a7fefc1b2eea --- .../com/android/launcher3/taskbar/TaskbarDragController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index 9ba4a65e23..5c10565dc1 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -477,7 +477,6 @@ public class TaskbarDragController extends DragController im tx.setScale(dragSurface, scale, scale); tx.setAlpha(dragSurface, alpha); tx.apply(); - tx.close(); } }); mReturnAnimator.addListener(new AnimatorListenerAdapter() { @@ -498,6 +497,7 @@ public class TaskbarDragController extends DragController im } private void cleanUpSurface() { + tx.close(); maybeOnDragEnd(); // Synchronize removing the drag surface with the next draw after calling // maybeOnDragEnd() @@ -508,7 +508,6 @@ public class TaskbarDragController extends DragController im syncer.addToSync(syncId, viewRoot.getView()); syncer.addTransactionToSync(syncId, transaction); syncer.markSyncReady(syncId); - mReturnAnimator = null; } });