Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbdb233c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only save launch params for leaf tasks." into sc-dev am: b333b92b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13473855

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I799b7c98800ee500d9cf678b244791ac55d6ac08
parents 8177f42c b333b92b
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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;
@@ -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;
+20 −0
Original line number Diff line number Diff line
@@ -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)