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

Commit 3b72c868 authored by Brandon Pollack's avatar Brandon Pollack Committed by Brandon Ross Pollack
Browse files

Added a simple fix to override persisted window mode.

In Task.java we havent updated to check Task Display Area instead of
display to tell if we should or should not persist the windowing mode.
This corrects that.

Bug: 265114439
Test: Manually tested, open the app in tablet mode, close, then open in
desktop mode and verfiy it isnt full screen

Change-Id: Ice3462e4dda92dd3695a3a1eea01d58a5ca9d753
parent 9ce369b8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
+5 −4
Original line number Diff line number Diff line
@@ -2277,10 +2277,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;
        }

+1 −0
Original line number Diff line number Diff line
@@ -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);

+5 −6
Original line number Diff line number Diff line
@@ -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