Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5419b11e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Only remove visible recent tasks for the current user"

parents a82d7831 42fa21f6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
            }
+2 −2
Original line number Diff line number Diff line
@@ -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 */);
            }
+22 −2
Original line number Diff line number Diff line
@@ -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));
@@ -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();