Merge "Merge WindowTestUtils into base class"
This commit is contained in:
committed by
Android (Google) Code Review
commit
b511a73d7e
@@ -1506,7 +1506,7 @@ public class ActivityRecordTests extends WindowTestsBase {
|
||||
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
|
||||
WindowManager.LayoutParams.TYPE_APPLICATION_STARTING);
|
||||
params.width = params.height = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
final WindowTestUtils.TestWindowState w = new WindowTestUtils.TestWindowState(
|
||||
final TestWindowState w = new TestWindowState(
|
||||
mAtm.mWindowManager, mock(Session.class), new TestIWindow(), params, mActivity);
|
||||
mActivity.addWindow(w);
|
||||
|
||||
|
||||
@@ -133,10 +133,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// [DisplayContent] -+- [TaskStack1] - [Task1] - [ActivityRecord1] (opening, visible)
|
||||
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (closing, invisible)
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(stack1);
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
|
||||
final ActivityRecord activity2 = createTestActivityRecord(stack2);
|
||||
activity2.setVisible(false);
|
||||
activity2.mVisibleRequested = false;
|
||||
|
||||
@@ -162,13 +162,13 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// [DisplayContent] -+- [TaskStack1] - [Task1] - [ActivityRecord1] (closing, invisible)
|
||||
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (opening, visible)
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(stack1);
|
||||
activity1.setVisible(true);
|
||||
activity1.mVisibleRequested = true;
|
||||
activity1.mRequestForceTransition = true;
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
|
||||
final ActivityRecord activity2 = createTestActivityRecord(stack2);
|
||||
activity2.setVisible(false);
|
||||
activity2.mVisibleRequested = false;
|
||||
activity2.mRequestForceTransition = true;
|
||||
@@ -193,10 +193,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
@Test
|
||||
public void testGetAnimationTargets_exitingBeforeTransition() {
|
||||
// Create another non-empty task so the animation target won't promote to task display area.
|
||||
WindowTestUtils.createTestActivityRecord(
|
||||
createTestActivityRecord(
|
||||
mDisplayContent.getDefaultTaskDisplayArea().getOrCreateRootHomeTask());
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(stack);
|
||||
final ActivityRecord activity = createTestActivityRecord(stack);
|
||||
activity.setVisible(false);
|
||||
activity.mIsExiting = true;
|
||||
|
||||
@@ -218,20 +218,20 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (closing, invisible)
|
||||
// +- [AppWindow2] (being-replaced)
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(stack1);
|
||||
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
|
||||
TYPE_BASE_APPLICATION);
|
||||
attrs.setTitle("AppWindow1");
|
||||
final WindowTestUtils.TestWindowState appWindow1 = createWindowState(attrs, activity1);
|
||||
final TestWindowState appWindow1 = createWindowState(attrs, activity1);
|
||||
appWindow1.mWillReplaceWindow = true;
|
||||
activity1.addWindow(appWindow1);
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
|
||||
final ActivityRecord activity2 = createTestActivityRecord(stack2);
|
||||
activity2.setVisible(false);
|
||||
activity2.mVisibleRequested = false;
|
||||
attrs.setTitle("AppWindow2");
|
||||
final WindowTestUtils.TestWindowState appWindow2 = createWindowState(attrs, activity2);
|
||||
final TestWindowState appWindow2 = createWindowState(attrs, activity2);
|
||||
appWindow2.mWillReplaceWindow = true;
|
||||
activity2.addWindow(appWindow2);
|
||||
|
||||
@@ -262,21 +262,17 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// +- [ActivityRecord4] (invisible)
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity1.setVisible(false);
|
||||
activity1.mVisibleRequested = true;
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity2.setVisible(false);
|
||||
activity2.mVisibleRequested = false;
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
|
||||
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
activity4.setVisible(false);
|
||||
activity4.mVisibleRequested = false;
|
||||
|
||||
@@ -303,12 +299,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// +- [ActivityRecord2] (closing, visible)
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
|
||||
activity1.setVisible(false);
|
||||
activity1.mVisibleRequested = true;
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
|
||||
|
||||
final ArraySet<ActivityRecord> opening = new ArraySet<>();
|
||||
opening.add(activity1);
|
||||
@@ -337,22 +331,18 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity1.setVisible(false);
|
||||
activity1.mVisibleRequested = true;
|
||||
activity1.setOccludesParent(false);
|
||||
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
|
||||
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
activity3.setOccludesParent(false);
|
||||
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
|
||||
final ArraySet<ActivityRecord> opening = new ArraySet<>();
|
||||
opening.add(activity1);
|
||||
@@ -381,24 +371,20 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
|
||||
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity1.setVisible(false);
|
||||
activity1.mVisibleRequested = true;
|
||||
activity1.setOccludesParent(false);
|
||||
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity2.setVisible(false);
|
||||
activity2.mVisibleRequested = true;
|
||||
|
||||
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
|
||||
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
activity3.setOccludesParent(false);
|
||||
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
|
||||
final ArraySet<ActivityRecord> opening = new ArraySet<>();
|
||||
opening.add(activity1);
|
||||
@@ -425,13 +411,11 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
||||
// +- [Task2] - [ActivityRecord2] (closing, visible)
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task1);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
activity1.setVisible(false);
|
||||
activity1.mVisibleRequested = true;
|
||||
final Task task2 = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
|
||||
mDisplayContent, task2);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
|
||||
final ArraySet<ActivityRecord> opening = new ArraySet<>();
|
||||
opening.add(activity1);
|
||||
|
||||
@@ -151,8 +151,7 @@ public class AppTransitionTests extends WindowTestsBase {
|
||||
|
||||
final Task stack1 = createTaskStackOnDisplay(dc1);
|
||||
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
|
||||
final ActivityRecord activity1 =
|
||||
WindowTestUtils.createTestActivityRecord(dc1);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(dc1);
|
||||
task1.addChild(activity1, 0);
|
||||
|
||||
// Simulate same app is during opening / closing transition set stage.
|
||||
|
||||
@@ -92,7 +92,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
public void setUp() throws Exception {
|
||||
mStack = createTaskStackOnDisplay(mDisplayContent);
|
||||
mTask = createTaskInStack(mStack, 0 /* userId */);
|
||||
mActivity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
mActivity = createTestActivityRecord(mDisplayContent);
|
||||
|
||||
mTask.addChild(mActivity, 0);
|
||||
}
|
||||
@@ -165,7 +165,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
|
||||
TYPE_BASE_APPLICATION);
|
||||
attrs.setTitle("AppWindow");
|
||||
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
final TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
mActivity.addWindow(appWindow);
|
||||
|
||||
// Set initial orientation and update.
|
||||
@@ -198,7 +198,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
|
||||
TYPE_BASE_APPLICATION);
|
||||
attrs.setTitle("RotationByPolicy");
|
||||
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
final TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
mActivity.addWindow(appWindow);
|
||||
|
||||
// Set initial orientation and update.
|
||||
@@ -244,7 +244,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
TYPE_BASE_APPLICATION);
|
||||
attrs.flags |= FLAG_SHOW_WHEN_LOCKED | FLAG_DISMISS_KEYGUARD;
|
||||
attrs.setTitle("AppWindow");
|
||||
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
final TestWindowState appWindow = createWindowState(attrs, mActivity);
|
||||
|
||||
// Add window with show when locked flag
|
||||
mActivity.addWindow(appWindow);
|
||||
@@ -307,7 +307,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
assertEquals(Configuration.ORIENTATION_PORTRAIT, displayConfig.orientation);
|
||||
assertEquals(Configuration.ORIENTATION_PORTRAIT, activityConfig.orientation);
|
||||
|
||||
final ActivityRecord topActivity = WindowTestUtils.createTestActivityRecord(mStack);
|
||||
final ActivityRecord topActivity = createTestActivityRecord(mStack);
|
||||
topActivity.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
|
||||
|
||||
assertEquals(Configuration.ORIENTATION_LANDSCAPE, displayConfig.orientation);
|
||||
@@ -490,8 +490,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
}
|
||||
|
||||
private ActivityRecord createTestActivityRecordForGivenTask(Task task) {
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
task.addChild(activity, 0);
|
||||
waitUntilHandlersIdle();
|
||||
return activity;
|
||||
@@ -562,7 +561,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
|
||||
public void testHasStartingWindow() {
|
||||
final WindowManager.LayoutParams attrs =
|
||||
new WindowManager.LayoutParams(TYPE_APPLICATION_STARTING);
|
||||
final WindowTestUtils.TestWindowState startingWindow = createWindowState(attrs, mActivity);
|
||||
final TestWindowState startingWindow = createWindowState(attrs, mActivity);
|
||||
mActivity.startingDisplayed = true;
|
||||
mActivity.addWindow(startingWindow);
|
||||
assertTrue("Starting window should be present", mActivity.hasStartingWindow());
|
||||
|
||||
@@ -326,7 +326,7 @@ public class DisplayContentTests extends WindowTestsBase {
|
||||
assertEquals(dc, stack.getDisplayContent());
|
||||
|
||||
final Task task = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(dc);
|
||||
final ActivityRecord activity = createTestActivityRecord(dc);
|
||||
task.addChild(activity, 0);
|
||||
assertEquals(dc, task.getDisplayContent());
|
||||
assertEquals(dc, activity.getDisplayContent());
|
||||
@@ -397,16 +397,14 @@ public class DisplayContentTests extends WindowTestsBase {
|
||||
// Add stack with activity.
|
||||
final Task stack0 = createTaskStackOnDisplay(dc0);
|
||||
final Task task0 = createTaskInStack(stack0, 0 /* userId */);
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createTestActivityRecord(dc0);
|
||||
final ActivityRecord activity = createTestActivityRecord(dc0);
|
||||
task0.addChild(activity, 0);
|
||||
dc0.configureDisplayPolicy();
|
||||
assertNotNull(dc0.mTapDetector);
|
||||
|
||||
final Task stack1 = createTaskStackOnDisplay(dc1);
|
||||
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
|
||||
final ActivityRecord activity1 =
|
||||
WindowTestUtils.createTestActivityRecord(dc0);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(dc0);
|
||||
task1.addChild(activity1, 0);
|
||||
dc1.configureDisplayPolicy();
|
||||
assertNotNull(dc1.mTapDetector);
|
||||
@@ -1296,7 +1294,7 @@ public class DisplayContentTests extends WindowTestsBase {
|
||||
final ActivityRecord pinnedActivity = createActivityRecord(displayContent,
|
||||
WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD);
|
||||
final Task pinnedTask = pinnedActivity.getRootTask();
|
||||
final ActivityRecord homeActivity = WindowTestUtils.createTestActivityRecord(
|
||||
final ActivityRecord homeActivity = createTestActivityRecord(
|
||||
displayContent.getDefaultTaskDisplayArea().getOrCreateRootHomeTask());
|
||||
if (displayConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||
homeActivity.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
|
||||
|
||||
@@ -95,8 +95,7 @@ public class DragDropControllerTests extends WindowTestsBase {
|
||||
* Creates a window state which can be used as a drop target.
|
||||
*/
|
||||
private WindowState createDropTargetWindow(String name, int ownerId) {
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(
|
||||
mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
final Task stack = createTaskStackOnDisplay(
|
||||
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, mDisplayContent);
|
||||
final Task task = createTaskInStack(stack, ownerId);
|
||||
|
||||
@@ -568,7 +568,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
private static WindowState addWindowToActivity(ActivityRecord activity) {
|
||||
final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
|
||||
params.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
|
||||
final WindowTestUtils.TestWindowState w = new WindowTestUtils.TestWindowState(
|
||||
final TestWindowState w = new TestWindowState(
|
||||
activity.mWmService, mock(Session.class), new TestIWindow(), params, activity);
|
||||
WindowTestsBase.makeWindowVisible(w);
|
||||
w.mWinAnimator.mDrawState = WindowStateAnimator.HAS_DRAWN;
|
||||
@@ -581,7 +581,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
doReturn(true).when(displayPolicy).hasStatusBar();
|
||||
displayPolicy.onConfigurationChanged();
|
||||
|
||||
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(
|
||||
final TestWindowToken token = createTestWindowToken(
|
||||
WindowManager.LayoutParams.TYPE_STATUS_BAR, displayContent);
|
||||
final WindowManager.LayoutParams attrs =
|
||||
new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_STATUS_BAR);
|
||||
@@ -589,7 +589,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
attrs.layoutInDisplayCutoutMode =
|
||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
|
||||
attrs.setFitInsetsTypes(0 /* types */);
|
||||
final WindowTestUtils.TestWindowState statusBar = new WindowTestUtils.TestWindowState(
|
||||
final TestWindowState statusBar = new TestWindowState(
|
||||
displayContent.mWmService, mock(Session.class), new TestIWindow(), attrs, token);
|
||||
token.addWindow(statusBar);
|
||||
statusBar.setRequestedSize(displayContent.mBaseDisplayWidth,
|
||||
|
||||
@@ -76,8 +76,7 @@ public class TaskDisplayAreaTests extends WindowTestsBase {
|
||||
// Stack should contain visible app window to be considered visible.
|
||||
final Task pinnedTask = createTaskInStack(mPinnedStack, 0 /* userId */);
|
||||
assertFalse(mPinnedStack.isVisible());
|
||||
final ActivityRecord pinnedApp =
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord pinnedApp = createTestActivityRecord(mDisplayContent);
|
||||
pinnedTask.addChild(pinnedApp, 0 /* addPos */);
|
||||
assertTrue(mPinnedStack.isVisible());
|
||||
}
|
||||
@@ -92,7 +91,7 @@ public class TaskDisplayAreaTests extends WindowTestsBase {
|
||||
final Task stack = createTaskStackOnDisplay(
|
||||
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, mDisplayContent);
|
||||
final Task task = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
task.addChild(activity, 0 /* addPos */);
|
||||
final TaskDisplayArea taskDisplayArea = activity.getDisplayArea();
|
||||
activity.mNeedsAnimationBoundsLayer = true;
|
||||
|
||||
@@ -85,14 +85,12 @@ public class TaskStackTests extends WindowTestsBase {
|
||||
public void testClosingAppDifferentStackOrientation() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack, 0 /* userId */);
|
||||
ActivityRecord activity1 =
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
|
||||
task1.addChild(activity1, 0);
|
||||
activity1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
|
||||
|
||||
final Task task2 = createTaskInStack(stack, 1 /* userId */);
|
||||
ActivityRecord activity2=
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
|
||||
task2.addChild(activity2, 0);
|
||||
activity2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
|
||||
|
||||
@@ -105,14 +103,12 @@ public class TaskStackTests extends WindowTestsBase {
|
||||
public void testMoveTaskToBackDifferentStackOrientation() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack, 0 /* userId */);
|
||||
ActivityRecord activity1 =
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
|
||||
task1.addChild(activity1, 0);
|
||||
activity1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
|
||||
|
||||
final Task task2 = createTaskInStack(stack, 1 /* userId */);
|
||||
ActivityRecord activity2 =
|
||||
WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
|
||||
task2.addChild(activity2, 0);
|
||||
activity2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
|
||||
assertEquals(SCREEN_ORIENTATION_PORTRAIT, stack.getOrientation());
|
||||
@@ -221,7 +217,7 @@ public class TaskStackTests extends WindowTestsBase {
|
||||
public void testActivityAndTaskGetsProperType() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task1 = createTaskInStack(stack, 0 /* userId */);
|
||||
ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
|
||||
|
||||
// First activity should become standard
|
||||
task1.addChild(activity1, 0);
|
||||
@@ -229,7 +225,7 @@ public class TaskStackTests extends WindowTestsBase {
|
||||
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, task1.getActivityType());
|
||||
|
||||
// Second activity should also become standard
|
||||
ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
|
||||
task1.addChild(activity2, WindowContainer.POSITION_TOP);
|
||||
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, activity2.getActivityType());
|
||||
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, task1.getActivityType());
|
||||
|
||||
@@ -56,8 +56,7 @@ public class TaskTests extends WindowTestsBase {
|
||||
public void testRemoveContainer() {
|
||||
final Task stackController1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task = createTaskInStack(stackController1, 0 /* userId */);
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
|
||||
|
||||
task.removeIfPossible();
|
||||
// Assert that the container was removed.
|
||||
@@ -70,8 +69,7 @@ public class TaskTests extends WindowTestsBase {
|
||||
public void testRemoveContainer_deferRemoval() {
|
||||
final Task stackController1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task = createTaskInStack(stackController1, 0 /* userId */);
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
|
||||
|
||||
doReturn(true).when(task).shouldDeferRemoval();
|
||||
|
||||
@@ -153,10 +151,8 @@ public class TaskTests extends WindowTestsBase {
|
||||
public void testIsInStack() {
|
||||
final Task task1 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task2 = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity1 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task1);
|
||||
final ActivityRecord activity2 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task2);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task2);
|
||||
assertEquals(activity1, task1.isInTask(activity1));
|
||||
assertNull(task1.isInTask(activity2));
|
||||
}
|
||||
@@ -165,12 +161,9 @@ public class TaskTests extends WindowTestsBase {
|
||||
public void testRemoveChildForOverlayTask() {
|
||||
final Task task = createTaskStackOnDisplay(mDisplayContent);
|
||||
final int taskId = task.mTaskId;
|
||||
final ActivityRecord activity1 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity2 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity3 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task);
|
||||
activity1.setTaskOverlay(true);
|
||||
activity2.setTaskOverlay(true);
|
||||
activity3.setTaskOverlay(true);
|
||||
|
||||
@@ -44,7 +44,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testFlow() {
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyAppResumedFinished(activity);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyRelayouted(activity);
|
||||
@@ -56,8 +56,8 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testMultiple() {
|
||||
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity1);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyAppResumedFinished(activity1);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity2);
|
||||
@@ -72,7 +72,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testClear() {
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
|
||||
mDisplayContent.mUnknownAppVisibilityController.clear();
|
||||
assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
|
||||
@@ -80,7 +80,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testRemoveFinishingInvisibleActivityFromUnknown() {
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
|
||||
activity.finishing = true;
|
||||
activity.mVisibleRequested = true;
|
||||
@@ -90,7 +90,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testAppRemoved() {
|
||||
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
|
||||
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
|
||||
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
|
||||
mDisplayContent.mUnknownAppVisibilityController.appRemovedOrHidden(activity);
|
||||
assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
|
||||
|
||||
@@ -810,8 +810,7 @@ public class WindowContainerTests extends WindowTestsBase {
|
||||
public void testOnDisplayChanged() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
|
||||
|
||||
final DisplayContent newDc = createNewDisplay();
|
||||
stack.getDisplayArea().removeStack(stack);
|
||||
@@ -854,19 +853,17 @@ public class WindowContainerTests extends WindowTestsBase {
|
||||
public void testTaskCanApplyAnimation() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final Task task = createTaskInStack(stack, 0 /* userId */);
|
||||
final ActivityRecord activity2 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity1 =
|
||||
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
|
||||
verifyWindowContainerApplyAnimation(task, activity1, activity2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStackCanApplyAnimation() {
|
||||
final Task stack = createTaskStackOnDisplay(mDisplayContent);
|
||||
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(mDisplayContent,
|
||||
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent,
|
||||
createTaskInStack(stack, 0 /* userId */));
|
||||
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(mDisplayContent,
|
||||
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent,
|
||||
createTaskInStack(stack, 0 /* userId */));
|
||||
verifyWindowContainerApplyAnimation(stack, activity1, activity2);
|
||||
}
|
||||
|
||||
@@ -931,8 +931,7 @@ public class WindowOrganizerTests extends WindowTestsBase {
|
||||
|
||||
final Task stack = createStack();
|
||||
final Task task = createTask(stack);
|
||||
final ActivityRecord record = WindowTestUtils.createActivityRecordInTask(
|
||||
stack.mDisplayContent, task);
|
||||
final ActivityRecord record = createActivityRecordInTask(stack.mDisplayContent, task);
|
||||
|
||||
stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
|
||||
record.setTaskDescription(new ActivityManager.TaskDescription("TestDescription"));
|
||||
@@ -966,8 +965,7 @@ public class WindowOrganizerTests extends WindowTestsBase {
|
||||
public void testInterceptBackPressedOnTaskRoot() throws RemoteException {
|
||||
final Task stack = createStack();
|
||||
final Task task = createTask(stack);
|
||||
final ActivityRecord activity = WindowTestUtils.createActivityRecordInTask(
|
||||
stack.mDisplayContent, task);
|
||||
final ActivityRecord activity = createActivityRecordInTask(stack.mDisplayContent, task);
|
||||
final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
|
||||
|
||||
// Setup the task to be controlled by the MW mode organizer
|
||||
|
||||
@@ -357,8 +357,7 @@ 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 = WindowTestUtils.createTestWindowToken(FIRST_SUB_WINDOW,
|
||||
mDisplayContent);
|
||||
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,
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.AppOpsManager.OP_NONE;
|
||||
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
|
||||
import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
||||
|
||||
import android.os.IBinder;
|
||||
import android.view.IWindow;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.android.server.wm.WindowTestsBase.ActivityBuilder;
|
||||
|
||||
/**
|
||||
* A collection of static functions that provide access to WindowManager related test functionality.
|
||||
*/
|
||||
class WindowTestUtils {
|
||||
|
||||
/** Creates a {@link Task} and adds it to the specified {@link Task}. */
|
||||
static Task createTaskInStack(WindowManagerService service, Task stack, int userId) {
|
||||
final Task task = new WindowTestsBase.TaskBuilder(stack.mStackSupervisor)
|
||||
.setUserId(userId)
|
||||
.setStack(stack)
|
||||
.build();
|
||||
return task;
|
||||
}
|
||||
|
||||
/** Creates an {@link ActivityRecord} and adds it to the specified {@link Task}. */
|
||||
static ActivityRecord createActivityRecordInTask(DisplayContent dc, Task task) {
|
||||
final ActivityRecord activity = createTestActivityRecord(dc);
|
||||
task.addChild(activity, POSITION_TOP);
|
||||
return activity;
|
||||
}
|
||||
|
||||
static ActivityRecord createTestActivityRecord(Task stack) {
|
||||
final ActivityRecord activity = new ActivityBuilder(stack.mAtmService)
|
||||
.setStack(stack)
|
||||
.setCreateTask(true)
|
||||
.build();
|
||||
postCreateActivitySetup(activity, stack.getDisplayContent());
|
||||
return activity;
|
||||
}
|
||||
|
||||
static ActivityRecord createTestActivityRecord(DisplayContent dc) {
|
||||
final ActivityRecord activity = new ActivityBuilder(dc.mWmService.mAtmService).build();
|
||||
postCreateActivitySetup(activity, dc);
|
||||
return activity;
|
||||
}
|
||||
|
||||
private static void postCreateActivitySetup(ActivityRecord activity, DisplayContent dc) {
|
||||
activity.onDisplayChanged(dc);
|
||||
activity.setOccludesParent(true);
|
||||
activity.setVisible(true);
|
||||
activity.mVisibleRequested = true;
|
||||
}
|
||||
|
||||
static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
|
||||
return createTestWindowToken(type, dc, false /* persistOnEmpty */);
|
||||
}
|
||||
|
||||
static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
|
||||
boolean persistOnEmpty) {
|
||||
SystemServicesTestRule.checkHoldsLock(dc.mWmService.mGlobalLock);
|
||||
|
||||
return new TestWindowToken(type, dc, persistOnEmpty);
|
||||
}
|
||||
|
||||
/* Used so we can gain access to some protected members of the {@link WindowToken} class */
|
||||
static class TestWindowToken extends WindowToken {
|
||||
|
||||
private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
|
||||
super(dc.mWmService, mock(IBinder.class), type, persistOnEmpty, dc,
|
||||
false /* ownerCanManageAppTokens */);
|
||||
}
|
||||
|
||||
int getWindowsCount() {
|
||||
return mChildren.size();
|
||||
}
|
||||
|
||||
boolean hasWindow(WindowState w) {
|
||||
return mChildren.contains(w);
|
||||
}
|
||||
}
|
||||
|
||||
/** Used to track resize reports. */
|
||||
static class TestWindowState extends WindowState {
|
||||
boolean mResizeReported;
|
||||
|
||||
TestWindowState(WindowManagerService service, Session session, IWindow window,
|
||||
WindowManager.LayoutParams attrs, WindowToken token) {
|
||||
super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0, 0,
|
||||
false /* ownerCanAddInternalSystemWindow */);
|
||||
}
|
||||
|
||||
@Override
|
||||
void reportResized() {
|
||||
super.reportResized();
|
||||
mResizeReported = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGoneForLayoutLw() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
void updateResizingWindowIfNeeded() {
|
||||
// Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
|
||||
// the system that it can actually update the window.
|
||||
boolean hadSurface = mHasSurface;
|
||||
mHasSurface = true;
|
||||
|
||||
super.updateResizingWindowIfNeeded();
|
||||
|
||||
mHasSurface = hadSurface;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
|
||||
import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
|
||||
import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
@@ -66,6 +67,7 @@ import android.content.res.Configuration;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.service.voice.IVoiceInteractionSession;
|
||||
@@ -239,7 +241,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
private WindowToken createWindowToken(
|
||||
DisplayContent dc, int windowingMode, int activityType, int type) {
|
||||
if (type < FIRST_APPLICATION_WINDOW || type > LAST_APPLICATION_WINDOW) {
|
||||
return WindowTestUtils.createTestWindowToken(type, dc);
|
||||
return createTestWindowToken(type, dc);
|
||||
}
|
||||
|
||||
return createActivityRecord(dc, windowingMode, activityType);
|
||||
@@ -249,10 +251,39 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
return createTestActivityRecord(dc, windowingMode, activityType);
|
||||
}
|
||||
|
||||
ActivityRecord createTestActivityRecord(DisplayContent dc, int
|
||||
windowingMode, int activityType) {
|
||||
ActivityRecord createTestActivityRecord(DisplayContent dc, int windowingMode,
|
||||
int activityType) {
|
||||
final Task stack = createTaskStackOnDisplay(windowingMode, activityType, dc);
|
||||
return WindowTestUtils.createTestActivityRecord(stack);
|
||||
return createTestActivityRecord(stack);
|
||||
}
|
||||
|
||||
/** Creates an {@link ActivityRecord} and adds it to the specified {@link Task}. */
|
||||
static ActivityRecord createActivityRecordInTask(DisplayContent dc, Task task) {
|
||||
final ActivityRecord activity = createTestActivityRecord(dc);
|
||||
task.addChild(activity, POSITION_TOP);
|
||||
return activity;
|
||||
}
|
||||
|
||||
static ActivityRecord createTestActivityRecord(DisplayContent dc) {
|
||||
final ActivityRecord activity = new ActivityBuilder(dc.mWmService.mAtmService).build();
|
||||
postCreateActivitySetup(activity, dc);
|
||||
return activity;
|
||||
}
|
||||
|
||||
static ActivityRecord createTestActivityRecord(Task stack) {
|
||||
final ActivityRecord activity = new ActivityBuilder(stack.mAtmService)
|
||||
.setStack(stack)
|
||||
.setCreateTask(true)
|
||||
.build();
|
||||
postCreateActivitySetup(activity, stack.getDisplayContent());
|
||||
return activity;
|
||||
}
|
||||
|
||||
private static void postCreateActivitySetup(ActivityRecord activity, DisplayContent dc) {
|
||||
activity.onDisplayChanged(dc);
|
||||
activity.setOccludesParent(true);
|
||||
activity.setVisible(true);
|
||||
activity.mVisibleRequested = true;
|
||||
}
|
||||
|
||||
WindowState createWindow(WindowState parent, int type, String name) {
|
||||
@@ -274,8 +305,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
}
|
||||
|
||||
WindowState createAppWindow(Task task, int type, String name) {
|
||||
final ActivityRecord activity =
|
||||
WindowTestUtils.createTestActivityRecord(task.getDisplayContent());
|
||||
final ActivityRecord activity = createTestActivityRecord(task.getDisplayContent());
|
||||
task.addChild(activity, 0);
|
||||
return createWindow(null, type, activity, name);
|
||||
}
|
||||
@@ -390,7 +420,11 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
|
||||
/** Creates a {@link Task} and adds it to the specified {@link Task}. */
|
||||
Task createTaskInStack(Task stack, int userId) {
|
||||
return WindowTestUtils.createTaskInStack(mWm, stack, userId);
|
||||
final Task task = new TaskBuilder(stack.mStackSupervisor)
|
||||
.setUserId(userId)
|
||||
.setStack(stack)
|
||||
.build();
|
||||
return task;
|
||||
}
|
||||
|
||||
/** Creates a {@link DisplayContent} that supports IME and adds it to the system. */
|
||||
@@ -432,12 +466,11 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
return createNewDisplay(displayInfo, true /* supportIme */);
|
||||
}
|
||||
|
||||
/** Creates a {@link com.android.server.wm.WindowTestUtils.TestWindowState} */
|
||||
WindowTestUtils.TestWindowState createWindowState(WindowManager.LayoutParams attrs,
|
||||
WindowToken token) {
|
||||
/** Creates a {@link TestWindowState} */
|
||||
TestWindowState createWindowState(WindowManager.LayoutParams attrs, WindowToken token) {
|
||||
SystemServicesTestRule.checkHoldsLock(mWm.mGlobalLock);
|
||||
|
||||
return new WindowTestUtils.TestWindowState(mWm, mMockSession, mIWindow, attrs, token);
|
||||
return new TestWindowState(mWm, mMockSession, mIWindow, attrs, token);
|
||||
}
|
||||
|
||||
/** Creates a {@link DisplayContent} as parts of simulate display info for test. */
|
||||
@@ -1055,4 +1088,66 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
public void onBackPressedOnTaskRoot(ActivityManager.RunningTaskInfo taskInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
|
||||
return createTestWindowToken(type, dc, false /* persistOnEmpty */);
|
||||
}
|
||||
|
||||
static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
|
||||
boolean persistOnEmpty) {
|
||||
SystemServicesTestRule.checkHoldsLock(dc.mWmService.mGlobalLock);
|
||||
|
||||
return new TestWindowToken(type, dc, persistOnEmpty);
|
||||
}
|
||||
|
||||
/** Used so we can gain access to some protected members of the {@link WindowToken} class */
|
||||
static class TestWindowToken extends WindowToken {
|
||||
|
||||
private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
|
||||
super(dc.mWmService, mock(IBinder.class), type, persistOnEmpty, dc,
|
||||
false /* ownerCanManageAppTokens */);
|
||||
}
|
||||
|
||||
int getWindowsCount() {
|
||||
return mChildren.size();
|
||||
}
|
||||
|
||||
boolean hasWindow(WindowState w) {
|
||||
return mChildren.contains(w);
|
||||
}
|
||||
}
|
||||
|
||||
/** Used to track resize reports. */
|
||||
static class TestWindowState extends WindowState {
|
||||
boolean mResizeReported;
|
||||
|
||||
TestWindowState(WindowManagerService service, Session session, IWindow window,
|
||||
WindowManager.LayoutParams attrs, WindowToken token) {
|
||||
super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0, 0,
|
||||
false /* ownerCanAddInternalSystemWindow */);
|
||||
}
|
||||
|
||||
@Override
|
||||
void reportResized() {
|
||||
super.reportResized();
|
||||
mResizeReported = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGoneForLayoutLw() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
void updateResizingWindowIfNeeded() {
|
||||
// Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
|
||||
// the system that it can actually update the window.
|
||||
boolean hadSurface = mHasSurface;
|
||||
mHasSurface = true;
|
||||
|
||||
super.updateResizingWindowIfNeeded();
|
||||
|
||||
mHasSurface = hadSurface;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,8 +58,7 @@ public class WindowTokenTests extends WindowTestsBase {
|
||||
|
||||
@Test
|
||||
public void testAddWindow() {
|
||||
final WindowTestUtils.TestWindowToken token =
|
||||
WindowTestUtils.createTestWindowToken(0, mDisplayContent);
|
||||
final TestWindowToken token = createTestWindowToken(0, mDisplayContent);
|
||||
|
||||
assertEquals(0, token.getWindowsCount());
|
||||
|
||||
@@ -93,7 +92,7 @@ public class WindowTokenTests extends WindowTestsBase {
|
||||
@Test
|
||||
public void testChildRemoval() {
|
||||
final DisplayContent dc = mDisplayContent;
|
||||
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(0, dc);
|
||||
final TestWindowToken token = createTestWindowToken(0, dc);
|
||||
|
||||
assertEquals(token, dc.getWindowToken(token.token));
|
||||
|
||||
@@ -116,7 +115,7 @@ public class WindowTokenTests extends WindowTestsBase {
|
||||
*/
|
||||
@Test
|
||||
public void testTokenRemovalProcess() {
|
||||
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(
|
||||
final TestWindowToken token = createTestWindowToken(
|
||||
TYPE_TOAST, mDisplayContent, true /* persistOnEmpty */);
|
||||
|
||||
// Verify that the token is on the display
|
||||
|
||||
Reference in New Issue
Block a user