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

Commit f68c126c authored by Jeremy Sim's avatar Jeremy Sim Committed by Android (Google) Code Review
Browse files

Merge "Change SnapPosition numbering for app pairs rank encoding" into main

parents 96640438 c7582fec
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.DisplayInsetsController;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.InteractionJankMonitorUtils;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.SnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;

@@ -484,7 +485,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
    }

    /** Updates divide position and split bounds base on the ratio within root bounds. */
    public void setDivideRatio(@SnapPosition int snapPosition) {
    public void setDivideRatio(@PersistentSnapPosition int snapPosition) {
        final DividerSnapAlgorithm.SnapTarget snapTarget = mDividerSnapAlgorithm.findSnapTarget(
                snapPosition);

+50 −22
Original line number Diff line number Diff line
@@ -26,6 +26,16 @@ import android.annotation.IntDef;

/** Helper utility class of methods and constants that are available to be imported in Launcher. */
public class SplitScreenConstants {
    /**
     * Duration used for every split fade-in or fade-out.
     */
    public static final int FADE_DURATION = 133;

    ///////////////
    // IMPORTANT for the following SPLIT_POSITION and SNAP_TO constants:
    // These int values must not be changed -- they are persisted to user-defined app pairs, and
    // will break things if changed.
    //

    /**
     * Split position isn't specified normally meaning to use what ever it is currently set to.
@@ -44,11 +54,6 @@ public class SplitScreenConstants {
     */
    public static final int SPLIT_POSITION_BOTTOM_OR_RIGHT = 1;

    /**
     * Duration used for every split fade-in or fade-out.
     */
    public static final int FADE_DURATION = 133;

    @IntDef(prefix = {"SPLIT_POSITION_"}, value = {
            SPLIT_POSITION_UNDEFINED,
            SPLIT_POSITION_TOP_OR_LEFT,
@@ -57,38 +62,61 @@ public class SplitScreenConstants {
    public @interface SplitPosition {
    }

    /** The divider doesn't snap to any target and is freely placeable. */
    public static final int SNAP_TO_NONE = 0;

    /** A snap target positioned near the screen edge for a minimized task */
    public static final int SNAP_TO_MINIMIZE = 1;

    /** If the divider reaches this value, the left/top task should be dismissed. */
    public static final int SNAP_TO_START_AND_DISMISS = 2;

    /** A snap target in the first half of the screen, where the split is roughly 30-70. */
    public static final int SNAP_TO_30_70 = 3;
    public static final int SNAP_TO_30_70 = 0;

    /** The 50-50 snap target */
    public static final int SNAP_TO_50_50 = 4;
    public static final int SNAP_TO_50_50 = 1;

    /** A snap target in the latter half of the screen, where the split is roughly 70-30. */
    public static final int SNAP_TO_70_30 = 5;
    public static final int SNAP_TO_70_30 = 2;

    /**
     * These snap targets are used for split pairs in a stable, non-transient state. They may be
     * persisted in Launcher when the user saves an app pair. They are a subset of
     * {@link SnapPosition}.
     */
    @IntDef(prefix = { "SNAP_TO_" }, value = {
            SNAP_TO_30_70,
            SNAP_TO_50_50,
            SNAP_TO_70_30
    })
    public @interface PersistentSnapPosition {}

    /**
     * Checks if the snapPosition in question is a {@link PersistentSnapPosition}.
     */
    public static boolean isPersistentSnapPosition(@SnapPosition int snapPosition) {
        return snapPosition == SNAP_TO_30_70
                || snapPosition == SNAP_TO_50_50
                || snapPosition == SNAP_TO_70_30;
    }

    /** The divider doesn't snap to any target and is freely placeable. */
    public static final int SNAP_TO_NONE = 10;

    /** If the divider reaches this value, the left/top task should be dismissed. */
    public static final int SNAP_TO_START_AND_DISMISS = 11;

    /** If the divider reaches this value, the right/bottom task should be dismissed. */
    public static final int SNAP_TO_END_AND_DISMISS = 6;
    public static final int SNAP_TO_END_AND_DISMISS = 12;

    /** A snap target positioned near the screen edge for a minimized task */
    public static final int SNAP_TO_MINIMIZE = 13;

    @IntDef(prefix = { "SNAP_TO_" }, value = {
            SNAP_TO_NONE,
            SNAP_TO_MINIMIZE,
            SNAP_TO_START_AND_DISMISS,
            SNAP_TO_30_70,
            SNAP_TO_50_50,
            SNAP_TO_70_30,
            SNAP_TO_END_AND_DISMISS
            SNAP_TO_NONE,
            SNAP_TO_START_AND_DISMISS,
            SNAP_TO_END_AND_DISMISS,
            SNAP_TO_MINIMIZE
    })
    public @interface SnapPosition {}

    ///////////////

    public static final int[] CONTROLLED_ACTIVITY_TYPES = {ACTIVITY_TYPE_STANDARD};
    public static final int[] CONTROLLED_WINDOWING_MODES =
            {WINDOWING_MODE_FULLSCREEN, WINDOWING_MODE_UNDEFINED};
+20 −18
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_USER_ACTION;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.RemoteAnimationTarget.MODE_OPENING;

import static com.android.wm.shell.common.ExecutorUtils.executeRemoteCallWithTaskPermission;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
@@ -85,7 +86,7 @@ import com.android.wm.shell.common.SingleInstanceRemoteListener;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.annotations.ExternalThread;
import com.android.wm.shell.common.split.SplitScreenConstants.SnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;
import com.android.wm.shell.common.split.SplitScreenUtils;
import com.android.wm.shell.desktopmode.DesktopTasksController;
@@ -601,7 +602,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,

    void startShortcutAndTaskWithLegacyTransition(ShortcutInfo shortcutInfo,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        if (options1 == null) options1 = new Bundle();
        final ActivityOptions activityOptions = ActivityOptions.fromBundle(options1);
@@ -632,7 +633,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,

    void startShortcutAndTask(ShortcutInfo shortcutInfo, @Nullable Bundle options1,
            int taskId, @Nullable Bundle options2, @SplitPosition int splitPosition,
            @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            @PersistentSnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            InstanceId instanceId) {
        if (options1 == null) options1 = new Bundle();
        final ActivityOptions activityOptions = ActivityOptions.fromBundle(options1);
@@ -675,7 +676,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,

    private void startIntentAndTaskWithLegacyTransition(PendingIntent pendingIntent, int userId1,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        Intent fillInIntent = null;
        final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent);
@@ -702,7 +703,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,

    private void startIntentAndTask(PendingIntent pendingIntent, int userId1,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
        Intent fillInIntent = null;
        final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent);
@@ -736,7 +737,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
            @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
            PendingIntent pendingIntent2, int userId2, @Nullable ShortcutInfo shortcutInfo2,
            @Nullable Bundle options2, @SplitPosition int splitPosition,
            @SnapPosition int snapPosition, RemoteAnimationAdapter adapter, InstanceId instanceId) {
            @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
            InstanceId instanceId) {
        Intent fillInIntent1 = null;
        Intent fillInIntent2 = null;
        final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent1);
@@ -767,7 +769,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
            @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
            PendingIntent pendingIntent2, int userId2, @Nullable ShortcutInfo shortcutInfo2,
            @Nullable Bundle options2, @SplitPosition int splitPosition,
            @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            @PersistentSnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            InstanceId instanceId) {
        Intent fillInIntent1 = null;
        Intent fillInIntent2 = null;
@@ -1225,7 +1227,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startTasksWithLegacyTransition(int taskId1, @Nullable Bundle options1,
                int taskId2, @Nullable Bundle options2, @SplitPosition int splitPosition,
                @SnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startTasks",
                    (controller) -> controller.mStageCoordinator.startTasksWithLegacyTransition(
@@ -1236,7 +1238,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startIntentAndTaskWithLegacyTransition(PendingIntent pendingIntent, int userId1,
                Bundle options1, int taskId, Bundle options2, int splitPosition,
                @SnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController,
                    "startIntentAndTaskWithLegacyTransition", (controller) ->
@@ -1248,7 +1250,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startShortcutAndTaskWithLegacyTransition(ShortcutInfo shortcutInfo,
                @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
                @SplitPosition int splitPosition, @SnapPosition int snapPosition,
                @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
                RemoteAnimationAdapter adapter, InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController,
                    "startShortcutAndTaskWithLegacyTransition", (controller) ->
@@ -1260,8 +1262,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startTasks(int taskId1, @Nullable Bundle options1, int taskId2,
                @Nullable Bundle options2, @SplitPosition int splitPosition,
                @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
                InstanceId instanceId) {
                @PersistentSnapPosition int snapPosition,
                @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startTasks",
                    (controller) -> controller.mStageCoordinator.startTasks(taskId1, options1,
                            taskId2, options2, splitPosition, snapPosition, remoteTransition,
@@ -1271,7 +1273,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startIntentAndTask(PendingIntent pendingIntent, int userId1,
                @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
                @SplitPosition int splitPosition, @SnapPosition int snapPosition,
                @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
                @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startIntentAndTask",
                    (controller) -> controller.startIntentAndTask(pendingIntent, userId1, options1,
@@ -1282,8 +1284,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        @Override
        public void startShortcutAndTask(ShortcutInfo shortcutInfo, @Nullable Bundle options1,
                int taskId, @Nullable Bundle options2, @SplitPosition int splitPosition,
                @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
                InstanceId instanceId) {
                @PersistentSnapPosition int snapPosition,
                @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startShortcutAndTask",
                    (controller) -> controller.startShortcutAndTask(shortcutInfo, options1, taskId,
                            options2, splitPosition, snapPosition, remoteTransition, instanceId));
@@ -1294,7 +1296,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
                @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
                PendingIntent pendingIntent2, int userId2, @Nullable ShortcutInfo shortcutInfo2,
                @Nullable Bundle options2, @SplitPosition int splitPosition,
                @SnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
                InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startIntentsWithLegacyTransition",
                    (controller) ->
@@ -1309,8 +1311,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
                @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
                PendingIntent pendingIntent2, int userId2, @Nullable ShortcutInfo shortcutInfo2,
                @Nullable Bundle options2, @SplitPosition int splitPosition,
                @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
                InstanceId instanceId) {
                @PersistentSnapPosition int snapPosition,
                @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
            executeRemoteCallWithTaskPermission(mController, "startIntents",
                    (controller) ->
                            controller.startIntents(pendingIntent1, userId1, shortcutInfo1,
+14 −13
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.split.SplitLayout;
import com.android.wm.shell.common.split.SplitScreenConstants.SnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;
import com.android.wm.shell.common.split.SplitScreenUtils;
import com.android.wm.shell.common.split.SplitWindowManager;
@@ -633,7 +633,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,

    /** Starts 2 tasks in one transition. */
    void startTasks(int taskId1, @Nullable Bundle options1, int taskId2, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (taskId2 == INVALID_TASK_ID) {
@@ -661,7 +661,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    /** Start an intent and a task to a split pair in one transition. */
    void startIntentAndTask(PendingIntent pendingIntent, Intent fillInIntent,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (taskId == INVALID_TASK_ID) {
@@ -683,7 +683,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    /** Starts a shortcut and a task to a split pair in one transition. */
    void startShortcutAndTask(ShortcutInfo shortcutInfo, @Nullable Bundle options1,
            int taskId, @Nullable Bundle options2, @SplitPosition int splitPosition,
            @SnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            @PersistentSnapPosition int snapPosition, @Nullable RemoteTransition remoteTransition,
            InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (taskId == INVALID_TASK_ID) {
@@ -710,7 +710,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
     *                   {@link SplitscreenEventLogger#logEnter(float, int, int, int, int, boolean)}
     */
    private void startWithTask(WindowContainerTransaction wct, int mainTaskId,
            @Nullable Bundle mainOptions, @SnapPosition int snapPosition,
            @Nullable Bundle mainOptions, @PersistentSnapPosition int snapPosition,
            @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
        if (!mMainStage.isActive()) {
            // Build a request WCT that will launch both apps such that task 0 is on the main stage
@@ -744,7 +744,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
            PendingIntent pendingIntent2, Intent fillInIntent2,
            @Nullable ShortcutInfo shortcutInfo2, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (pendingIntent2 == null) {
@@ -796,7 +796,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    /** Starts a pair of tasks using legacy transition. */
    void startTasksWithLegacyTransition(int taskId1, @Nullable Bundle options1,
            int taskId2, @Nullable Bundle options2, @SplitPosition int splitPosition,
            @SnapPosition int snapPosition, RemoteAnimationAdapter adapter, InstanceId instanceId) {
            @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
            InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (options1 == null) options1 = new Bundle();
        if (taskId2 == INVALID_TASK_ID) {
@@ -826,7 +827,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
            @Nullable PendingIntent pendingIntent2, Intent fillInIntent2,
            @Nullable ShortcutInfo shortcutInfo2, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (options1 == null) options1 = new Bundle();
@@ -851,7 +852,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,

    void startIntentAndTaskWithLegacyTransition(PendingIntent pendingIntent, Intent fillInIntent,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (options1 == null) options1 = new Bundle();
@@ -872,7 +873,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    /** Starts a pair of shortcut and task using legacy transition. */
    void startShortcutAndTaskWithLegacyTransition(ShortcutInfo shortcutInfo,
            @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
            @SplitPosition int splitPosition, @SnapPosition int snapPosition,
            @SplitPosition int splitPosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        if (options1 == null) options1 = new Bundle();
@@ -934,7 +935,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    private void startWithLegacyTransition(WindowContainerTransaction wct,
            @Nullable PendingIntent mainPendingIntent, @Nullable Intent mainFillInIntent,
            @Nullable ShortcutInfo mainShortcutInfo, @Nullable Bundle mainOptions,
            @SplitPosition int sidePosition, @SnapPosition int snapPosition,
            @SplitPosition int sidePosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        startWithLegacyTransition(wct, INVALID_TASK_ID, mainPendingIntent, mainFillInIntent,
                mainShortcutInfo, mainOptions, sidePosition, snapPosition, adapter, instanceId);
@@ -942,7 +943,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,

    private void startWithLegacyTransition(WindowContainerTransaction wct, int mainTaskId,
            @Nullable Bundle mainOptions, @SplitPosition int sidePosition,
            @SnapPosition int snapPosition, RemoteAnimationAdapter adapter,
            @PersistentSnapPosition int snapPosition, RemoteAnimationAdapter adapter,
            InstanceId instanceId) {
        startWithLegacyTransition(wct, mainTaskId, null /* mainPendingIntent */,
                null /* mainFillInIntent */, null /* mainShortcutInfo */, mainOptions, sidePosition,
@@ -957,7 +958,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    private void startWithLegacyTransition(WindowContainerTransaction wct, int mainTaskId,
            @Nullable PendingIntent mainPendingIntent, @Nullable Intent mainFillInIntent,
            @Nullable ShortcutInfo mainShortcutInfo, @Nullable Bundle options,
            @SplitPosition int sidePosition, @SnapPosition int snapPosition,
            @SplitPosition int sidePosition, @PersistentSnapPosition int snapPosition,
            RemoteAnimationAdapter adapter, InstanceId instanceId) {
        if (!isSplitScreenVisible()) {
            exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT);
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ import android.graphics.Rect;
import android.os.Parcel;
import android.os.Parcelable;

import com.android.wm.shell.common.split.SplitScreenConstants.SnapPosition;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;

import java.util.Objects;

@@ -39,7 +39,7 @@ public class SplitBounds implements Parcelable {
    public final float leftTaskPercent;
    public final float dividerWidthPercent;
    public final float dividerHeightPercent;
    public final @SnapPosition int snapPosition;
    public final @PersistentSnapPosition int snapPosition;
    /**
     * If {@code true}, that means at the time of creation of this object, the
     * split-screened apps were vertically stacked. This is useful in scenarios like
@@ -51,7 +51,7 @@ public class SplitBounds implements Parcelable {
    public final int rightBottomTaskId;

    public SplitBounds(Rect leftTopBounds, Rect rightBottomBounds, int leftTopTaskId,
            int rightBottomTaskId, @SnapPosition int snapPosition) {
            int rightBottomTaskId, @PersistentSnapPosition int snapPosition) {
        this.leftTopBounds = leftTopBounds;
        this.rightBottomBounds = rightBottomBounds;
        this.leftTopTaskId = leftTopTaskId;
Loading