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

This commit is contained in:
TreeHugger Robot
2021-06-22 18:01:09 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 8 deletions

View File

@@ -974,10 +974,7 @@ class Task extends WindowContainer<WindowContainer> {
} }
void removeIfPossible(String reason) { void removeIfPossible(String reason) {
final boolean isRootTask = isRootTask();
if (!isRootTask) {
mAtmService.getLockTaskController().clearLockedTask(this); mAtmService.getLockTaskController().clearLockedTask(this);
}
if (shouldDeferRemoval()) { if (shouldDeferRemoval()) {
if (DEBUG_ROOT_TASK) Slog.i(TAG, if (DEBUG_ROOT_TASK) Slog.i(TAG,
"removeTask:" + reason + " deferring removing taskId=" + mTaskId); "removeTask:" + reason + " deferring removing taskId=" + mTaskId);

View File

@@ -60,6 +60,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same; import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
@@ -121,8 +122,8 @@ public class TaskTests extends WindowTestsBase {
@Test @Test
public void testRemoveContainer() { public void testRemoveContainer() {
final Task taskController1 = createTask(mDisplayContent); final Task rootTask = createTask(mDisplayContent);
final Task task = createTaskInRootTask(taskController1, 0 /* userId */); final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
final ActivityRecord activity = createActivityRecord(mDisplayContent, task); final ActivityRecord activity = createActivityRecord(mDisplayContent, task);
task.removeIfPossible(); task.removeIfPossible();
@@ -130,12 +131,14 @@ public class TaskTests extends WindowTestsBase {
assertNull(task.getParent()); assertNull(task.getParent());
assertEquals(0, task.getChildCount()); assertEquals(0, task.getChildCount());
assertNull(activity.getParent()); assertNull(activity.getParent());
verify(mAtm.getLockTaskController(), atLeast(1)).clearLockedTask(task);
verify(mAtm.getLockTaskController(), atLeast(1)).clearLockedTask(rootTask);
} }
@Test @Test
public void testRemoveContainer_deferRemoval() { public void testRemoveContainer_deferRemoval() {
final Task taskController1 = createTask(mDisplayContent); final Task rootTask = createTask(mDisplayContent);
final Task task = createTaskInRootTask(taskController1, 0 /* userId */); final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
final ActivityRecord activity = createActivityRecord(mDisplayContent, task); final ActivityRecord activity = createActivityRecord(mDisplayContent, task);
doReturn(true).when(task).shouldDeferRemoval(); doReturn(true).when(task).shouldDeferRemoval();