summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Winson Chung <winsonc@google.com> 2018-04-10 03:23:39 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-04-10 03:23:39 +0000
commitd4a95a168974bf4052f63b9925de9594be684d66 (patch)
treec69e26312772e5ea4ba660e0ba5ade21efe4895d
parent445a6c6bdaa2a200c91fe6e6430f176c155cec97 (diff)
parent99720d48dc1f0ad629120e921f45a36544277ac9 (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.java4
-rw-r--r--services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java24
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);