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

Commit b6b19106 authored by Chris Li's avatar Chris Li Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I45557b8a152cc1a06adcf781e7e3bc4d41fc83d4
parents 40738f59 34eedf49
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;
        }