summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ben Lin <linben@google.com> 2024-11-06 03:09:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-11-06 03:09:04 +0000
commitd87b5ec3b1b09ba1c39e5004ebe1ddb35658bcb9 (patch)
tree84e2ec1c8e55dfddf1a454fe0289d67535abefdf
parent765d30add8964ab30f730fdd6f1852d202ec4e8d (diff)
parentd0dd29a3c75c46019200cc129520e6e257fcc2c2 (diff)
Merge "Set a transition to ready for removeTask IFF it's the only transition." into main
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskSupervisor.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
index cf178046d2e6..4857b02eaf7c 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -1725,9 +1725,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
return;
}
Transition transit = task.mTransitionController.requestCloseTransitionIfNeeded(task);
- if (transit == null) {
- transit = task.mTransitionController.getCollectingTransition();
- }
if (transit != null) {
transit.collectClose(task);
if (!task.mTransitionController.useFullReadyTracking()) {
@@ -1739,7 +1736,15 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
// before anything that may need it to wait (setReady(false)).
transit.setReady(task, true);
}
+ } else {
+ // If we failed to create a transition, there might be already a currently collecting
+ // transition. Let's use it if possible.
+ transit = task.mTransitionController.getCollectingTransition();
+ if (transit != null) {
+ transit.collectClose(task);
+ }
}
+
// Consume the stopping activities immediately so activity manager won't skip killing
// the process because it is still foreground state, i.e. RESUMED -> PAUSING set from
// removeActivities -> finishIfPossible.