diff options
| author | 2025-01-06 22:03:13 -0800 | |
|---|---|---|
| committer | 2025-01-06 22:03:13 -0800 | |
| commit | 2e529466e5f8dda5141babdf82ce3ce30d00f598 (patch) | |
| tree | 134c1a9068f9c49a0c3bca3096451532e5bb5e0e | |
| parent | 0a98ece7ee01e044889634c3dd451288f03592dc (diff) | |
| parent | 2a80f2a6f8150ada3aa643bdb74d33f01636e744 (diff) | |
Merge changes Id4b6471a,I5543cfcf into main
* changes:
Refactor WindowStateTests to use newWindowBuilder
Refactor more various tests to use newWindowBuilder
12 files changed, 285 insertions, 241 deletions
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java index b6e393d7be0c..03d904283e83 100644 --- a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java @@ -342,8 +342,8 @@ public class AppTransitionTests extends WindowTestsBase { public void testCancelRemoteAnimationWhenFreeze() { final DisplayContent dc = createNewDisplay(Display.STATE_ON); doReturn(false).when(dc).onDescendantOrientationChanged(any()); - final WindowState exitingAppWindow = createWindow(null /* parent */, TYPE_BASE_APPLICATION, - dc, "exiting app"); + final WindowState exitingAppWindow = newWindowBuilder("exiting app", + TYPE_BASE_APPLICATION).setDisplay(dc).build(); final ActivityRecord exitingActivity = exitingAppWindow.mActivityRecord; // Wait until everything in animation handler get executed to prevent the exiting window // from being removed during WindowSurfacePlacer Traversal. diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentDeferredUpdateTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentDeferredUpdateTests.java index 14276ae21899..7033d79d0ee1 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentDeferredUpdateTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentDeferredUpdateTests.java @@ -266,10 +266,10 @@ public class DisplayContentDeferredUpdateTests extends WindowTestsBase { mSetFlagsRule.enableFlags(Flags.FLAG_WAIT_FOR_TRANSITION_ON_DISPLAY_SWITCH); prepareSecondaryDisplay(); - final WindowState defaultDisplayWindow = createWindow(/* parent= */ null, - TYPE_BASE_APPLICATION, mDisplayContent, "DefaultDisplayWindow"); - final WindowState secondaryDisplayWindow = createWindow(/* parent= */ null, - TYPE_BASE_APPLICATION, mSecondaryDisplayContent, "SecondaryDisplayWindow"); + final WindowState defaultDisplayWindow = newWindowBuilder("DefaultDisplayWindow", + TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build(); + final WindowState secondaryDisplayWindow = newWindowBuilder("SecondaryDisplayWindow", + TYPE_BASE_APPLICATION).setDisplay(mSecondaryDisplayContent).build(); makeWindowVisibleAndNotDrawn(defaultDisplayWindow, secondaryDisplayWindow); // Mark as display switching only for the default display as we filter out diff --git a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java index bd15bc42e811..347d1bc1becc 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java @@ -379,13 +379,11 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { assertThat(imeContainer.getRootDisplayArea()).isEqualTo(mDisplay); assertThat(mDisplay.findAreaForTokenInLayer(imeToken)).isEqualTo(imeContainer); - final WindowState firstActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mFirstActivity, - "firstActivityWin"); + final WindowState firstActivityWin = newWindowBuilder("firstActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mFirstActivity).build(); spyOn(firstActivityWin); - final WindowState secondActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mSecondActivity, - "firstActivityWin"); + final WindowState secondActivityWin = newWindowBuilder("secondActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mSecondActivity).build(); spyOn(secondActivityWin); // firstActivityWin should be the target @@ -424,13 +422,11 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { setupImeWindow(); final DisplayArea.Tokens imeContainer = mDisplay.getImeContainer(); final WindowToken imeToken = tokenOfType(TYPE_INPUT_METHOD); - final WindowState firstActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mFirstActivity, - "firstActivityWin"); + final WindowState firstActivityWin = newWindowBuilder("firstActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mFirstActivity).build(); spyOn(firstActivityWin); - final WindowState secondActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mSecondActivity, - "secondActivityWin"); + final WindowState secondActivityWin = newWindowBuilder("secondActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mSecondActivity).build(); spyOn(secondActivityWin); // firstActivityWin should be the target @@ -464,9 +460,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { assertThat(imeContainer.getRootDisplayArea()).isEqualTo(mDisplay); assertThat(mDisplay.findAreaForTokenInLayer(imeToken)).isEqualTo(imeContainer); - final WindowState firstActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mFirstActivity, - "firstActivityWin"); + final WindowState firstActivityWin = newWindowBuilder("firstActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mFirstActivity).build(); spyOn(firstActivityWin); // firstActivityWin should be the target doReturn(true).when(firstActivityWin).canBeImeTarget(); @@ -499,9 +494,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { assertThat(imeContainer.getRootDisplayArea()).isEqualTo(mDisplay); // firstActivityWin should be the target - final WindowState firstActivityWin = - createWindow(null /* parent */, TYPE_APPLICATION_STARTING, mFirstActivity, - "firstActivityWin"); + final WindowState firstActivityWin = newWindowBuilder("firstActivityWin", + TYPE_APPLICATION_STARTING).setWindowToken(mFirstActivity).build(); spyOn(firstActivityWin); doReturn(true).when(firstActivityWin).canBeImeTarget(); WindowState imeTarget = mDisplay.computeImeTarget(true /* updateImeTarget */); @@ -560,8 +554,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { } private void setupImeWindow() { - final WindowState imeWindow = createWindow(null /* parent */, - TYPE_INPUT_METHOD, mDisplay, "mImeWindow"); + final WindowState imeWindow = newWindowBuilder("mImeWindow", TYPE_INPUT_METHOD).setDisplay( + mDisplay).build(); imeWindow.mAttrs.flags |= FLAG_NOT_FOCUSABLE; mDisplay.mInputMethodWindow = imeWindow; } diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java index dc4adcc4315b..299717393028 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java @@ -878,8 +878,10 @@ public class TaskFragmentTest extends WindowTestsBase { .build(); final ActivityRecord activity0 = tf0.getTopMostActivity(); final ActivityRecord activity1 = tf1.getTopMostActivity(); - final WindowState win0 = createWindow(null, TYPE_BASE_APPLICATION, activity0, "win0"); - final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity1, "win1"); + final WindowState win0 = newWindowBuilder("win0", TYPE_BASE_APPLICATION).setWindowToken( + activity0).build(); + final WindowState win1 = newWindowBuilder("win1", TYPE_BASE_APPLICATION).setWindowToken( + activity1).build(); doReturn(false).when(mDisplayContent).shouldImeAttachedToApp(); mDisplayContent.setImeInputTarget(win0); @@ -1174,8 +1176,8 @@ public class TaskFragmentTest extends WindowTestsBase { } private WindowState createAppWindow(ActivityRecord app, String name) { - final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, app, name, - 0 /* ownerId */, false /* ownerCanAddInternalSystemWindow */, new TestIWindow()); + final WindowState win = newWindowBuilder(name, TYPE_BASE_APPLICATION).setWindowToken( + app).setClientWindow(new TestIWindow()).build(); mWm.mWindowMap.put(win.mClient.asBinder(), win); return win; } diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java index f145b40d2292..f9250f9ecf5d 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java @@ -63,7 +63,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testAppRemoved() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mCache.putSnapshot(window.getTask(), createSnapshot()); assertNotNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); mCache.onAppRemoved(window.mActivityRecord); @@ -72,7 +72,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testAppDied() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mCache.putSnapshot(window.getTask(), createSnapshot()); assertNotNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); mCache.onAppDied(window.mActivityRecord); @@ -81,7 +81,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testTaskRemoved() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mCache.putSnapshot(window.getTask(), createSnapshot()); assertNotNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); mCache.onIdRemoved(window.getTask().mTaskId); @@ -90,7 +90,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testReduced_notCached() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mPersister.persistSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, createSnapshot()); mSnapshotPersistQueue.waitForQueueEmpty(); assertNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); @@ -105,7 +105,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testRestoreFromDisk() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mPersister.persistSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, createSnapshot()); mSnapshotPersistQueue.waitForQueueEmpty(); assertNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); @@ -117,7 +117,7 @@ public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase { @Test public void testClearCache() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mCache.putSnapshot(window.getTask(), mSnapshot); assertEquals(mSnapshot, mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java index c6b2a6b8d42f..1bca53aff034 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java @@ -74,8 +74,8 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { @Test public void testGetClosingApps_closing() { - final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW, - "closingWindow"); + final WindowState closingWindow = newWindowBuilder("closingWindow", + FIRST_APPLICATION_WINDOW).build(); closingWindow.mActivityRecord.commitVisibility( false /* visible */, true /* performLayout */); final ArraySet<ActivityRecord> closingApps = new ArraySet<>(); @@ -88,8 +88,8 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { @Test public void testGetClosingApps_notClosing() { - final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW, - "closingWindow"); + final WindowState closingWindow = newWindowBuilder("closingWindow", + FIRST_APPLICATION_WINDOW).build(); final WindowState openingWindow = createAppWindow(closingWindow.getTask(), FIRST_APPLICATION_WINDOW, "openingWindow"); closingWindow.mActivityRecord.commitVisibility( @@ -105,8 +105,8 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { @Test public void testGetClosingApps_skipClosingAppsSnapshotTasks() { - final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW, - "closingWindow"); + final WindowState closingWindow = newWindowBuilder("closingWindow", + FIRST_APPLICATION_WINDOW).build(); closingWindow.mActivityRecord.commitVisibility( false /* visible */, true /* performLayout */); final ArraySet<ActivityRecord> closingApps = new ArraySet<>(); @@ -133,19 +133,19 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { @Test public void testGetSnapshotMode() { - final WindowState disabledWindow = createWindow(null, - FIRST_APPLICATION_WINDOW, mDisplayContent, "disabledWindow"); + final WindowState disabledWindow = newWindowBuilder("disabledWindow", + FIRST_APPLICATION_WINDOW).setDisplay(mDisplayContent).build(); disabledWindow.mActivityRecord.setRecentsScreenshotEnabled(false); assertEquals(SNAPSHOT_MODE_APP_THEME, mWm.mTaskSnapshotController.getSnapshotMode(disabledWindow.getTask())); - final WindowState normalWindow = createWindow(null, - FIRST_APPLICATION_WINDOW, mDisplayContent, "normalWindow"); + final WindowState normalWindow = newWindowBuilder("normalWindow", + FIRST_APPLICATION_WINDOW).setDisplay(mDisplayContent).build(); assertEquals(SNAPSHOT_MODE_REAL, mWm.mTaskSnapshotController.getSnapshotMode(normalWindow.getTask())); - final WindowState secureWindow = createWindow(null, - FIRST_APPLICATION_WINDOW, mDisplayContent, "secureWindow"); + final WindowState secureWindow = newWindowBuilder("secureWindow", + FIRST_APPLICATION_WINDOW).setDisplay(mDisplayContent).build(); secureWindow.mAttrs.flags |= FLAG_SECURE; assertEquals(SNAPSHOT_MODE_APP_THEME, mWm.mTaskSnapshotController.getSnapshotMode(secureWindow.getTask())); @@ -297,8 +297,8 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { spyOn(mWm.mTaskSnapshotController); doReturn(false).when(mWm.mTaskSnapshotController).shouldDisableSnapshots(); - final WindowState normalWindow = createWindow(null, - FIRST_APPLICATION_WINDOW, mDisplayContent, "normalWindow"); + final WindowState normalWindow = newWindowBuilder("normalWindow", + FIRST_APPLICATION_WINDOW).setDisplay(mDisplayContent).build(); final TaskSnapshot snapshot = new TaskSnapshotPersisterTestBase.TaskSnapshotBuilder() .setTopActivityComponent(normalWindow.mActivityRecord.mActivityComponent).build(); doReturn(snapshot).when(mWm.mTaskSnapshotController).snapshot(any()); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java index 9bde0663d4a3..51ea498811fc 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java @@ -41,7 +41,7 @@ import java.io.File; * Test class for {@link TaskSnapshotPersister} and {@link AppSnapshotLoader} * * Build/Install/Run: - * atest TaskSnapshotPersisterLoaderTest + * atest TaskSnapshotLowResDisabledTest */ @MediumTest @Presubmit @@ -126,7 +126,7 @@ public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBas @Test public void testReduced_notCached() { - final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window"); + final WindowState window = newWindowBuilder("window", FIRST_APPLICATION_WINDOW).build(); mPersister.persistSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, createSnapshot()); mSnapshotPersistQueue.waitForQueueEmpty(); assertNull(mCache.getSnapshot(window.getTask().mTaskId, false /* isLowResolution */)); diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java index 1fa657822189..5ed2df30518b 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java @@ -504,8 +504,8 @@ public class WindowContainerTests extends WindowTestsBase { assertTrue(child.isAnimating(PARENTS, ANIMATION_TYPE_APP_TRANSITION)); assertFalse(child.isAnimating(PARENTS, ANIMATION_TYPE_SCREEN_ROTATION)); - final WindowState windowState = createWindow(null /* parent */, TYPE_BASE_APPLICATION, - mDisplayContent, "TestWindowState"); + final WindowState windowState = newWindowBuilder("TestWindowState", + TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build(); WindowContainer parent = windowState.getParent(); spyOn(windowState.mSurfaceAnimator); doReturn(true).when(windowState.mSurfaceAnimator).isAnimating(); @@ -1045,8 +1045,8 @@ public class WindowContainerTests extends WindowTestsBase { // An animating window with mRemoveOnExit can be removed by handleCompleteDeferredRemoval // once it no longer animates. - final WindowState exitingWindow = createWindow(null, TYPE_APPLICATION_OVERLAY, - displayContent, "exiting window"); + final WindowState exitingWindow = newWindowBuilder("exiting window", + TYPE_APPLICATION_OVERLAY).setDisplay(displayContent).build(); exitingWindow.startAnimation(exitingWindow.getPendingTransaction(), mock(AnimationAdapter.class), false /* hidden */, SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION); @@ -1063,7 +1063,7 @@ public class WindowContainerTests extends WindowTestsBase { final ActivityRecord r = new TaskBuilder(mSupervisor).setCreateActivity(true) .setDisplay(displayContent).build().getTopMostActivity(); // Add a window and make the activity animating so the removal of activity is deferred. - createWindow(null, TYPE_BASE_APPLICATION, r, "win"); + newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken(r).build(); doReturn(true).when(r).isAnimating(anyInt(), anyInt()); displayContent.remove(); @@ -1216,7 +1216,8 @@ public class WindowContainerTests extends WindowTestsBase { public void testFreezeInsets() { final Task task = createTask(mDisplayContent); final ActivityRecord activity = createActivityRecord(mDisplayContent, task); - final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, activity, "win"); + final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken( + activity).build(); // Set visibility to false, verify the main window of the task will be set the frozen // insets state immediately. @@ -1233,7 +1234,8 @@ public class WindowContainerTests extends WindowTestsBase { final Task rootTask = createTask(mDisplayContent); final Task task = createTaskInRootTask(rootTask, 0 /* userId */); final ActivityRecord activity = createActivityRecord(mDisplayContent, task); - final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, activity, "win"); + final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken( + activity).build(); task.getDisplayContent().prepareAppTransition(TRANSIT_CLOSE); spyOn(win); doReturn(true).when(task).okToAnimate(); diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java index 72935cb546d9..8606581539ff 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java @@ -49,9 +49,10 @@ public class WindowContainerTraversalTests extends WindowTestsBase { @SetupWindows(addWindows = { W_DOCK_DIVIDER, W_INPUT_METHOD }) @Test public void testDockedDividerPosition() { - final WindowState splitScreenWindow = createWindow(null, - WINDOWING_MODE_MULTI_WINDOW, ACTIVITY_TYPE_STANDARD, TYPE_BASE_APPLICATION, - mDisplayContent, "splitScreenWindow"); + final WindowState splitScreenWindow = newWindowBuilder("splitScreenWindow", + TYPE_BASE_APPLICATION).setWindowingMode( + WINDOWING_MODE_MULTI_WINDOW).setActivityType(ACTIVITY_TYPE_STANDARD).setDisplay( + mDisplayContent).build(); mDisplayContent.setImeLayeringTarget(splitScreenWindow); diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java index 50e0e181cd68..513ba1d49258 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java @@ -154,9 +154,11 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsParentWindowHidden() { - final WindowState parentWindow = createWindow(null, TYPE_APPLICATION, "parentWindow"); - final WindowState child1 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child1"); - final WindowState child2 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child2"); + final WindowState parentWindow = newWindowBuilder("parentWindow", TYPE_APPLICATION).build(); + final WindowState child1 = newWindowBuilder("child1", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); + final WindowState child2 = newWindowBuilder("child2", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); // parentWindow is initially set to hidden. assertTrue(parentWindow.mHidden); @@ -172,10 +174,12 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsChildWindow() { - final WindowState parentWindow = createWindow(null, TYPE_APPLICATION, "parentWindow"); - final WindowState child1 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child1"); - final WindowState child2 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child2"); - final WindowState randomWindow = createWindow(null, TYPE_APPLICATION, "randomWindow"); + final WindowState parentWindow = newWindowBuilder("parentWindow", TYPE_APPLICATION).build(); + final WindowState child1 = newWindowBuilder("child1", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); + final WindowState child2 = newWindowBuilder("child2", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); + final WindowState randomWindow = newWindowBuilder("randomWindow", TYPE_APPLICATION).build(); assertFalse(parentWindow.isChildWindow()); assertTrue(child1.isChildWindow()); @@ -185,12 +189,15 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testHasChild() { - final WindowState win1 = createWindow(null, TYPE_APPLICATION, "win1"); - final WindowState win11 = createWindow(win1, FIRST_SUB_WINDOW, "win11"); - final WindowState win12 = createWindow(win1, FIRST_SUB_WINDOW, "win12"); - final WindowState win2 = createWindow(null, TYPE_APPLICATION, "win2"); - final WindowState win21 = createWindow(win2, FIRST_SUB_WINDOW, "win21"); - final WindowState randomWindow = createWindow(null, TYPE_APPLICATION, "randomWindow"); + final WindowState win1 = newWindowBuilder("win1", TYPE_APPLICATION).build(); + final WindowState win11 = newWindowBuilder("win11", FIRST_SUB_WINDOW).setParent( + win1).build(); + final WindowState win12 = newWindowBuilder("win12", FIRST_SUB_WINDOW).setParent( + win1).build(); + final WindowState win2 = newWindowBuilder("win2", TYPE_APPLICATION).build(); + final WindowState win21 = newWindowBuilder("win21", FIRST_SUB_WINDOW).setParent( + win2).build(); + final WindowState randomWindow = newWindowBuilder("randomWindow", TYPE_APPLICATION).build(); assertTrue(win1.hasChild(win11)); assertTrue(win1.hasChild(win12)); @@ -206,9 +213,11 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testGetParentWindow() { - final WindowState parentWindow = createWindow(null, TYPE_APPLICATION, "parentWindow"); - final WindowState child1 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child1"); - final WindowState child2 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child2"); + final WindowState parentWindow = newWindowBuilder("parentWindow", TYPE_APPLICATION).build(); + final WindowState child1 = newWindowBuilder("child1", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); + final WindowState child2 = newWindowBuilder("child2", FIRST_SUB_WINDOW).setParent( + parentWindow).build(); assertNull(parentWindow.getParentWindow()); assertEquals(parentWindow, child1.getParentWindow()); @@ -217,8 +226,8 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testOverlayWindowHiddenWhenSuspended() { - final WindowState overlayWindow = spy(createWindow(null, TYPE_APPLICATION_OVERLAY, - "overlayWindow")); + final WindowState overlayWindow = spy( + newWindowBuilder("overlayWindow", TYPE_APPLICATION_OVERLAY).build()); overlayWindow.setHiddenWhileSuspended(true); verify(overlayWindow).hide(true /* doAnimation */, true /* requestAnim */); overlayWindow.setHiddenWhileSuspended(false); @@ -227,9 +236,11 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testGetTopParentWindow() { - final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); - final WindowState child1 = createWindow(root, FIRST_SUB_WINDOW, "child1"); - final WindowState child2 = createWindow(child1, FIRST_SUB_WINDOW, "child2"); + final WindowState root = newWindowBuilder("root", TYPE_APPLICATION).build(); + final WindowState child1 = newWindowBuilder("child1", FIRST_SUB_WINDOW).setParent( + root).build(); + final WindowState child2 = newWindowBuilder("child2", FIRST_SUB_WINDOW).setParent( + child1).build(); assertEquals(root, root.getTopParentWindow()); assertEquals(root, child1.getTopParentWindow()); @@ -244,7 +255,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsOnScreen_hiddenByPolicy() { - final WindowState window = createWindow(null, TYPE_APPLICATION, "window"); + final WindowState window = newWindowBuilder("window", TYPE_APPLICATION).build(); window.setHasSurface(true); assertTrue(window.isOnScreen()); window.hide(false /* doAnimation */, false /* requestAnim */); @@ -273,8 +284,8 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testCanBeImeTarget() { - final WindowState appWindow = createWindow(null, TYPE_APPLICATION, "appWindow"); - final WindowState imeWindow = createWindow(null, TYPE_INPUT_METHOD, "imeWindow"); + final WindowState appWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); + final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); // Setting FLAG_NOT_FOCUSABLE prevents the window from being an IME target. appWindow.mAttrs.flags |= FLAG_NOT_FOCUSABLE; @@ -328,16 +339,17 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testGetWindow() { - final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); - final WindowState mediaChild = createWindow(root, TYPE_APPLICATION_MEDIA, "mediaChild"); - final WindowState mediaOverlayChild = createWindow(root, - TYPE_APPLICATION_MEDIA_OVERLAY, "mediaOverlayChild"); - final WindowState attachedDialogChild = createWindow(root, - TYPE_APPLICATION_ATTACHED_DIALOG, "attachedDialogChild"); - final WindowState subPanelChild = createWindow(root, - TYPE_APPLICATION_SUB_PANEL, "subPanelChild"); - final WindowState aboveSubPanelChild = createWindow(root, - TYPE_APPLICATION_ABOVE_SUB_PANEL, "aboveSubPanelChild"); + final WindowState root = newWindowBuilder("root", TYPE_APPLICATION).build(); + final WindowState mediaChild = newWindowBuilder("mediaChild", + TYPE_APPLICATION_MEDIA).setParent(root).build(); + final WindowState mediaOverlayChild = newWindowBuilder("mediaOverlayChild", + TYPE_APPLICATION_MEDIA_OVERLAY).setParent(root).build(); + final WindowState attachedDialogChild = newWindowBuilder("attachedDialogChild", + TYPE_APPLICATION_ATTACHED_DIALOG).setParent(root).build(); + final WindowState subPanelChild = newWindowBuilder("subPanelChild", + TYPE_APPLICATION_SUB_PANEL).setParent(root).build(); + final WindowState aboveSubPanelChild = newWindowBuilder("aboveSubPanelChild", + TYPE_APPLICATION_ABOVE_SUB_PANEL).setParent(root).build(); final LinkedList<WindowState> windows = new LinkedList<>(); @@ -358,7 +370,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testDestroySurface() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).build(); win.mHasSurface = win.mAnimatingExit = true; win.mWinAnimator.mSurfaceControl = mock(SurfaceControl.class); win.onExitAnimationDone(); @@ -384,8 +396,10 @@ public class WindowStateTests extends WindowTestsBase { // Call prepareWindowToDisplayDuringRelayout for a window without FLAG_TURN_SCREEN_ON before // calling setCurrentLaunchCanTurnScreenOn for windows with flag in the same activity. final ActivityRecord activity = createActivityRecord(mDisplayContent); - final WindowState first = createWindow(null, TYPE_APPLICATION, activity, "first"); - final WindowState second = createWindow(null, TYPE_APPLICATION, activity, "second"); + final WindowState first = newWindowBuilder("first", TYPE_APPLICATION).setWindowToken( + activity).build(); + final WindowState second = newWindowBuilder("second", TYPE_APPLICATION).setWindowToken( + activity).build(); testPrepareWindowToDisplayDuringRelayout(first, false /* expectedWakeupCalled */, true /* expectedCurrentLaunchCanTurnScreenOn */); @@ -423,10 +437,10 @@ public class WindowStateTests extends WindowTestsBase { // Call prepareWindowToDisplayDuringRelayout for a windows that are not children of an // activity. Both windows have the FLAG_TURNS_SCREEN_ON so both should call wakeup final WindowToken windowToken = createTestWindowToken(FIRST_SUB_WINDOW, mDisplayContent); - final WindowState firstWindow = createWindow(null, TYPE_APPLICATION, windowToken, - "firstWindow"); - final WindowState secondWindow = createWindow(null, TYPE_APPLICATION, windowToken, - "secondWindow"); + final WindowState firstWindow = newWindowBuilder("firstWindow", + TYPE_APPLICATION).setWindowToken(windowToken).build(); + final WindowState secondWindow = newWindowBuilder("secondWindow", + TYPE_APPLICATION).setWindowToken(windowToken).build(); firstWindow.mAttrs.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; secondWindow.mAttrs.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; @@ -459,7 +473,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testCanAffectSystemUiFlags() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); app.mActivityRecord.setVisible(true); assertTrue(app.canAffectSystemUiFlags()); app.mActivityRecord.setVisible(false); @@ -471,7 +485,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testCanAffectSystemUiFlags_starting() { - final WindowState app = createWindow(null, TYPE_APPLICATION_STARTING, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION_STARTING).build(); app.mActivityRecord.setVisible(true); app.mStartingData = new SnapshotStartingData(mWm, null, 0); assertFalse(app.canAffectSystemUiFlags()); @@ -481,7 +495,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testCanAffectSystemUiFlags_disallow() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); app.mActivityRecord.setVisible(true); assertTrue(app.canAffectSystemUiFlags()); app.getTask().setCanAffectSystemUiFlags(false); @@ -538,9 +552,11 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsSelfOrAncestorWindowAnimating() { - final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); - final WindowState child1 = createWindow(root, FIRST_SUB_WINDOW, "child1"); - final WindowState child2 = createWindow(child1, FIRST_SUB_WINDOW, "child2"); + final WindowState root = newWindowBuilder("root", TYPE_APPLICATION).build(); + final WindowState child1 = newWindowBuilder("child1", FIRST_SUB_WINDOW).setParent( + root).build(); + final WindowState child2 = newWindowBuilder("child2", FIRST_SUB_WINDOW).setParent( + child1).build(); assertFalse(child2.isSelfOrAncestorWindowAnimatingExit()); child2.mAnimatingExit = true; assertTrue(child2.isSelfOrAncestorWindowAnimatingExit()); @@ -551,7 +567,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testDeferredRemovalByAnimating() { - final WindowState appWindow = createWindow(null, TYPE_APPLICATION, "appWindow"); + final WindowState appWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); makeWindowVisible(appWindow); spyOn(appWindow.mWinAnimator); doReturn(true).when(appWindow.mWinAnimator).getShown(); @@ -571,8 +587,9 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testOnExitAnimationDone() { - final WindowState parent = createWindow(null, TYPE_APPLICATION, "parent"); - final WindowState child = createWindow(parent, TYPE_APPLICATION_PANEL, "child"); + final WindowState parent = newWindowBuilder("parent", TYPE_APPLICATION).build(); + final WindowState child = newWindowBuilder("child", TYPE_APPLICATION_PANEL).setParent( + parent).build(); final SurfaceControl.Transaction t = parent.getPendingTransaction(); child.startAnimation(t, mock(AnimationAdapter.class), false /* hidden */, SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION); @@ -609,7 +626,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testLayoutSeqResetOnReparent() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); app.mLayoutSeq = 1; mDisplayContent.mLayoutSeq = 1; @@ -622,7 +639,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testDisplayIdUpdatedOnReparent() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); // fake a different display app.mInputWindowHandle.setDisplayId(mDisplayContent.getDisplayId() + 1); app.onDisplayChanged(mDisplayContent); @@ -633,7 +650,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testApplyWithNextDraw() { - final WindowState win = createWindow(null, TYPE_APPLICATION_OVERLAY, "app"); + final WindowState win = newWindowBuilder("app", TYPE_APPLICATION_OVERLAY).build(); final SurfaceControl.Transaction[] handledT = { null }; // The normal case that the draw transaction is applied with finishing drawing. win.applyWithNextDraw(t -> handledT[0] = t); @@ -657,7 +674,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testSeamlesslyRotateWindow() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); final SurfaceControl.Transaction t = spy(StubTransaction.class); makeWindowVisible(app); @@ -707,7 +724,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testVisibilityChangeSwitchUser() { - final WindowState window = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState window = newWindowBuilder("app", TYPE_APPLICATION).build(); window.mHasSurface = true; spyOn(window); doReturn(false).when(window).showForAllUsers(); @@ -729,8 +746,9 @@ public class WindowStateTests extends WindowTestsBase { final CompatModePackages cmp = mWm.mAtmService.mCompatModePackages; spyOn(cmp); doReturn(overrideScale).when(cmp).getCompatScale(anyString(), anyInt()); - final WindowState w = createWindow(null, TYPE_APPLICATION_OVERLAY, "win"); - final WindowState child = createWindow(w, TYPE_APPLICATION_PANEL, "child"); + final WindowState w = newWindowBuilder("win", TYPE_APPLICATION_OVERLAY).build(); + final WindowState child = newWindowBuilder("child", TYPE_APPLICATION_PANEL).setParent( + w).build(); assertTrue(w.hasCompatScale()); assertTrue(child.hasCompatScale()); @@ -788,7 +806,8 @@ public class WindowStateTests extends WindowTestsBase { // Child window without scale (e.g. different app) should apply inverse scale of parent. doReturn(1f).when(cmp).getCompatScale(anyString(), anyInt()); - final WindowState child2 = createWindow(w, TYPE_APPLICATION_SUB_PANEL, "child2"); + final WindowState child2 = newWindowBuilder("child2", TYPE_APPLICATION_SUB_PANEL).setParent( + w).build(); makeWindowVisible(w, child2); clearInvocations(t); child2.prepareSurfaces(); @@ -798,10 +817,10 @@ public class WindowStateTests extends WindowTestsBase { @SetupWindows(addWindows = { W_ABOVE_ACTIVITY, W_NOTIFICATION_SHADE }) @Test public void testRequestDrawIfNeeded() { - final WindowState startingApp = createWindow(null /* parent */, - TYPE_BASE_APPLICATION, "startingApp"); - final WindowState startingWindow = createWindow(null /* parent */, - TYPE_APPLICATION_STARTING, startingApp.mToken, "starting"); + final WindowState startingApp = newWindowBuilder("startingApp", + TYPE_BASE_APPLICATION).build(); + final WindowState startingWindow = newWindowBuilder("starting", + TYPE_APPLICATION_STARTING).setWindowToken(startingApp.mToken).build(); startingApp.mActivityRecord.mStartingWindow = startingWindow; final WindowState keyguardHostWindow = mNotificationShadeWindow; final WindowState allDrawnApp = mAppWindow; @@ -878,7 +897,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testRequestResizeForBlastSync() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "window"); + final WindowState win = newWindowBuilder("window", TYPE_APPLICATION).build(); makeWindowVisible(win); makeLastConfigReportedToClient(win, true /* visible */); win.mLayoutSeq = win.getDisplayContent().mLayoutSeq; @@ -926,8 +945,8 @@ public class WindowStateTests extends WindowTestsBase { final Task task = createTask(mDisplayContent); final TaskFragment embeddedTf = createTaskFragmentWithEmbeddedActivity(task, organizer); final ActivityRecord embeddedActivity = embeddedTf.getTopMostActivity(); - final WindowState win = createWindow(null /* parent */, TYPE_APPLICATION, embeddedActivity, - "App window"); + final WindowState win = newWindowBuilder("App window", TYPE_APPLICATION).setWindowToken( + embeddedActivity).build(); doReturn(true).when(embeddedActivity).isVisible(); embeddedActivity.setVisibleRequested(true); makeWindowVisible(win); @@ -949,14 +968,14 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testCantReceiveTouchWhenAppTokenHiddenRequested() { - final WindowState win0 = createWindow(null, TYPE_APPLICATION, "win0"); + final WindowState win0 = newWindowBuilder("win0", TYPE_APPLICATION).build(); win0.mActivityRecord.setVisibleRequested(false); assertFalse(win0.canReceiveTouchInput()); } @Test public void testCantReceiveTouchWhenNotFocusable() { - final WindowState win0 = createWindow(null, TYPE_APPLICATION, "win0"); + final WindowState win0 = newWindowBuilder("win0", TYPE_APPLICATION).build(); final Task rootTask = win0.mActivityRecord.getRootTask(); spyOn(rootTask); when(rootTask.shouldIgnoreInput()).thenReturn(true); @@ -969,7 +988,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testUpdateInputWindowHandle() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).build(); win.mAttrs.inputFeatures = WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY; win.mAttrs.flags = FLAG_WATCH_OUTSIDE_TOUCH | FLAG_SPLIT_TOUCH; final InputWindowHandle handle = new InputWindowHandle( @@ -1026,7 +1045,7 @@ public class WindowStateTests extends WindowTestsBase { @DisableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX) @Test public void testTouchRegionUsesLetterboxBoundsIfTransformedBoundsAndLetterboxScrolling() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).build(); // Transformed bounds used for size of touchable region if letterbox inner bounds are empty. final Rect transformedBounds = new Rect(0, 0, 300, 500); @@ -1051,7 +1070,7 @@ public class WindowStateTests extends WindowTestsBase { @DisableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX) @Test public void testTouchRegionUsesLetterboxBoundsIfNullTransformedBoundsAndLetterboxScrolling() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).build(); // Fragment bounds used for size of touchable region if letterbox inner bounds are empty // and Transform bounds are null. @@ -1083,7 +1102,7 @@ public class WindowStateTests extends WindowTestsBase { @EnableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX) @Test public void testTouchRegionUsesTransformedBoundsIfLetterboxScrolling() { - final WindowState win = createWindow(null, TYPE_APPLICATION, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).build(); // Transformed bounds used for size of touchable region if letterbox inner bounds are empty. final Rect transformedBounds = new Rect(0, 0, 300, 500); @@ -1109,7 +1128,7 @@ public class WindowStateTests extends WindowTestsBase { public void testHasActiveVisibleWindow() { final int uid = ActivityBuilder.DEFAULT_FAKE_UID; - final WindowState app = createWindow(null, TYPE_APPLICATION, "app", uid); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).setOwnerId(uid).build(); app.mActivityRecord.setVisible(false); app.mActivityRecord.setVisibility(false); assertFalse(mAtm.hasActiveVisibleWindow(uid)); @@ -1120,15 +1139,17 @@ public class WindowStateTests extends WindowTestsBase { // Make the activity invisible and add a visible toast. The uid should have no active // visible window because toast can be misused by legacy app to bypass background check. app.mActivityRecord.setVisibility(false); - final WindowState overlay = createWindow(null, TYPE_APPLICATION_OVERLAY, "overlay", uid); - final WindowState toast = createWindow(null, TYPE_TOAST, app.mToken, "toast", uid); + final WindowState overlay = newWindowBuilder("overlay", + TYPE_APPLICATION_OVERLAY).setOwnerId(uid).build(); + final WindowState toast = newWindowBuilder("toast", TYPE_TOAST).setWindowToken( + app.mToken).setOwnerId(uid).build(); toast.onSurfaceShownChanged(true); assertFalse(mAtm.hasActiveVisibleWindow(uid)); // Though starting window should belong to system. Make sure it is ignored to avoid being // allow-list unexpectedly, see b/129563343. - final WindowState starting = - createWindow(null, TYPE_APPLICATION_STARTING, app.mToken, "starting", uid); + final WindowState starting = newWindowBuilder("starting", + TYPE_APPLICATION_STARTING).setWindowToken(app.mToken).setOwnerId(uid).build(); starting.onSurfaceShownChanged(true); assertFalse(mAtm.hasActiveVisibleWindow(uid)); @@ -1145,8 +1166,8 @@ public class WindowStateTests extends WindowTestsBase { @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD }) @Test public void testNeedsRelativeLayeringToIme_notAttached() { - WindowState sameTokenWindow = createWindow(null, TYPE_BASE_APPLICATION, mAppWindow.mToken, - "SameTokenWindow"); + WindowState sameTokenWindow = newWindowBuilder("SameTokenWindow", + TYPE_BASE_APPLICATION).setWindowToken(mAppWindow.mToken).build(); mDisplayContent.setImeLayeringTarget(mAppWindow); makeWindowVisible(mImeWindow); sameTokenWindow.mActivityRecord.getRootTask().setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); @@ -1158,8 +1179,8 @@ public class WindowStateTests extends WindowTestsBase { @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD }) @Test public void testNeedsRelativeLayeringToIme_startingWindow() { - WindowState sameTokenWindow = createWindow(null, TYPE_APPLICATION_STARTING, - mAppWindow.mToken, "SameTokenWindow"); + WindowState sameTokenWindow = newWindowBuilder("SameTokenWindow", + TYPE_APPLICATION_STARTING).setWindowToken(mAppWindow.mToken).build(); mDisplayContent.setImeLayeringTarget(mAppWindow); makeWindowVisible(mImeWindow); sameTokenWindow.mActivityRecord.getRootTask().setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); @@ -1169,9 +1190,9 @@ public class WindowStateTests extends WindowTestsBase { @UseTestDisplay(addWindows = {W_ACTIVITY, W_INPUT_METHOD}) @Test public void testNeedsRelativeLayeringToIme_systemDialog() { - WindowState systemDialogWindow = createWindow(null, TYPE_SECURE_SYSTEM_OVERLAY, - mDisplayContent, - "SystemDialog", true); + WindowState systemDialogWindow = newWindowBuilder("SystemDialog", + TYPE_SECURE_SYSTEM_OVERLAY).setDisplay( + mDisplayContent).setOwnerCanAddInternalSystemWindow(true).build(); mDisplayContent.setImeLayeringTarget(mAppWindow); mAppWindow.getTask().setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); makeWindowVisible(mImeWindow); @@ -1182,20 +1203,21 @@ public class WindowStateTests extends WindowTestsBase { @UseTestDisplay(addWindows = {W_INPUT_METHOD}) @Test public void testNeedsRelativeLayeringToIme_notificationShadeShouldNotHideSystemDialog() { - WindowState systemDialogWindow = createWindow(null, TYPE_SECURE_SYSTEM_OVERLAY, - mDisplayContent, - "SystemDialog", true); + WindowState systemDialogWindow = newWindowBuilder("SystemDialog", + TYPE_SECURE_SYSTEM_OVERLAY).setDisplay( + mDisplayContent).setOwnerCanAddInternalSystemWindow(true).build(); mDisplayContent.setImeLayeringTarget(systemDialogWindow); makeWindowVisible(mImeWindow); - WindowState notificationShade = createWindow(null, TYPE_NOTIFICATION_SHADE, - mDisplayContent, "NotificationShade", true); + WindowState notificationShade = newWindowBuilder("NotificationShade", + TYPE_NOTIFICATION_SHADE).setDisplay( + mDisplayContent).setOwnerCanAddInternalSystemWindow(true).build(); notificationShade.mAttrs.flags |= FLAG_ALT_FOCUSABLE_IM; assertFalse(notificationShade.needsRelativeLayeringToIme()); } @Test public void testSetFreezeInsetsState() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); spyOn(app); doReturn(true).when(app).isVisible(); @@ -1216,7 +1238,7 @@ public class WindowStateTests extends WindowTestsBase { verify(app).notifyInsetsChanged(); // Verify that invisible non-activity window won't dispatch insets changed. - final WindowState overlay = createWindow(null, TYPE_APPLICATION_OVERLAY, "overlay"); + final WindowState overlay = newWindowBuilder("overlay", TYPE_APPLICATION_OVERLAY).build(); makeWindowVisible(overlay); assertTrue(overlay.isReadyToDispatchInsetsState()); overlay.mHasSurface = false; @@ -1244,9 +1266,9 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testAdjustImeInsetsVisibilityWhenSwitchingApps() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); - final WindowState app2 = createWindow(null, TYPE_APPLICATION, "app2"); - final WindowState imeWindow = createWindow(null, TYPE_APPLICATION, "imeWindow"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); + final WindowState app2 = newWindowBuilder("app2", TYPE_APPLICATION).build(); + final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_APPLICATION).build(); spyOn(imeWindow); doReturn(true).when(imeWindow).isVisible(); mDisplayContent.mInputMethodWindow = imeWindow; @@ -1279,10 +1301,11 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testAdjustImeInsetsVisibilityWhenSwitchingApps_toAppInMultiWindowMode() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); - final WindowState app2 = createWindow(null, WINDOWING_MODE_MULTI_WINDOW, - ACTIVITY_TYPE_STANDARD, TYPE_APPLICATION, mDisplayContent, "app2"); - final WindowState imeWindow = createWindow(null, TYPE_APPLICATION, "imeWindow"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); + final WindowState app2 = newWindowBuilder("app2", TYPE_APPLICATION).setWindowingMode( + WINDOWING_MODE_MULTI_WINDOW).setActivityType(ACTIVITY_TYPE_STANDARD).setDisplay( + mDisplayContent).build(); + final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_APPLICATION).build(); spyOn(imeWindow); doReturn(true).when(imeWindow).isVisible(); mDisplayContent.mInputMethodWindow = imeWindow; @@ -1321,8 +1344,8 @@ public class WindowStateTests extends WindowTestsBase { @SetupWindows(addWindows = W_ACTIVITY) @Test public void testUpdateImeControlTargetWhenLeavingMultiWindow() { - WindowState app = createWindow(null, TYPE_BASE_APPLICATION, - mAppWindow.mToken, "app"); + WindowState app = newWindowBuilder("app", TYPE_BASE_APPLICATION).setWindowToken( + mAppWindow.mToken).build(); mDisplayContent.setRemoteInsetsController(createDisplayWindowInsetsController()); spyOn(app); @@ -1349,8 +1372,8 @@ public class WindowStateTests extends WindowTestsBase { @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD, W_NOTIFICATION_SHADE }) @Test public void testNotificationShadeHasImeInsetsWhenMultiWindow() { - WindowState app = createWindow(null, TYPE_BASE_APPLICATION, - mAppWindow.mToken, "app"); + WindowState app = newWindowBuilder("app", TYPE_BASE_APPLICATION).setWindowToken( + mAppWindow.mToken).build(); // Simulate entering multi-window mode and windowing mode is multi-window. app.mActivityRecord.getRootTask().setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); @@ -1376,7 +1399,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testRequestedVisibility() { - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); app.mActivityRecord.setVisible(false); app.mActivityRecord.setVisibility(false); assertFalse(app.isVisibleRequested()); @@ -1391,7 +1414,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testKeepClearAreas() { - final WindowState window = createWindow(null, TYPE_APPLICATION, "window"); + final WindowState window = newWindowBuilder("window", TYPE_APPLICATION).build(); makeWindowVisible(window); final Rect keepClearArea1 = new Rect(0, 0, 10, 10); @@ -1433,7 +1456,7 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testUnrestrictedKeepClearAreas() { - final WindowState window = createWindow(null, TYPE_APPLICATION, "window"); + final WindowState window = newWindowBuilder("window", TYPE_APPLICATION).build(); makeWindowVisible(window); final Rect keepClearArea1 = new Rect(0, 0, 10, 10); @@ -1481,8 +1504,9 @@ public class WindowStateTests extends WindowTestsBase { final InputMethodManagerInternal immi = InputMethodManagerInternal.get(); spyOn(immi); - final WindowState imeTarget = createWindow(null /* parent */, TYPE_BASE_APPLICATION, - createActivityRecord(mDisplayContent), "imeTarget"); + final WindowState imeTarget = newWindowBuilder("imeTarget", + TYPE_BASE_APPLICATION).setWindowToken( + createActivityRecord(mDisplayContent)).build(); imeTarget.mActivityRecord.setVisibleRequested(true); makeWindowVisible(imeTarget); @@ -1562,8 +1586,8 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsSecureLocked_flagSecureSet() { - WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", - 1 /* ownerId */); + WindowState window = newWindowBuilder("test-window", TYPE_APPLICATION).setOwnerId( + 1).build(); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; assertTrue(window.isSecureLocked()); @@ -1571,8 +1595,8 @@ public class WindowStateTests extends WindowTestsBase { @Test public void testIsSecureLocked_flagSecureNotSet() { - WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", - 1 /* ownerId */); + WindowState window = newWindowBuilder("test-window", TYPE_APPLICATION).setOwnerId( + 1).build(); assertFalse(window.isSecureLocked()); } @@ -1581,8 +1605,8 @@ public class WindowStateTests extends WindowTestsBase { public void testIsSecureLocked_disableSecureWindows() { assumeTrue(Build.IS_DEBUGGABLE); - WindowState window = createWindow(null /* parent */, TYPE_APPLICATION, "test-window", - 1 /* ownerId */); + WindowState window = newWindowBuilder("test-window", TYPE_APPLICATION).setOwnerId( + 1).build(); window.mAttrs.flags |= WindowManager.LayoutParams.FLAG_SECURE; ContentResolver cr = useFakeSettingsProvider(); @@ -1617,8 +1641,10 @@ public class WindowStateTests extends WindowTestsBase { String testPackage = "test"; int ownerId1 = 20; int ownerId2 = 21; - final WindowState window1 = createWindow(null, TYPE_APPLICATION, "window1", ownerId1); - final WindowState window2 = createWindow(null, TYPE_APPLICATION, "window2", ownerId2); + final WindowState window1 = newWindowBuilder("window1", TYPE_APPLICATION).setOwnerId( + ownerId1).build(); + final WindowState window2 = newWindowBuilder("window2", TYPE_APPLICATION).setOwnerId( + ownerId2).build(); // Setting packagename for targeted feature window1.mAttrs.packageName = testPackage; @@ -1638,7 +1664,8 @@ public class WindowStateTests extends WindowTestsBase { public void testIsSecureLocked_sensitiveContentBlockOrClearScreenCaptureForApp() { String testPackage = "test"; int ownerId = 20; - final WindowState window = createWindow(null, TYPE_APPLICATION, "window", ownerId); + final WindowState window = newWindowBuilder("window", TYPE_APPLICATION).setOwnerId( + ownerId).build(); window.mAttrs.packageName = testPackage; assertFalse(window.isSecureLocked()); diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java index f226b9d29ca0..a02c3db1e636 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java @@ -74,11 +74,16 @@ public class WindowTokenTests extends WindowTestsBase { assertEquals(0, token.getWindowsCount()); - final WindowState window1 = createWindow(null, TYPE_APPLICATION, token, "window1"); - final WindowState window11 = createWindow(window1, FIRST_SUB_WINDOW, token, "window11"); - final WindowState window12 = createWindow(window1, FIRST_SUB_WINDOW, token, "window12"); - final WindowState window2 = createWindow(null, TYPE_APPLICATION, token, "window2"); - final WindowState window3 = createWindow(null, TYPE_APPLICATION, token, "window3"); + final WindowState window1 = newWindowBuilder("window1", TYPE_APPLICATION).setWindowToken( + token).build(); + final WindowState window11 = newWindowBuilder("window11", FIRST_SUB_WINDOW).setParent( + window1).setWindowToken(token).build(); + final WindowState window12 = newWindowBuilder("window12", FIRST_SUB_WINDOW).setParent( + window1).setWindowToken(token).build(); + final WindowState window2 = newWindowBuilder("window2", TYPE_APPLICATION).setWindowToken( + token).build(); + final WindowState window3 = newWindowBuilder("window3", TYPE_APPLICATION).setWindowToken( + token).build(); token.addWindow(window1); // NOTE: Child windows will not be added to the token as window containers can only @@ -105,8 +110,10 @@ public class WindowTokenTests extends WindowTestsBase { public void testAddWindow_assignsLayers() { final TestWindowToken token1 = createTestWindowToken(0, mDisplayContent); final TestWindowToken token2 = createTestWindowToken(0, mDisplayContent); - final WindowState window1 = createWindow(null, TYPE_STATUS_BAR, token1, "window1"); - final WindowState window2 = createWindow(null, TYPE_STATUS_BAR, token2, "window2"); + final WindowState window1 = newWindowBuilder("window1", TYPE_STATUS_BAR).setWindowToken( + token1).build(); + final WindowState window2 = newWindowBuilder("window2", TYPE_STATUS_BAR).setWindowToken( + token2).build(); token1.addWindow(window1); token2.addWindow(window2); @@ -122,8 +129,10 @@ public class WindowTokenTests extends WindowTestsBase { assertEquals(token, dc.getWindowToken(token.token)); - final WindowState window1 = createWindow(null, TYPE_APPLICATION, token, "window1"); - final WindowState window2 = createWindow(null, TYPE_APPLICATION, token, "window2"); + final WindowState window1 = newWindowBuilder("window1", TYPE_APPLICATION).setWindowToken( + token).build(); + final WindowState window2 = newWindowBuilder("window2", TYPE_APPLICATION).setWindowToken( + token).build(); window2.removeImmediately(); // The token should still be mapped in the display content since it still has a child. @@ -147,8 +156,10 @@ public class WindowTokenTests extends WindowTestsBase { // Verify that the token is on the display assertNotNull(mDisplayContent.getWindowToken(token.token)); - final WindowState window1 = createWindow(null, TYPE_TOAST, token, "window1"); - final WindowState window2 = createWindow(null, TYPE_TOAST, token, "window2"); + final WindowState window1 = newWindowBuilder("window1", TYPE_TOAST).setWindowToken( + token).build(); + final WindowState window2 = newWindowBuilder("window2", TYPE_TOAST).setWindowToken( + token).build(); mDisplayContent.removeWindowToken(token.token, true /* animateExit */); // Verify that the token is no longer mapped on the display @@ -231,7 +242,8 @@ public class WindowTokenTests extends WindowTestsBase { assertNull(fromClientToken.mSurfaceControl); - createWindow(null, TYPE_APPLICATION_OVERLAY, fromClientToken, "window"); + newWindowBuilder("window", TYPE_APPLICATION_OVERLAY).setWindowToken( + fromClientToken).build(); assertNotNull(fromClientToken.mSurfaceControl); final WindowToken nonClientToken = new WindowToken.Builder(mDisplayContent.mWmService, @@ -285,7 +297,7 @@ public class WindowTokenTests extends WindowTestsBase { // Simulate an app window to be the IME layering target, assume the app window has no // frozen insets state by default. - final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build(); mDisplayContent.setImeLayeringTarget(app); assertNull(app.getFrozenInsetsState()); assertTrue(app.isImeLayeringTarget()); @@ -299,7 +311,8 @@ public class WindowTokenTests extends WindowTestsBase { @Test public void testRemoveWindowToken_noAnimateExitWhenSet() { final TestWindowToken token = createTestWindowToken(0, mDisplayContent); - final WindowState win = createWindow(null, TYPE_APPLICATION, token, "win"); + final WindowState win = newWindowBuilder("win", TYPE_APPLICATION).setWindowToken( + token).build(); makeWindowVisible(win); assertTrue(win.isOnScreen()); spyOn(win); diff --git a/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java b/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java index 4f60106db93d..84e21181a7b9 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java @@ -221,7 +221,7 @@ public class ZOrderingTests extends WindowTestsBase { } WindowState createWindow(String name) { - return createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, name); + return newWindowBuilder(name, TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build(); } @Test @@ -263,12 +263,12 @@ public class ZOrderingTests extends WindowTestsBase { @Test public void testAssignWindowLayers_ForImeWithAppTargetWithChildWindows() { final WindowState imeAppTarget = createWindow("imeAppTarget"); - final WindowState imeAppTargetChildAboveWindow = createWindow(imeAppTarget, - TYPE_APPLICATION_ATTACHED_DIALOG, imeAppTarget.mToken, - "imeAppTargetChildAboveWindow"); - final WindowState imeAppTargetChildBelowWindow = createWindow(imeAppTarget, - TYPE_APPLICATION_MEDIA_OVERLAY, imeAppTarget.mToken, - "imeAppTargetChildBelowWindow"); + final WindowState imeAppTargetChildAboveWindow = newWindowBuilder( + "imeAppTargetChildAboveWindow", TYPE_APPLICATION_ATTACHED_DIALOG).setParent( + imeAppTarget).setWindowToken(imeAppTarget.mToken).build(); + final WindowState imeAppTargetChildBelowWindow = newWindowBuilder( + "imeAppTargetChildBelowWindow", TYPE_APPLICATION_MEDIA_OVERLAY).setParent( + imeAppTarget).setWindowToken(imeAppTarget.mToken).build(); mDisplayContent.setImeLayeringTarget(imeAppTarget); makeWindowVisible(mImeWindow); @@ -313,9 +313,9 @@ public class ZOrderingTests extends WindowTestsBase { @Test public void testAssignWindowLayers_ForImeNonAppImeTarget() { - final WindowState imeSystemOverlayTarget = createWindow(null, TYPE_SYSTEM_OVERLAY, - mDisplayContent, "imeSystemOverlayTarget", - true /* ownerCanAddInternalSystemWindow */); + final WindowState imeSystemOverlayTarget = newWindowBuilder("imeSystemOverlayTarget", + TYPE_SYSTEM_OVERLAY).setDisplay(mDisplayContent).setOwnerCanAddInternalSystemWindow( + true).build(); mDisplayContent.setImeLayeringTarget(imeSystemOverlayTarget); mDisplayContent.assignChildLayers(mTransaction); @@ -354,18 +354,19 @@ public class ZOrderingTests extends WindowTestsBase { @Test public void testStackLayers() { final WindowState anyWindow1 = createWindow("anyWindow"); - final WindowState pinnedStackWindow = createWindow(null, WINDOWING_MODE_PINNED, - ACTIVITY_TYPE_STANDARD, TYPE_BASE_APPLICATION, mDisplayContent, - "pinnedStackWindow"); - final WindowState dockedStackWindow = createWindow(null, - WINDOWING_MODE_MULTI_WINDOW, ACTIVITY_TYPE_STANDARD, TYPE_BASE_APPLICATION, - mDisplayContent, "dockedStackWindow"); - final WindowState assistantStackWindow = createWindow(null, - WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_ASSISTANT, TYPE_BASE_APPLICATION, - mDisplayContent, "assistantStackWindow"); - final WindowState homeActivityWindow = createWindow(null, WINDOWING_MODE_FULLSCREEN, - ACTIVITY_TYPE_HOME, TYPE_BASE_APPLICATION, - mDisplayContent, "homeActivityWindow"); + final WindowState pinnedStackWindow = newWindowBuilder("pinnedStackWindow", + TYPE_BASE_APPLICATION).setWindowingMode(WINDOWING_MODE_PINNED).setActivityType( + ACTIVITY_TYPE_STANDARD).setDisplay(mDisplayContent).build(); + final WindowState dockedStackWindow = newWindowBuilder("dockedStackWindow", + TYPE_BASE_APPLICATION).setWindowingMode( + WINDOWING_MODE_MULTI_WINDOW).setActivityType(ACTIVITY_TYPE_STANDARD).setDisplay( + mDisplayContent).build(); + final WindowState assistantStackWindow = newWindowBuilder("assistantStackWindow", + TYPE_BASE_APPLICATION).setWindowingMode(WINDOWING_MODE_FULLSCREEN).setActivityType( + ACTIVITY_TYPE_ASSISTANT).setDisplay(mDisplayContent).build(); + final WindowState homeActivityWindow = newWindowBuilder("homeActivityWindow", + TYPE_BASE_APPLICATION).setWindowingMode(WINDOWING_MODE_FULLSCREEN).setActivityType( + ACTIVITY_TYPE_HOME).setDisplay(mDisplayContent).build(); final WindowState anyWindow2 = createWindow("anyWindow2"); mDisplayContent.assignChildLayers(mTransaction); @@ -383,13 +384,12 @@ public class ZOrderingTests extends WindowTestsBase { @Test public void testAssignWindowLayers_ForSysUiPanels() { - final WindowState navBarPanel = - createWindow(null, TYPE_NAVIGATION_BAR_PANEL, mDisplayContent, "NavBarPanel"); - final WindowState statusBarPanel = - createWindow(null, TYPE_STATUS_BAR_ADDITIONAL, mDisplayContent, - "StatusBarAdditional"); - final WindowState statusBarSubPanel = - createWindow(null, TYPE_STATUS_BAR_SUB_PANEL, mDisplayContent, "StatusBarSubPanel"); + final WindowState navBarPanel = newWindowBuilder("NavBarPanel", + TYPE_NAVIGATION_BAR_PANEL).setDisplay(mDisplayContent).build(); + final WindowState statusBarPanel = newWindowBuilder("StatusBarAdditional", + TYPE_STATUS_BAR_ADDITIONAL).setDisplay(mDisplayContent).build(); + final WindowState statusBarSubPanel = newWindowBuilder("StatusBarSubPanel", + TYPE_STATUS_BAR_SUB_PANEL).setDisplay(mDisplayContent).build(); mDisplayContent.assignChildLayers(mTransaction); // Ime should be above all app windows and below system windows if it is targeting an app @@ -401,15 +401,16 @@ public class ZOrderingTests extends WindowTestsBase { @Test public void testAssignWindowLayers_ForImeOnPopupImeLayeringTarget() { - final WindowState imeAppTarget = createWindow(null, TYPE_APPLICATION, - mAppWindow.mActivityRecord, "imeAppTarget"); + final WindowState imeAppTarget = newWindowBuilder("imeAppTarget", + TYPE_APPLICATION).setWindowToken(mAppWindow.mActivityRecord).build(); mDisplayContent.setImeInputTarget(imeAppTarget); mDisplayContent.setImeLayeringTarget(imeAppTarget); mDisplayContent.setImeControlTarget(imeAppTarget); // Set a popup IME layering target and keeps the original IME control target behinds it. - final WindowState popupImeTargetWin = createWindow(imeAppTarget, - TYPE_APPLICATION_SUB_PANEL, mAppWindow.mActivityRecord, "popupImeTargetWin"); + final WindowState popupImeTargetWin = newWindowBuilder("popupImeTargetWin", + TYPE_APPLICATION_SUB_PANEL).setParent(imeAppTarget).setWindowToken( + mAppWindow.mActivityRecord).build(); mDisplayContent.setImeLayeringTarget(popupImeTargetWin); mDisplayContent.updateImeParent(); @@ -424,11 +425,11 @@ public class ZOrderingTests extends WindowTestsBase { // then we can drop all negative layering on the windowing side. final WindowState anyWindow = createWindow("anyWindow"); - final WindowState child = createWindow(anyWindow, TYPE_APPLICATION_MEDIA, mDisplayContent, - "TypeApplicationMediaChild"); - final WindowState mediaOverlayChild = createWindow(anyWindow, - TYPE_APPLICATION_MEDIA_OVERLAY, - mDisplayContent, "TypeApplicationMediaOverlayChild"); + final WindowState child = newWindowBuilder("TypeApplicationMediaChild", + TYPE_APPLICATION_MEDIA).setParent(anyWindow).setDisplay(mDisplayContent).build(); + final WindowState mediaOverlayChild = newWindowBuilder("TypeApplicationMediaOverlayChild", + TYPE_APPLICATION_MEDIA_OVERLAY).setParent(anyWindow).setDisplay( + mDisplayContent).build(); mDisplayContent.assignChildLayers(mTransaction); @@ -440,14 +441,17 @@ public class ZOrderingTests extends WindowTestsBase { public void testAssignWindowLayers_ForPostivelyZOrderedSubtype() { final WindowState anyWindow = createWindow("anyWindow"); final ArrayList<WindowState> childList = new ArrayList<>(); - childList.add(createWindow(anyWindow, TYPE_APPLICATION_PANEL, mDisplayContent, - "TypeApplicationPanelChild")); - childList.add(createWindow(anyWindow, TYPE_APPLICATION_SUB_PANEL, mDisplayContent, - "TypeApplicationSubPanelChild")); - childList.add(createWindow(anyWindow, TYPE_APPLICATION_ATTACHED_DIALOG, mDisplayContent, - "TypeApplicationAttachedDialogChild")); - childList.add(createWindow(anyWindow, TYPE_APPLICATION_ABOVE_SUB_PANEL, mDisplayContent, - "TypeApplicationAboveSubPanelPanelChild")); + childList.add(newWindowBuilder("TypeApplicationPanelChild", + TYPE_APPLICATION_PANEL).setParent(anyWindow).setDisplay(mDisplayContent).build()); + childList.add(newWindowBuilder("TypeApplicationSubPanelChild", + TYPE_APPLICATION_SUB_PANEL).setParent(anyWindow).setDisplay( + mDisplayContent).build()); + childList.add(newWindowBuilder("TypeApplicationAttachedDialogChild", + TYPE_APPLICATION_ATTACHED_DIALOG).setParent(anyWindow).setDisplay( + mDisplayContent).build()); + childList.add(newWindowBuilder("TypeApplicationAboveSubPanelPanelChild", + TYPE_APPLICATION_ABOVE_SUB_PANEL).setParent(anyWindow).setDisplay( + mDisplayContent).build()); final LayerRecordingTransaction t = mTransaction; mDisplayContent.assignChildLayers(t); @@ -469,8 +473,8 @@ public class ZOrderingTests extends WindowTestsBase { // Create a popupWindow assertWindowHigher(mImeWindow, mAppWindow); - final WindowState popupWindow = createWindow(mAppWindow, TYPE_APPLICATION_PANEL, - mDisplayContent, "PopupWindow"); + final WindowState popupWindow = newWindowBuilder("PopupWindow", + TYPE_APPLICATION_PANEL).setParent(mAppWindow).setDisplay(mDisplayContent).build(); spyOn(popupWindow); mDisplayContent.assignChildLayers(mTransaction); @@ -492,8 +496,9 @@ public class ZOrderingTests extends WindowTestsBase { makeWindowVisible(mImeWindow); // Create a popupWindow - final WindowState systemDialogWindow = createWindow(null, TYPE_SECURE_SYSTEM_OVERLAY, - mDisplayContent, "SystemDialog", true); + final WindowState systemDialogWindow = newWindowBuilder("SystemDialog", + TYPE_SECURE_SYSTEM_OVERLAY).setDisplay( + mDisplayContent).setOwnerCanAddInternalSystemWindow(true).build(); systemDialogWindow.mAttrs.flags |= FLAG_ALT_FOCUSABLE_IM; spyOn(systemDialogWindow); |