Merge "Do not reparent task or set windowing mode when layout task" into tm-dev
This commit is contained in:
@@ -142,18 +142,6 @@ class LaunchParamsController {
|
||||
mService.deferWindowLayout();
|
||||
|
||||
try {
|
||||
if (mTmpParams.mPreferredTaskDisplayArea != null
|
||||
&& task.getDisplayArea() != mTmpParams.mPreferredTaskDisplayArea) {
|
||||
mService.mRootWindowContainer.moveRootTaskToTaskDisplayArea(task.getRootTaskId(),
|
||||
mTmpParams.mPreferredTaskDisplayArea, true /* onTop */);
|
||||
}
|
||||
|
||||
if (mTmpParams.hasWindowingMode() && task.isRootTask()
|
||||
&& mTmpParams.mWindowingMode != task.getWindowingMode()) {
|
||||
task.setWindowingMode(task.getDisplayArea().validateWindowingMode(
|
||||
mTmpParams.mWindowingMode, activity, task));
|
||||
}
|
||||
|
||||
if (mTmpParams.mBounds.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -23,9 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
|
||||
import static android.view.Display.INVALID_DISPLAY;
|
||||
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
|
||||
@@ -278,51 +276,6 @@ public class LaunchParamsControllerTests extends WindowTestsBase {
|
||||
eq(source), eq(options), any(), eq(PHASE_BOUNDS), any(), any());
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that {@link LaunchParamsModifier} requests specifying display id during
|
||||
* layout are honored.
|
||||
*/
|
||||
@Test
|
||||
public void testLayoutTaskPreferredDisplayChange() {
|
||||
final LaunchParams params = new LaunchParams();
|
||||
final TestDisplayContent display = createNewDisplayContent();
|
||||
final TaskDisplayArea preferredTaskDisplayArea = display.getDefaultTaskDisplayArea();
|
||||
params.mPreferredTaskDisplayArea = preferredTaskDisplayArea;
|
||||
final InstrumentedPositioner positioner = new InstrumentedPositioner(RESULT_DONE, params);
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor).build();
|
||||
|
||||
mController.registerModifier(positioner);
|
||||
|
||||
doNothing().when(mRootWindowContainer).moveRootTaskToTaskDisplayArea(anyInt(), any(),
|
||||
anyBoolean());
|
||||
mController.layoutTask(task, null /* windowLayout */);
|
||||
verify(mRootWindowContainer, times(1)).moveRootTaskToTaskDisplayArea(
|
||||
eq(task.getRootTaskId()), eq(preferredTaskDisplayArea), anyBoolean());
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that {@link LaunchParamsModifier} requests specifying windowingMode during
|
||||
* layout are honored.
|
||||
*/
|
||||
@Test
|
||||
public void testLayoutTaskWindowingModeChange() {
|
||||
final LaunchParams params = new LaunchParams();
|
||||
final int windowingMode = WINDOWING_MODE_FREEFORM;
|
||||
params.mWindowingMode = windowingMode;
|
||||
final InstrumentedPositioner positioner = new InstrumentedPositioner(RESULT_DONE, params);
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor).build();
|
||||
|
||||
mController.registerModifier(positioner);
|
||||
|
||||
final int beforeWindowMode = task.getRootTask().getWindowingMode();
|
||||
assertNotEquals(windowingMode, beforeWindowMode);
|
||||
|
||||
mController.layoutTask(task, null /* windowLayout */);
|
||||
|
||||
final int afterWindowMode = task.getRootTask().getWindowingMode();
|
||||
assertEquals(windowingMode, afterWindowMode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that {@link LaunchParamsModifier} doesn't alter non-root tasks' windowingMode.
|
||||
*/
|
||||
@@ -355,10 +308,10 @@ public class LaunchParamsControllerTests extends WindowTestsBase {
|
||||
final Rect expected = new Rect(10, 20, 30, 40);
|
||||
|
||||
final LaunchParams params = new LaunchParams();
|
||||
params.mWindowingMode = WINDOWING_MODE_FREEFORM;
|
||||
params.mBounds.set(expected);
|
||||
final InstrumentedPositioner positioner = new InstrumentedPositioner(RESULT_DONE, params);
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor).build();
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor)
|
||||
.setWindowingMode(WINDOWING_MODE_FREEFORM).build();
|
||||
|
||||
mController.registerModifier(positioner);
|
||||
|
||||
@@ -380,10 +333,10 @@ public class LaunchParamsControllerTests extends WindowTestsBase {
|
||||
final Rect expected = new Rect(10, 20, 30, 40);
|
||||
|
||||
final LaunchParams params = new LaunchParams();
|
||||
params.mWindowingMode = WINDOWING_MODE_MULTI_WINDOW;
|
||||
params.mBounds.set(expected);
|
||||
final InstrumentedPositioner positioner = new InstrumentedPositioner(RESULT_DONE, params);
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor).build();
|
||||
final Task task = new TaskBuilder(mAtm.mTaskSupervisor)
|
||||
.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW).build();
|
||||
|
||||
mController.registerModifier(positioner);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import static android.app.KeyguardManager.ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
|
||||
@@ -945,14 +946,16 @@ public class RootWindowContainerTests extends WindowTestsBase {
|
||||
mWm, "TDA", FEATURE_VENDOR_FIRST);
|
||||
display.addChild(taskDisplayArea, POSITION_BOTTOM);
|
||||
|
||||
// Making sure getting the root task from the preferred TDA
|
||||
// Making sure getting the root task from the preferred TDA and the preferred windowing mode
|
||||
LaunchParamsController.LaunchParams launchParams =
|
||||
new LaunchParamsController.LaunchParams();
|
||||
launchParams.mPreferredTaskDisplayArea = taskDisplayArea;
|
||||
launchParams.mWindowingMode = WINDOWING_MODE_FREEFORM;
|
||||
Task root = mRootWindowContainer.getOrCreateRootTask(null /* r */, null /* options */,
|
||||
null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams,
|
||||
0 /* launchParams */);
|
||||
assertEquals(taskDisplayArea, root.getTaskDisplayArea());
|
||||
assertEquals(WINDOWING_MODE_FREEFORM, root.getWindowingMode());
|
||||
|
||||
// Making sure still getting the root task from the preferred TDA when passing in a
|
||||
// launching activity.
|
||||
@@ -961,6 +964,7 @@ public class RootWindowContainerTests extends WindowTestsBase {
|
||||
null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams,
|
||||
0 /* launchParams */);
|
||||
assertEquals(taskDisplayArea, root.getTaskDisplayArea());
|
||||
assertEquals(WINDOWING_MODE_FREEFORM, root.getWindowingMode());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user