Loading services/core/java/com/android/server/wm/Task.java +6 −6 Original line number Diff line number Diff line Loading @@ -919,10 +919,8 @@ class Task extends WindowContainer<WindowContainer> { return; } if (isLeafTask()) { // This task is going away, so save the last state if necessary. saveLaunchingStateIfNeeded(((WindowContainer) oldParent).getDisplayContent()); } // TODO: VI what about activity? final boolean isVoiceSession = voiceSession != null; Loading Loading @@ -2457,14 +2455,16 @@ class Task extends WindowContainer<WindowContainer> { /** * Saves launching state if necessary so that we can launch the activity to its latest state. * It only saves state if this task has been shown to user and it's in fullscreen or freeform * mode on freeform displays. */ private void saveLaunchingStateIfNeeded() { saveLaunchingStateIfNeeded(getDisplayContent()); } private void saveLaunchingStateIfNeeded(DisplayContent display) { if (!isLeafTask()) { return; } if (!getHasBeenVisible()) { // Not ever visible to user. return; Loading services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java +20 −0 Original line number Diff line number Diff line Loading @@ -1003,6 +1003,26 @@ public class TaskRecordTests extends WindowTestsBase { verify(persister, never()).saveTask(same(task), any()); } @Test public void testNotSaveLaunchingStateForNonLeafTask() { LaunchParamsPersister persister = mAtm.mTaskSupervisor.mLaunchParamsPersister; spyOn(persister); final Task task = getTestTask(); task.setHasBeenVisible(false); task.getDisplayContent().setDisplayWindowingMode(WINDOWING_MODE_FREEFORM); task.getRootTask().setWindowingMode(WINDOWING_MODE_FULLSCREEN); final Task leafTask = createTaskInStack(task, 0 /* userId */); leafTask.setHasBeenVisible(true); task.setHasBeenVisible(true); task.onConfigurationChanged(task.getParent().getConfiguration()); verify(persister, never()).saveTask(same(task), any()); verify(persister).saveTask(same(leafTask), any()); } @Test public void testNotSpecifyOrientationByFloatingTask() { final Task task = new TaskBuilder(mSupervisor) Loading Loading
services/core/java/com/android/server/wm/Task.java +6 −6 Original line number Diff line number Diff line Loading @@ -919,10 +919,8 @@ class Task extends WindowContainer<WindowContainer> { return; } if (isLeafTask()) { // This task is going away, so save the last state if necessary. saveLaunchingStateIfNeeded(((WindowContainer) oldParent).getDisplayContent()); } // TODO: VI what about activity? final boolean isVoiceSession = voiceSession != null; Loading Loading @@ -2457,14 +2455,16 @@ class Task extends WindowContainer<WindowContainer> { /** * Saves launching state if necessary so that we can launch the activity to its latest state. * It only saves state if this task has been shown to user and it's in fullscreen or freeform * mode on freeform displays. */ private void saveLaunchingStateIfNeeded() { saveLaunchingStateIfNeeded(getDisplayContent()); } private void saveLaunchingStateIfNeeded(DisplayContent display) { if (!isLeafTask()) { return; } if (!getHasBeenVisible()) { // Not ever visible to user. return; Loading
services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java +20 −0 Original line number Diff line number Diff line Loading @@ -1003,6 +1003,26 @@ public class TaskRecordTests extends WindowTestsBase { verify(persister, never()).saveTask(same(task), any()); } @Test public void testNotSaveLaunchingStateForNonLeafTask() { LaunchParamsPersister persister = mAtm.mTaskSupervisor.mLaunchParamsPersister; spyOn(persister); final Task task = getTestTask(); task.setHasBeenVisible(false); task.getDisplayContent().setDisplayWindowingMode(WINDOWING_MODE_FREEFORM); task.getRootTask().setWindowingMode(WINDOWING_MODE_FULLSCREEN); final Task leafTask = createTaskInStack(task, 0 /* userId */); leafTask.setHasBeenVisible(true); task.setHasBeenVisible(true); task.onConfigurationChanged(task.getParent().getConfiguration()); verify(persister, never()).saveTask(same(task), any()); verify(persister).saveTask(same(leafTask), any()); } @Test public void testNotSpecifyOrientationByFloatingTask() { final Task task = new TaskBuilder(mSupervisor) Loading