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

Commit 97d56c06 authored by Chris Li's avatar Chris Li
Browse files

Determine whether to support activities in multi window (2/n)

Replace some existing usages of mSupportsNonResizableMultiWindow with
checking supportsMultiWindow() per Task/Activity.

This is cleanup before updating supportsMultiWindow().

Bug: 176061101
Test: pass existing
Change-Id: I3de46d6ecaae1ad93d031384e9cba6e0e4ebb01d
parent f343ef31
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -827,9 +827,9 @@ class ActivityClientController extends IActivityClientController.Stub {

                if (rootTask.inFreeformWindowingMode()) {
                    rootTask.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
                } else if (!mService.mSupportsNonResizableMultiWindow && r.inSizeCompatMode()) {
                    throw new IllegalStateException("Size-compat windows are currently not"
                            + "freeform-enabled");
                } else if (!r.supportsFreeform()) {
                    throw new IllegalStateException(
                            "This activity is currently not freeform-enabled");
                } else if (rootTask.getParent().inFreeformWindowingMode()) {
                    // If the window is on a freeform display, set it to undefined. It will be
                    // resolved to freeform and it can adjust windowing mode when the display mode
+1 −2
Original line number Diff line number Diff line
@@ -2465,8 +2465,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (windowingMode == WINDOWING_MODE_PINNED && info.supportsPictureInPicture()) {
            return false;
        }
        if (WindowConfiguration.inMultiWindowMode(windowingMode)
                && mAtmService.mSupportsNonResizableMultiWindow
        if (WindowConfiguration.inMultiWindowMode(windowingMode) && supportsMultiWindow()
                && !mAtmService.mForceResizableActivities) {
            // The non resizable app will be letterboxed instead of being forced resizable.
            return false;
+4 −5
Original line number Diff line number Diff line
@@ -2836,14 +2836,13 @@ class Task extends WindowContainer<WindowContainer> {
            getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode);
        }

        // Do not allow non-resizable tasks to be in a multi-window mode, unless it is in pinned
        // windowing mode or supports non-resizable tasks in multi-window mode.
        if (!isResizeable()) {
        // Do not allow tasks not support multi window to be in a multi-window mode, unless it is in
        // pinned windowing mode.
        if (!supportsMultiWindow()) {
            final int candidateWindowingMode =
                    windowingMode != WINDOWING_MODE_UNDEFINED ? windowingMode : parentWindowingMode;
            if (WindowConfiguration.inMultiWindowMode(candidateWindowingMode)
                    && candidateWindowingMode != WINDOWING_MODE_PINNED
                    && !mTaskSupervisor.mService.mSupportsNonResizableMultiWindow) {
                    && candidateWindowingMode != WINDOWING_MODE_PINNED) {
                getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(
                        WINDOWING_MODE_FULLSCREEN);
            }
+1 −1
Original line number Diff line number Diff line
@@ -612,7 +612,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {

    private boolean shouldLaunchUnresizableAppInFreeform(ActivityRecord activity,
            TaskDisplayArea displayArea) {
        if (!mSupervisor.mService.mSupportsNonResizableMultiWindow || activity.isResizeable()) {
        if (!activity.supportsFreeform() || activity.isResizeable()) {
            return false;
        }