Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2084,7 +2084,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final long ident = Binder.clearCallingIdentity(); try { getRecentTasks().removeAllVisibleTasks(); getRecentTasks().removeAllVisibleTasks(mAmInternal.getCurrentUserId()); } finally { Binder.restoreCallingIdentity(ident); } Loading services/core/java/com/android/server/wm/RecentTasks.java +2 −2 Original line number Diff line number Diff line Loading @@ -653,10 +653,10 @@ class RecentTasks { } } void removeAllVisibleTasks() { void removeAllVisibleTasks(int userId) { for (int i = mTasks.size() - 1; i >= 0; --i) { final TaskRecord tr = mTasks.get(i); if (isVisibleRecentTask(tr)) { if (tr.userId == userId && isVisibleRecentTask(tr)) { mTasks.remove(i); notifyTaskRemoved(tr, true /* wasTrimmed */, true /* killProcess */); } Loading services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java +22 −2 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ public class RecentTasksTest extends ActivityTestsBase { // excludedTask is not trimmed. assertTrimmed(mTasks.get(0)); mRecentTasks.removeAllVisibleTasks(); mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); // Only visible tasks removed. assertTrimmed(mTasks.get(0), mTasks.get(1), mTasks.get(2), mTasks.get(3)); Loading Loading @@ -849,10 +849,30 @@ public class RecentTasksTest extends ActivityTestsBase { mRecentTasks.add(t7); // Remove all the visible tasks and ensure that they are removed mRecentTasks.removeAllVisibleTasks(); mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); assertTrimmed(t1, t2, t3, t4, t5, t6, t7); } @Test public void testRemoveAllVisibleTasksPerUser() { mRecentTasks.setParameters(-1 /* min */, 3 /* max */, 100 /* ms */); // Create a visible task per user TaskRecord t1 = createTaskBuilder(".Task1") .setUserId(TEST_USER_0_ID) .build(); mRecentTasks.add(t1); TaskRecord t2 = createTaskBuilder(".Task1") .setUserId(TEST_USER_1_ID) .build(); mRecentTasks.add(t2); // Remove all the visible tasks and ensure that they are removed mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); assertTrimmed(t1); } @Test public void testNotRestoreRecentTaskApis() { final TaskRecord task = createTaskBuilder(".Task").build(); Loading Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2084,7 +2084,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final long ident = Binder.clearCallingIdentity(); try { getRecentTasks().removeAllVisibleTasks(); getRecentTasks().removeAllVisibleTasks(mAmInternal.getCurrentUserId()); } finally { Binder.restoreCallingIdentity(ident); } Loading
services/core/java/com/android/server/wm/RecentTasks.java +2 −2 Original line number Diff line number Diff line Loading @@ -653,10 +653,10 @@ class RecentTasks { } } void removeAllVisibleTasks() { void removeAllVisibleTasks(int userId) { for (int i = mTasks.size() - 1; i >= 0; --i) { final TaskRecord tr = mTasks.get(i); if (isVisibleRecentTask(tr)) { if (tr.userId == userId && isVisibleRecentTask(tr)) { mTasks.remove(i); notifyTaskRemoved(tr, true /* wasTrimmed */, true /* killProcess */); } Loading
services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java +22 −2 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ public class RecentTasksTest extends ActivityTestsBase { // excludedTask is not trimmed. assertTrimmed(mTasks.get(0)); mRecentTasks.removeAllVisibleTasks(); mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); // Only visible tasks removed. assertTrimmed(mTasks.get(0), mTasks.get(1), mTasks.get(2), mTasks.get(3)); Loading Loading @@ -849,10 +849,30 @@ public class RecentTasksTest extends ActivityTestsBase { mRecentTasks.add(t7); // Remove all the visible tasks and ensure that they are removed mRecentTasks.removeAllVisibleTasks(); mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); assertTrimmed(t1, t2, t3, t4, t5, t6, t7); } @Test public void testRemoveAllVisibleTasksPerUser() { mRecentTasks.setParameters(-1 /* min */, 3 /* max */, 100 /* ms */); // Create a visible task per user TaskRecord t1 = createTaskBuilder(".Task1") .setUserId(TEST_USER_0_ID) .build(); mRecentTasks.add(t1); TaskRecord t2 = createTaskBuilder(".Task1") .setUserId(TEST_USER_1_ID) .build(); mRecentTasks.add(t2); // Remove all the visible tasks and ensure that they are removed mRecentTasks.removeAllVisibleTasks(TEST_USER_0_ID); assertTrimmed(t1); } @Test public void testNotRestoreRecentTaskApis() { final TaskRecord task = createTaskBuilder(".Task").build(); Loading