Merge "Added a simple fix to override persisted window mode." into udc-dev

This commit is contained in:
Brandon Ross Pollack
2023-03-17 05:51:45 +00:00
committed by Android (Google) Code Review
4 changed files with 13 additions and 12 deletions

View File

@@ -263,8 +263,8 @@ class LaunchParamsPersister {
boolean changed = !Objects.equals(params.mDisplayUniqueId, info.uniqueId);
params.mDisplayUniqueId = info.uniqueId;
changed |= params.mWindowingMode != task.getWindowingMode();
params.mWindowingMode = task.getWindowingMode();
changed |= params.mWindowingMode != task.getTaskDisplayArea().getWindowingMode();
params.mWindowingMode = task.getTaskDisplayArea().getWindowingMode();
if (task.mLastNonFullscreenBounds != null) {
changed |= !Objects.equals(params.mBounds, task.mLastNonFullscreenBounds);

View File

@@ -2244,10 +2244,11 @@ class Task extends TaskFragment {
return;
}
// Don't persist state if display isn't in freeform mode. Then the task will be launched
// back to its last state in a freeform display when it's launched in a freeform display
// next time.
if (getWindowConfiguration().getDisplayWindowingMode() != WINDOWING_MODE_FREEFORM) {
// Don't persist state if Task Display Area isn't in freeform mode. Then the task will be
// launched back to its last state in a freeform Task Display Area when it's launched in a
// freeform Task Display Area next time.
if (getTaskDisplayArea() == null
|| getTaskDisplayArea().getWindowingMode() != WINDOWING_MODE_FREEFORM) {
return;
}

View File

@@ -111,6 +111,7 @@ public class LaunchParamsPersisterTests extends WindowTestsBase {
mDisplayUniqueId = "test:" + sNextUniqueId++;
mTestDisplay = new TestDisplayContent.Builder(mAtm, 1000, 1500)
.setUniqueId(mDisplayUniqueId).build();
mTestDisplay.getDefaultTaskDisplayArea().setWindowingMode(TEST_WINDOWING_MODE);
when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId)))
.thenReturn(mTestDisplay);

View File

@@ -1328,17 +1328,16 @@ public class TaskTests extends WindowTestsBase {
spyOn(persister);
final Task task = getTestTask();
task.setHasBeenVisible(false);
task.setHasBeenVisible(true);
task.getDisplayContent()
.getDefaultTaskDisplayArea()
.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM);
task.getRootTask().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
.setWindowingMode(WINDOWING_MODE_FREEFORM);
task.getRootTask().setWindowingMode(WINDOWING_MODE_FREEFORM);
final DisplayContent oldDisplay = task.getDisplayContent();
LaunchParamsController.LaunchParams params = new LaunchParamsController.LaunchParams();
params.mWindowingMode = WINDOWING_MODE_UNDEFINED;
persister.getLaunchParams(task, null, params);
assertEquals(WINDOWING_MODE_UNDEFINED, params.mWindowingMode);
assertEquals(WINDOWING_MODE_FREEFORM, params.mWindowingMode);
task.setHasBeenVisible(true);
task.removeImmediately();
@@ -1346,7 +1345,7 @@ public class TaskTests extends WindowTestsBase {
verify(persister).saveTask(task, oldDisplay);
persister.getLaunchParams(task, null, params);
assertEquals(WINDOWING_MODE_FULLSCREEN, params.mWindowingMode);
assertEquals(WINDOWING_MODE_FREEFORM, params.mWindowingMode);
}
@Test