Merge "Finishes activities in the reverse order"
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 4e7fe0e..356cbda 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -1587,9 +1587,9 @@
         } else {
             // Finish or destroy apps from the bottom to ensure that all the other activity have
             // been finished and the top task in another task gets resumed when a top activity is
-            // removed. Otherwise, shell transitions wouldn't run because there would be no event
-            // that sets the transition ready.
-            final boolean traverseTopToBottom = !mTransitionController.isShellTransitionsEnabled();
+            // removed. Otherwise, the next top activity could be started while the top activity
+            // is removed, which is not necessary since the next top activity is on the same Task
+            // and should also be removed.
             forAllActivities((r) -> {
                 if (r.finishing || (excludingTaskOverlay && r.isTaskOverlay())) {
                     return;
@@ -1603,7 +1603,7 @@
                 } else {
                     r.destroyIfPossible(reason);
                 }
-            }, traverseTopToBottom);
+            }, false /* traverseTopToBottom */);
         }
     }