Merge "Don't reparent stack created by organizer."
This commit is contained in:
committed by
Android (Google) Code Review
commit
fc508f3432
@@ -1851,8 +1851,12 @@ final class TaskDisplayArea extends DisplayArea<Task> {
|
||||
.getTopStackInWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) : null;
|
||||
for (int stackNdx = 0; stackNdx < numStacks; stackNdx++) {
|
||||
final Task stack = getStackAt(stackNdx);
|
||||
// Always finish non-standard type stacks.
|
||||
if (destroyContentOnRemoval || !stack.isActivityTypeStandardOrUndefined()) {
|
||||
// Always finish non-standard type stacks and stacks created by a organizer.
|
||||
// TODO: For stacks created by organizer, consider reparenting children tasks if the use
|
||||
// case arises in the future.
|
||||
if (destroyContentOnRemoval
|
||||
|| !stack.isActivityTypeStandardOrUndefined()
|
||||
|| stack.mCreatedByOrganizer) {
|
||||
stack.finishAllActivitiesImmediately();
|
||||
} else {
|
||||
// Reparent the stack to the root task of secondary-split-screen or display area.
|
||||
|
||||
@@ -296,6 +296,37 @@ public class TaskDisplayAreaTests extends WindowTestsBase {
|
||||
assertThat(taskDisplayArea.getOrientation()).isEqualTo(SCREEN_ORIENTATION_UNSET);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UseTestDisplay
|
||||
public void testRemove_reparentToDefault() {
|
||||
final Task task = createTaskStackOnDisplay(mDisplayContent);
|
||||
final TaskDisplayArea displayArea = task.getDisplayArea();
|
||||
displayArea.remove();
|
||||
assertTrue(displayArea.isRemoved());
|
||||
assertFalse(displayArea.hasChild());
|
||||
|
||||
final RootWindowContainer rootWindowContainer = mWm.mAtmService.mRootWindowContainer;
|
||||
final TaskDisplayArea defaultTaskDisplayArea =
|
||||
rootWindowContainer.getDefaultTaskDisplayArea();
|
||||
assertTrue(defaultTaskDisplayArea.mChildren.contains(task));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UseTestDisplay
|
||||
public void testRemove_stackCreatedByOrganizer() {
|
||||
final Task task = createTaskStackOnDisplay(mDisplayContent);
|
||||
task.mCreatedByOrganizer = true;
|
||||
final TaskDisplayArea displayArea = task.getDisplayArea();
|
||||
displayArea.remove();
|
||||
assertTrue(displayArea.isRemoved());
|
||||
assertFalse(displayArea.hasChild());
|
||||
|
||||
final RootWindowContainer rootWindowContainer = mWm.mAtmService.mRootWindowContainer;
|
||||
final TaskDisplayArea defaultTaskDisplayArea =
|
||||
rootWindowContainer.getDefaultTaskDisplayArea();
|
||||
assertFalse(defaultTaskDisplayArea.mChildren.contains(task));
|
||||
}
|
||||
|
||||
private void assertGetOrCreateStack(int windowingMode, int activityType, Task candidateTask,
|
||||
boolean reuseCandidate) {
|
||||
final TaskDisplayArea taskDisplayArea = candidateTask.getDisplayArea();
|
||||
|
||||
Reference in New Issue
Block a user