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); boolean changed = !Objects.equals(params.mDisplayUniqueId, info.uniqueId);
params.mDisplayUniqueId = info.uniqueId; params.mDisplayUniqueId = info.uniqueId;
changed |= params.mWindowingMode != task.getWindowingMode(); changed |= params.mWindowingMode != task.getTaskDisplayArea().getWindowingMode();
params.mWindowingMode = task.getWindowingMode(); params.mWindowingMode = task.getTaskDisplayArea().getWindowingMode();
if (task.mLastNonFullscreenBounds != null) { if (task.mLastNonFullscreenBounds != null) {
changed |= !Objects.equals(params.mBounds, task.mLastNonFullscreenBounds); changed |= !Objects.equals(params.mBounds, task.mLastNonFullscreenBounds);

View File

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

View File

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

View File

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