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

Commit 55ddb6ce 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: I666e45bfb12eb78d6995d497ea4912eb04785513
parents 42afaf25 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;
        }