diff options
| author | 2018-04-10 03:23:39 +0000 | |
|---|---|---|
| committer | 2018-04-10 03:23:39 +0000 | |
| commit | d4a95a168974bf4052f63b9925de9594be684d66 (patch) | |
| tree | c69e26312772e5ea4ba660e0ba5ade21efe4895d | |
| parent | 445a6c6bdaa2a200c91fe6e6430f176c155cec97 (diff) | |
| parent | 99720d48dc1f0ad629120e921f45a36544277ac9 (diff) | |
Merge "Fix regression in removing recent tasks by package name." into pi-dev
| -rw-r--r-- | services/core/java/com/android/server/am/RecentTasks.java | 4 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java | 24 |
2 files changed, 25 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java index 365c43666cc2..2b988d30f4bb 100644 --- a/services/core/java/com/android/server/am/RecentTasks.java +++ b/services/core/java/com/android/server/am/RecentTasks.java @@ -534,8 +534,8 @@ class RecentTasks { final TaskRecord tr = mTasks.get(i); final String taskPackageName = tr.getBaseIntent().getComponent().getPackageName(); - if (tr.userId != userId) return; - if (!taskPackageName.equals(packageName)) return; + if (tr.userId != userId) continue; + if (!taskPackageName.equals(packageName)) continue; mService.mStackSupervisor.removeTaskByIdLocked(tr.taskId, true, REMOVE_FROM_RECENTS, "remove-package-task"); diff --git a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java index 1192114109a9..592f7b16470f 100644 --- a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java +++ b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java @@ -39,6 +39,7 @@ import static org.mockito.Mockito.spy; import static java.lang.Integer.MAX_VALUE; +import android.annotation.TestApi; import android.app.ActivityManager; import android.app.ActivityManager.RecentTaskInfo; import android.app.ActivityManager.RunningTaskInfo; @@ -594,6 +595,23 @@ public class RecentTasksTest extends ActivityTestsBase { } @Test + public void testRemovePackageByName() throws Exception { + // Add a number of tasks with the same package name + mRecentTasks.add(createTaskBuilder("com.android.pkg1", ".Task1").build()); + mRecentTasks.add(createTaskBuilder("com.android.pkg2", ".Task2").build()); + mRecentTasks.add(createTaskBuilder("com.android.pkg3", ".Task3").build()); + mRecentTasks.add(createTaskBuilder("com.android.pkg1", ".Task4").build()); + mRecentTasks.removeTasksByPackageName("com.android.pkg1", TEST_USER_0_ID); + + final ArrayList<TaskRecord> tasks = mRecentTasks.getRawTasks(); + for (int i = 0; i < tasks.size(); i++) { + if (tasks.get(i).intent.getComponent().getPackageName().equals("com.android.pkg1")) { + fail("Expected com.android.pkg1 tasks to be removed"); + } + } + } + + @Test public void testNotRecentsComponent_denyApiAccess() throws Exception { doReturn(PackageManager.PERMISSION_DENIED).when(mService).checkPermission(anyString(), anyInt(), anyInt()); @@ -694,8 +712,12 @@ public class RecentTasksTest extends ActivityTestsBase { } private TaskBuilder createTaskBuilder(String className) { + return createTaskBuilder(mContext.getPackageName(), className); + } + + private TaskBuilder createTaskBuilder(String packageName, String className) { return new TaskBuilder(mService.mStackSupervisor) - .setComponent(new ComponentName(mContext.getPackageName(), className)) + .setComponent(new ComponentName(packageName, className)) .setStack(mStack) .setTaskId(LAST_TASK_ID++) .setUserId(TEST_USER_0_ID); |