Merge "Fix regression in removing recent tasks by package name." into pi-dev

This commit is contained in:
Winson Chung
2018-04-10 03:23:39 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 3 deletions

View File

@@ -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");

View File

@@ -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;
@@ -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(),
@@ -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);