Loading services/core/java/com/android/server/wm/TaskDisplayArea.java +8 −1 Original line number Diff line number Diff line Loading @@ -1627,7 +1627,14 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> { } boolean shouldKeepNoTask() { return mShouldKeepNoTask; if (mShouldKeepNoTask) { return true; } // A TaskDisplayArea can have another child TaskDisplayArea, so we should check all it's // parent TaskDisplayArea. return getParent() != null && getParent().asTaskDisplayArea() != null && getParent().asTaskDisplayArea().shouldKeepNoTask(); } @Override Loading services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -586,6 +586,18 @@ public class TaskDisplayAreaTests extends WindowTestsBase { assertTrue(defaultTaskDisplayArea.mChildren.contains(task)); } @Test public void testPrepareForRemoval_childTaskDisplayAreaShouldKeepNoTask() { final TaskDisplayArea parentTDA = mDefaultDisplay.getDefaultTaskDisplayArea(); final TaskDisplayArea childTDA = new TaskDisplayArea(mWm, "childTDA", FEATURE_VENDOR_FIRST, false /* createdByOrganizer */, true /* canHostHomeTask */); parentTDA.addChild(childTDA, POSITION_TOP); parentTDA.prepareForRemoval(); assertTrue(parentTDA.shouldKeepNoTask()); assertTrue(childTDA.shouldKeepNoTask()); } private void assertGetOrCreateRootTask(int windowingMode, int activityType, Task candidateTask, boolean reuseCandidate) { final TaskDisplayArea taskDisplayArea = candidateTask.getDisplayArea(); Loading Loading
services/core/java/com/android/server/wm/TaskDisplayArea.java +8 −1 Original line number Diff line number Diff line Loading @@ -1627,7 +1627,14 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> { } boolean shouldKeepNoTask() { return mShouldKeepNoTask; if (mShouldKeepNoTask) { return true; } // A TaskDisplayArea can have another child TaskDisplayArea, so we should check all it's // parent TaskDisplayArea. return getParent() != null && getParent().asTaskDisplayArea() != null && getParent().asTaskDisplayArea().shouldKeepNoTask(); } @Override Loading
services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -586,6 +586,18 @@ public class TaskDisplayAreaTests extends WindowTestsBase { assertTrue(defaultTaskDisplayArea.mChildren.contains(task)); } @Test public void testPrepareForRemoval_childTaskDisplayAreaShouldKeepNoTask() { final TaskDisplayArea parentTDA = mDefaultDisplay.getDefaultTaskDisplayArea(); final TaskDisplayArea childTDA = new TaskDisplayArea(mWm, "childTDA", FEATURE_VENDOR_FIRST, false /* createdByOrganizer */, true /* canHostHomeTask */); parentTDA.addChild(childTDA, POSITION_TOP); parentTDA.prepareForRemoval(); assertTrue(parentTDA.shouldKeepNoTask()); assertTrue(childTDA.shouldKeepNoTask()); } private void assertGetOrCreateRootTask(int windowingMode, int activityType, Task candidateTask, boolean reuseCandidate) { final TaskDisplayArea taskDisplayArea = candidateTask.getDisplayArea(); Loading