Loading services/core/java/com/android/server/am/RecentTasks.java +2 −2 Original line number Diff line number Diff line Loading @@ -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"); Loading services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -593,6 +594,23 @@ public class RecentTasksTest extends ActivityTestsBase { assertNoTasksTrimmed(); } @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(), Loading Loading @@ -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); Loading Loading
services/core/java/com/android/server/am/RecentTasks.java +2 −2 Original line number Diff line number Diff line Loading @@ -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"); Loading
services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -593,6 +594,23 @@ public class RecentTasksTest extends ActivityTestsBase { assertNoTasksTrimmed(); } @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(), Loading Loading @@ -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); Loading