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

Commit 3b51b818 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "clearLockTask for root tasks as well at removal" into sc-dev am: ec801cc3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15006956

Change-Id: I88e4b0f1dbed376a890ec94e42ad327b88bae731
parents b267d292 ec801cc3
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -974,10 +974,7 @@ class Task extends WindowContainer<WindowContainer> {
    }

    void removeIfPossible(String reason) {
        final boolean isRootTask = isRootTask();
        if (!isRootTask) {
        mAtmService.getLockTaskController().clearLockedTask(this);
        }
        if (shouldDeferRemoval()) {
            if (DEBUG_ROOT_TASK) Slog.i(TAG,
                    "removeTask:" + reason + " deferring removing taskId=" + mTaskId);
+7 −4
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.never;

@@ -121,8 +122,8 @@ public class TaskTests extends WindowTestsBase {

    @Test
    public void testRemoveContainer() {
        final Task taskController1 = createTask(mDisplayContent);
        final Task task = createTaskInRootTask(taskController1, 0 /* userId */);
        final Task rootTask = createTask(mDisplayContent);
        final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
        final ActivityRecord activity = createActivityRecord(mDisplayContent, task);

        task.removeIfPossible();
@@ -130,12 +131,14 @@ public class TaskTests extends WindowTestsBase {
        assertNull(task.getParent());
        assertEquals(0, task.getChildCount());
        assertNull(activity.getParent());
        verify(mAtm.getLockTaskController(), atLeast(1)).clearLockedTask(task);
        verify(mAtm.getLockTaskController(), atLeast(1)).clearLockedTask(rootTask);
    }

    @Test
    public void testRemoveContainer_deferRemoval() {
        final Task taskController1 = createTask(mDisplayContent);
        final Task task = createTaskInRootTask(taskController1, 0 /* userId */);
        final Task rootTask = createTask(mDisplayContent);
        final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
        final ActivityRecord activity = createActivityRecord(mDisplayContent, task);

        doReturn(true).when(task).shouldDeferRemoval();