From 0572aace11b5c62de8fe6c782c71f344d196c8e0 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Tue, 14 Feb 2023 16:18:22 +0800 Subject: [PATCH] Notify task stack changed when the transient launch committed To keep the same behavior as the legacy launch-behind transition. Bug: 268126002 Test: swipe up to home Change-Id: Ib48c7c2c2cf45cb00d10b48abd8d1dcf5283fc88 --- services/core/java/com/android/server/wm/Transition.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 43dbcc886d59a..0c86193d93dd7 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -813,6 +813,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } boolean hasParticipatedDisplay = false; + boolean reportTaskStackChanged = false; // Commit all going-invisible containers for (int i = 0; i < mParticipants.size(); ++i) { final WindowContainer participant = mParticipants.valueAt(i); @@ -855,6 +856,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { && ar.isVisible()) { // Transient launch was committed, so report enteringAnimation ar.mEnteringAnimation = true; + reportTaskStackChanged = true; + // Since transient launches don't automatically take focus, make sure we // synchronize focus since we committed to the launch. if (ar.isTopRunningActivity()) { @@ -877,6 +880,11 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } } } + + if (reportTaskStackChanged) { + mController.mAtm.getTaskChangeNotificationController().notifyTaskStackChanged(); + } + // dispatch legacy callback in a different loop. This is because multiple legacy handlers // (fixed-rotation/displaycontent) make global changes, so we want to ensure that we've // processed all the participants first (in particular, we want to trigger pip-enter first)