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

Commit 34eedf49 authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Determine whether to support activities in multi window (2/n)" into sc-dev

parents 43c67441 97d56c06
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;
        }