From e35d411c507c460377881dbbc69ad17a20b9175a Mon Sep 17 00:00:00 2001 From: "jorgegil@google.com" Date: Mon, 8 Feb 2021 16:23:39 -0800 Subject: [PATCH] Reland: Dispatch TaskOrg events before finishing surface placement This ensures that calls to ITaskOrganizer.onTaskInfoChanged are sent before an IWindowContainterTransactionCallback is called back. Bug: 178535312 Test: verified dispatching of task info changes happens before onTransactionReady is called back Test: exit PIP animation uses updated source rect hint in its animation Change-Id: I972f428b90899fbbf9ff428db82ba1d2c25ebcc4 --- .../core/java/com/android/server/wm/RootWindowContainer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 2c97f783e14df..a69ff5d342a74 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -851,6 +851,8 @@ class RootWindowContainer extends WindowContainer mWmService.openSurfaceTransaction(); try { applySurfaceChangesTransaction(); + // Send any pending task-info changes that were queued-up during a layout deferment + mWmService.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); mWmService.mSyncEngine.onSurfacePlacement(); } catch (RuntimeException e) { Slog.wtf(TAG, "Unhandled exception in Window Manager", e); @@ -863,8 +865,6 @@ class RootWindowContainer extends WindowContainer } } - // Send any pending task-info changes that were queued-up during a layout deferment - mWmService.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); mWmService.mAnimator.executeAfterPrepareSurfacesRunnables(); checkAppTransitionReady(surfacePlacer);