Loading services/core/java/com/android/server/wm/LaunchParamsPersister.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading services/core/java/com/android/server/wm/Task.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; } Loading services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading services/tests/wmtests/src/com/android/server/wm/TaskTests.java +5 −6 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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 Loading Loading
services/core/java/com/android/server/wm/LaunchParamsPersister.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading
services/core/java/com/android/server/wm/Task.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; } Loading
services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
services/tests/wmtests/src/com/android/server/wm/TaskTests.java +5 −6 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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 Loading