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

Commit 3ff44cf0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix missing desktop-immersive exit with multi-desks" into main

parents 15b3d8ca 3f1d33ac
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -357,6 +357,9 @@ class DesktopTasksController(
        )
        dragAndDropController.addListener(this)
        shellController.addKeyguardChangeListener(this)
        desksOrganizer.addOnDesktopTaskInfoChangedListener { taskInfo ->
            onTaskInfoChanged(taskInfo)
        }
    }

    @VisibleForTesting
@@ -5894,6 +5897,11 @@ class DesktopTasksController(
                !requestingImmersive &&
                !RecentsTransitionStateListener.isRunning(recentsTransitionState)
        ) {
            logV(
                "onTaskInfoChanged taskId=%d stopped requesting immersive," +
                    " breaking out of desktop-immersive mode",
                taskInfo.taskId,
            )
            // Exit immersive if the app is no longer requesting it.
            desktopImmersiveController.moveTaskToNonImmersive(
                taskInfo,
+1 −1
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ interface DesksOrganizer {
    fun isDeskActiveAtEnd(change: TransitionInfo.Change, deskId: Int): Boolean

    /** Allows for other classes to respond to task changes this organizer receives. */
    fun setOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit)
    fun addOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit)

    /** Move a desk to the given display area. */
    fun moveDeskToDisplay(
+7 −4
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ class RootTaskDesksOrganizer(
    val deskMinimizationRootsByDeskId: MutableMap<Int, DeskMinimizationRoot> = mutableMapOf()
    private val removeDeskRootRequests = mutableSetOf<Int>()
    @VisibleForTesting val childLeashes = SparseArray<SurfaceControl>()
    private var onTaskInfoChangedListener: ((RunningTaskInfo) -> Unit)? = null
    private val onTaskInfoChangedListeners = mutableListOf<(RunningTaskInfo) -> Unit>()

    init {
        if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
@@ -443,8 +443,9 @@ class RootTaskDesksOrganizer(
            change.taskInfo?.isVisibleRequested == true &&
            change.mode == TRANSIT_TO_FRONT

    override fun setOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) {
        onTaskInfoChangedListener = listener
    override fun addOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) {
        if (listener in onTaskInfoChangedListeners) return
        onTaskInfoChangedListeners += listener
    }

    override fun onTaskAppeared(taskInfo: RunningTaskInfo, leash: SurfaceControl) {
@@ -458,7 +459,9 @@ class RootTaskDesksOrganizer(
            taskInfo.taskId !in deskRootsByDeskId &&
                deskMinimizationRootsByDeskId.values.none { it.rootId == taskInfo.taskId }
        ) {
            onTaskInfoChangedListener?.invoke(taskInfo)
            onTaskInfoChangedListeners.forEach { onTaskInfoChangedListener ->
                onTaskInfoChangedListener(taskInfo)
            }
        }
        updateLaunchAdjacentController()
    }
+3 −1
Original line number Diff line number Diff line
@@ -156,7 +156,9 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,

        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG, "Freeform Task Info Changed: #%d",
                taskInfo.taskId);
        if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue()) {
            mDesktopTasksController.ifPresent(c -> c.onTaskInfoChanged(taskInfo));
        }
        mWindowDecorationViewModel.onTaskInfoChanged(taskInfo);
        state.mTaskInfo = taskInfo;
        if (mDesktopState.canEnterDesktopMode()) {
+1 −1
Original line number Diff line number Diff line
@@ -561,7 +561,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
                    });
        }
        mFocusTransitionObserver.setLocalFocusTransitionListener(this, mMainExecutor);
        mDesksOrganizer.setOnDesktopTaskInfoChangedListener((taskInfo) -> {
        mDesksOrganizer.addOnDesktopTaskInfoChangedListener((taskInfo) -> {
            onTaskInfoChanged(taskInfo);
            return Unit.INSTANCE;
        });
Loading