Merge "clearLockTask for root tasks as well at removal" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ec801cc398
@@ -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);
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user