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

Commit 71a02b2f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes I91673d51,I50bc9e06

* changes:
  Corrected typo in magnification spec crop calculation.
  Generate stack override config in AM vs. WM
parents 9e20d9db a9800ce0
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -16,6 +16,12 @@

package android.app;

import static android.app.WindowConfiguration.WINDOWING_MODE_DOCKED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;

import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -852,6 +858,32 @@ public class ActivityManager {
                    || stackId == ASSISTANT_STACK_ID
                    || isDynamicStack(stackId);
        }

        /** Returns the windowing mode that should be used for this input stack id. */
        // TODO: To be removed once we are not using stack id for stuff...
        public static int getWindowingModeForStackId(int stackId) {
            final int windowingMode;
            switch (stackId) {
                case FULLSCREEN_WORKSPACE_STACK_ID:
                case HOME_STACK_ID:
                case RECENTS_STACK_ID:
                case ASSISTANT_STACK_ID:
                    windowingMode = WINDOWING_MODE_FULLSCREEN;
                    break;
                case PINNED_STACK_ID:
                    windowingMode = WINDOWING_MODE_PINNED;
                    break;
                case DOCKED_STACK_ID:
                    windowingMode = WINDOWING_MODE_DOCKED;
                    break;
                case FREEFORM_WORKSPACE_STACK_ID:
                    windowingMode = WINDOWING_MODE_FREEFORM;
                    break;
                default :
                    windowingMode = WINDOWING_MODE_UNDEFINED;
            }
            return windowingMode;
        }
    }

    /**
+0 −5
Original line number Diff line number Diff line
@@ -24,9 +24,6 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.view.DisplayInfo;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Class that contains windowing configuration/state for other objects that contain windows directly
 * or indirectly. E.g. Activities, Task, Displays, ...
@@ -65,7 +62,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
            WINDOWING_MODE_DOCKED,
            WINDOWING_MODE_FREEFORM,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface WindowingMode {}

    /** Bit that indicates that the {@link #mAppBounds} changed. */
@@ -78,7 +74,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
                    WINDOW_CONFIG_APP_BOUNDS,
                    WINDOW_CONFIG_WINDOWING_MODE,
            })
    @Retention(RetentionPolicy.SOURCE)
    public @interface WindowConfig {}

    public WindowConfiguration() {
+15 −5
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import static android.app.ActivityManager.StackId.HOME_STACK_ID;
import static android.app.ActivityManager.StackId.INVALID_STACK_ID;
import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
import static android.app.ActivityManager.StackId.RECENTS_STACK_ID;
import static android.app.ActivityManager.StackId.getWindowingModeForStackId;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT;
import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING;
import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS;
@@ -460,24 +462,32 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        mTaskPositioner = mStackId == FREEFORM_WORKSPACE_STACK_ID
                ? new LaunchingTaskPositioner() : null;
        mTmpRect2.setEmpty();
        final Configuration overrideConfig = getOverrideConfiguration();
        updateOverrideConfiguration();
        mWindowContainerController = createStackWindowController(display.mDisplayId, onTop,
                mTmpRect2, overrideConfig);
        onOverrideConfigurationChanged(overrideConfig);
                mTmpRect2, getOverrideConfiguration());
        mStackSupervisor.mStacks.put(mStackId, this);
        postAddToDisplay(display, mTmpRect2.isEmpty() ? null : mTmpRect2, onTop);
    }

    T createStackWindowController(int displayId, boolean onTop, Rect outBounds,
            Configuration outOverrideConfig) {
            Configuration overrideConfig) {
        return (T) new StackWindowController(mStackId, this, displayId, onTop, outBounds,
                outOverrideConfig);
                overrideConfig);
    }

    T getWindowContainerController() {
        return mWindowContainerController;
    }

    // TODO: Not needed once we are no longer using stack ids as the override config. can be passed
    // in.
    private void updateOverrideConfiguration() {
        final int windowingMode = getWindowingModeForStackId(mStackId);
        if (windowingMode != WINDOWING_MODE_UNDEFINED) {
            setWindowingMode(windowingMode);
        }
    }

    /** Adds the stack to specified display and calls WindowManager to do the same. */
    void reparent(ActivityStackSupervisor.ActivityDisplay activityDisplay, boolean onTop) {
        removeFromDisplay();
+2 −2
Original line number Diff line number Diff line
@@ -39,9 +39,9 @@ class PinnedActivityStack extends ActivityStack<PinnedStackWindowController>

    @Override
    PinnedStackWindowController createStackWindowController(int displayId, boolean onTop,
            Rect outBounds, Configuration outOverrideConfig) {
            Rect outBounds, Configuration overrideConfig) {
        return new PinnedStackWindowController(mStackId, this, displayId, onTop, outBounds,
                outOverrideConfig);
                overrideConfig);
    }

    Rect getDefaultPictureInPictureBounds(float aspectRatio) {
+1 −2
Original line number Diff line number Diff line
@@ -120,8 +120,7 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> {
    }

    /** Sets the windowing mode for the configuration container. */
    void setWindowingMode(/*@WindowConfiguration.WindowingMode TODO: causes build error...why?*/
            int windowingMode) {
    public void setWindowingMode(@WindowConfiguration.WindowingMode int windowingMode) {
        mOverrideConfiguration.windowConfiguration.setWindowingMode(windowingMode);
        onOverrideConfigurationChanged(mOverrideConfiguration);
    }
Loading