diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index e7df2226a2bf5..561c2f29d88ab 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -754,10 +754,7 @@ class Task extends TaskFragment { } void removeIfPossible(String reason) { - final boolean isRootTask = isRootTask(); - if (!isRootTask) { - mAtmService.getLockTaskController().clearLockedTask(this); - } + mAtmService.getLockTaskController().clearLockedTask(this); if (shouldDeferRemoval()) { if (DEBUG_ROOT_TASK) Slog.i(TAG, "removeTask:" + reason + " deferring removing taskId=" + mTaskId); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java index 2b85232da9d7b..629e452082346 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java @@ -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();