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

Commit 394e744a authored by mattsziklay's avatar mattsziklay Committed by Matt Sziklay
Browse files

Desktop Mode split exit reason changes.

Previously, when using the handle menu to go from split to fullscreen,
EXIT_REASON_FULLSCREEN_SHORTCUT was used. However this is reserved for
keyboard shortcuts. This CL renames the desktop exit reason to be more
broadly applicable to desktop mode, even if the transition is not
entering desktop windowing.

Bug: 323431955
Test: Manual

Change-Id: Ie28f449a065ba29e356401ff793d1d4acead389d
parent 8890c994
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
import com.android.wm.shell.recents.RecentsTransitionHandler
import com.android.wm.shell.recents.RecentsTransitionStateListener
import com.android.wm.shell.splitscreen.SplitScreenController
import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_ENTER_DESKTOP
import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTOP_MODE
import com.android.wm.shell.sysui.ShellCommandHandler
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellInit
@@ -386,7 +386,7 @@ class DesktopTasksController(
            splitScreenController.prepareExitSplitScreen(
                    wct,
                    splitScreenController.getStageOfTask(taskInfo.taskId),
                    EXIT_REASON_ENTER_DESKTOP
                    EXIT_REASON_DESKTOP_MODE
            )
            getOtherSplitTask(taskInfo.taskId)?.let { otherTaskInfo ->
                wct.removeTask(otherTaskInfo.token)
+6 −6
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
    public static final int EXIT_REASON_CHILD_TASK_ENTER_PIP = 9;
    public static final int EXIT_REASON_RECREATE_SPLIT = 10;
    public static final int EXIT_REASON_FULLSCREEN_SHORTCUT = 11;
    public static final int EXIT_REASON_ENTER_DESKTOP = 12;
    public static final int EXIT_REASON_DESKTOP_MODE = 12;
    @IntDef(value = {
            EXIT_REASON_UNKNOWN,
            EXIT_REASON_APP_DOES_NOT_SUPPORT_MULTIWINDOW,
@@ -152,7 +152,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
            EXIT_REASON_CHILD_TASK_ENTER_PIP,
            EXIT_REASON_RECREATE_SPLIT,
            EXIT_REASON_FULLSCREEN_SHORTCUT,
            EXIT_REASON_ENTER_DESKTOP
            EXIT_REASON_DESKTOP_MODE
    })
    @Retention(RetentionPolicy.SOURCE)
    @interface ExitReason{}
@@ -529,8 +529,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
    }

    /** Move the specified task to fullscreen, regardless of focus state. */
    public void moveTaskToFullscreen(int taskId) {
        mStageCoordinator.moveTaskToFullscreen(taskId);
    public void moveTaskToFullscreen(int taskId, int exitReason) {
        mStageCoordinator.moveTaskToFullscreen(taskId, exitReason);
    }

    public boolean isLaunchToSplit(TaskInfo taskInfo) {
@@ -1144,8 +1144,8 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
                return "CHILD_TASK_ENTER_PIP";
            case EXIT_REASON_RECREATE_SPLIT:
                return "RECREATE_SPLIT";
            case EXIT_REASON_ENTER_DESKTOP:
                return "ENTER_DESKTOP";
            case EXIT_REASON_DESKTOP_MODE:
                return "DESKTOP_MODE";
            default:
                return "unknown reason, reason int = " + exitReason;
        }
+4 −4
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED_
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DEVICE_FOLDED;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DRAG_DIVIDER;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_SHORTCUT;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__ENTER_DESKTOP;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DESKTOP_MODE;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__RECREATE_SPLIT;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__RETURN_HOME;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__ROOT_TASK_VANISHED;
@@ -43,7 +43,7 @@ import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_CHILD_TASK_ENTER_PIP;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DEVICE_FOLDED;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DRAG_DIVIDER;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_ENTER_DESKTOP;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTOP_MODE;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_FULLSCREEN_SHORTCUT;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_RECREATE_SPLIT;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_RETURN_HOME;
@@ -194,8 +194,8 @@ public class SplitscreenEventLogger {
                return SPLITSCREEN_UICHANGED__EXIT_REASON__RECREATE_SPLIT;
            case EXIT_REASON_FULLSCREEN_SHORTCUT:
                return SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_SHORTCUT;
            case EXIT_REASON_ENTER_DESKTOP:
                return SPLITSCREEN_UICHANGED__EXIT_REASON__ENTER_DESKTOP;
            case EXIT_REASON_DESKTOP_MODE:
                return SPLITSCREEN_UICHANGED__EXIT_REASON__DESKTOP_MODE;
            case EXIT_REASON_UNKNOWN:
                // Fall through
            default:
+2 −2
Original line number Diff line number Diff line
@@ -2969,7 +2969,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    }

    /** Move the specified task to fullscreen, regardless of focus state. */
    public void moveTaskToFullscreen(int taskId) {
    public void moveTaskToFullscreen(int taskId, int exitReason) {
        boolean leftOrTop;
        if (mMainStage.containsTask(taskId)) {
            leftOrTop = (mSideStagePosition == SPLIT_POSITION_TOP_OR_LEFT);
@@ -2978,7 +2978,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        } else {
            return;
        }
        mSplitLayout.flingDividerToDismiss(!leftOrTop, EXIT_REASON_FULLSCREEN_SHORTCUT);
        mSplitLayout.flingDividerToDismiss(!leftOrTop, exitReason);

    }

+4 −2
Original line number Diff line number Diff line
@@ -337,7 +337,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            final int id = v.getId();
            if (id == R.id.close_window) {
                if (isTaskInSplitScreen(mTaskId)) {
                    mSplitScreenController.moveTaskToFullscreen(getOtherSplitTask(mTaskId).taskId);
                    mSplitScreenController.moveTaskToFullscreen(getOtherSplitTask(mTaskId).taskId,
                            SplitScreenController.EXIT_REASON_DESKTOP_MODE);
                } else {
                    mTaskOperations.closeTask(mTaskToken);
                }
@@ -363,7 +364,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            } else if (id == R.id.fullscreen_button) {
                decoration.closeHandleMenu();
                if (isTaskInSplitScreen(mTaskId)) {
                    mSplitScreenController.moveTaskToFullscreen(mTaskId);
                    mSplitScreenController.moveTaskToFullscreen(mTaskId,
                            SplitScreenController.EXIT_REASON_DESKTOP_MODE);
                } else {
                    mDesktopTasksController.ifPresent(c ->
                            c.moveToFullscreen(mTaskId));
Loading