Fix regression from ag/2987716

- Removing some tasks can trigger the list to be updated (for the removed
  task), ensure that we iterate the list backwards so that iteration is
  not affected by any removed tasks.

Bug: 67785147
Test: Just reverting some code

Change-Id: If8afc222f62656cbf5404bcf79c70833514103e7
Signed-off-by: Winson Chung <winsonc@google.com>
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java
index 8fef6be..78274bd 100644
--- a/services/core/java/com/android/server/am/RecentTasks.java
+++ b/services/core/java/com/android/server/am/RecentTasks.java
@@ -427,8 +427,7 @@
     }
 
     void removeTasksByPackageName(String packageName, int userId) {
-        final int size = mTasks.size();
-        for (int i = 0; i < size; i++) {
+        for (int i = mTasks.size() - 1; i >= 0; --i) {
             final TaskRecord tr = mTasks.get(i);
             final String taskPackageName =
                     tr.getBaseIntent().getComponent().getPackageName();
@@ -441,8 +440,7 @@
 
     void cleanupDisabledPackageTasksLocked(String packageName, Set<String> filterByClasses,
             int userId) {
-        final int size = mTasks.size();
-        for (int i = 0; i < size; i++) {
+        for (int i = mTasks.size() - 1; i >= 0; --i) {
             final TaskRecord tr = mTasks.get(i);
             if (userId != UserHandle.USER_ALL && tr.userId != userId) {
                 continue;