diff options
Diffstat (limited to 'libs')
8 files changed, 26 insertions, 24 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt index b8dbbf9543d2..c3da1548bb8e 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt @@ -153,7 +153,7 @@ class DesktopImmersiveController( displayId: Int, reason: ExitReason, ) { - if (!Flags.enableFullyImmersiveInDesktop()) return + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue) return val result = exitImmersiveIfApplicable(wct, displayId, excludeTaskId = null, reason) result.asExit()?.runOnTransitionStart?.invoke(transition) } @@ -172,7 +172,7 @@ class DesktopImmersiveController( excludeTaskId: Int? = null, reason: ExitReason, ): ExitResult { - if (!Flags.enableFullyImmersiveInDesktop()) return ExitResult.NoExit + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue) return ExitResult.NoExit val immersiveTask = desktopUserRepositories.current.getTaskInFullImmersiveState(displayId) ?: return ExitResult.NoExit @@ -214,7 +214,7 @@ class DesktopImmersiveController( taskInfo: RunningTaskInfo, reason: ExitReason, ): ExitResult { - if (!Flags.enableFullyImmersiveInDesktop()) return ExitResult.NoExit + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue) return ExitResult.NoExit if (desktopUserRepositories.current.isTaskInFullImmersiveState(taskInfo.taskId)) { // A full immersive task is being minimized, make sure the immersive state is broken // (i.e. resize back to max bounds). diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt index 9666ca95bcc6..3356a1ce10f2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt @@ -33,7 +33,6 @@ import android.window.WindowContainerTransaction import androidx.annotation.VisibleForTesting import com.android.internal.jank.InteractionJankMonitor import com.android.internal.protolog.ProtoLog -import com.android.window.flags.Flags import com.android.wm.shell.RootTaskDisplayAreaOrganizer import com.android.wm.shell.freeform.FreeformTaskTransitionHandler import com.android.wm.shell.freeform.FreeformTaskTransitionStarter @@ -105,7 +104,7 @@ class DesktopMixedTransitionHandler( exitingImmersiveTask: Int? = null, ): IBinder { if ( - !Flags.enableFullyImmersiveInDesktop() && + !DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue && !DesktopModeFlags.ENABLE_DESKTOP_APP_LAUNCH_TRANSITIONS_BUGFIX.isTrue ) { return transitions.startTransition(transitionType, wct, /* handler= */ null) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index 7b0fb1d89557..fb4016c4e7b6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -1836,7 +1836,7 @@ class DesktopTasksController( /** Whether the given [change] in the [transition] is a known desktop change. */ fun isDesktopChange(transition: IBinder, change: TransitionInfo.Change): Boolean { // Only the immersive controller is currently involved in mixed transitions. - return Flags.enableFullyImmersiveInDesktop() && + return DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue && desktopImmersiveController.isImmersiveChange(transition, change) } @@ -1847,7 +1847,7 @@ class DesktopTasksController( */ fun shouldPlayDesktopAnimation(info: TransitionRequestInfo): Boolean { // Only immersive mixed transition are currently supported. - if (!Flags.enableFullyImmersiveInDesktop()) return false + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue) return false val triggerTask = info.triggerTask ?: return false if (!isDesktopModeShowing(triggerTask.displayId)) { return false @@ -3060,7 +3060,7 @@ class DesktopTasksController( /** Called when a task's info changes. */ fun onTaskInfoChanged(taskInfo: RunningTaskInfo) { - if (!Flags.enableFullyImmersiveInDesktop()) return + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue) return val inImmersive = taskRepository.isTaskInFullImmersiveState(taskInfo.taskId) val requestingImmersive = taskInfo.requestingImmersive if ( diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java index b6d19b657705..8059b94685ba 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java @@ -21,13 +21,13 @@ import android.content.Context; import android.os.IBinder; import android.view.SurfaceControl; import android.view.WindowManager; +import android.window.DesktopModeFlags; import android.window.TransitionInfo; import android.window.WindowContainerToken; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; -import com.android.window.flags.Flags; import com.android.wm.shell.desktopmode.DesktopImmersiveController; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.FocusTransitionObserver; @@ -85,7 +85,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs @NonNull TransitionInfo info, @NonNull SurfaceControl.Transaction startT, @NonNull SurfaceControl.Transaction finishT) { - if (Flags.enableFullyImmersiveInDesktop()) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { // TODO(b/367268953): Remove when DesktopTaskListener is introduced and the repository // is updated from there **before** the |mWindowDecorViewModel| methods are invoked. // Otherwise window decoration relayout won't run with the immersive state up to date. @@ -191,7 +191,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs @Override public void onTransitionStarting(@NonNull IBinder transition) { - if (Flags.enableFullyImmersiveInDesktop()) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { // TODO(b/367268953): Remove when DesktopTaskListener is introduced. mDesktopImmersiveController.ifPresent(h -> h.onTransitionStarting(transition)); } @@ -199,7 +199,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs @Override public void onTransitionMerged(@NonNull IBinder merged, @NonNull IBinder playing) { - if (Flags.enableFullyImmersiveInDesktop()) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { // TODO(b/367268953): Remove when DesktopTaskListener is introduced. mDesktopImmersiveController.ifPresent(h -> h.onTransitionMerged(merged, playing)); } @@ -224,7 +224,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs @Override public void onTransitionFinished(@NonNull IBinder transition, boolean aborted) { - if (Flags.enableFullyImmersiveInDesktop()) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { // TODO(b/367268953): Remove when DesktopTaskListener is introduced. mDesktopImmersiveController.ifPresent(h -> h.onTransitionFinished(transition, aborted)); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopHeaderManageWindowsMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopHeaderManageWindowsMenu.kt index 575aac381c42..02a5433147ca 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopHeaderManageWindowsMenu.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopHeaderManageWindowsMenu.kt @@ -25,11 +25,11 @@ import android.view.SurfaceControlViewHost import android.view.WindowInsets.Type.systemBars import android.view.WindowManager import android.view.WindowlessWindowManager +import android.window.DesktopModeFlags import android.window.TaskConstants import android.window.TaskSnapshot import androidx.compose.ui.graphics.toArgb import com.android.internal.annotations.VisibleForTesting -import com.android.window.flags.Flags import com.android.wm.shell.RootTaskDisplayAreaOrganizer import com.android.wm.shell.common.DisplayController import com.android.wm.shell.desktopmode.DesktopUserRepositories @@ -76,7 +76,7 @@ class DesktopHeaderManageWindowsMenu( val flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH val desktopRepository = desktopUserRepositories.getProfile(callerTaskInfo.userId) - menuViewContainer = if (Flags.enableFullyImmersiveInDesktop() + menuViewContainer = if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue && desktopRepository.isTaskInFullImmersiveState(callerTaskInfo.taskId)) { // Use system view container so that forcibly shown system bars take effect in // immersive. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index dd1edeafde5d..740adf320f53 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -975,7 +975,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, // should shared with the maximize menu's maximize/restore actions. final DesktopRepository desktopRepository = mDesktopUserRepositories.getProfile( decoration.mTaskInfo.userId); - if (Flags.enableFullyImmersiveInDesktop() + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue() && desktopRepository.isTaskInFullImmersiveState( decoration.mTaskInfo.taskId)) { // Task is in immersive and should exit. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 2232e6865b00..3fdb05edbfa3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -906,7 +906,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin relayoutParams.mAsyncViewHost = isAppHandle; final boolean showCaption; - if (Flags.enableFullyImmersiveInDesktop()) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { if (inFullImmersiveMode) { showCaption = isStatusBarVisible && !isKeyguardVisibleAndOccluded; } else { @@ -958,7 +958,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin // including non-immersive apps that just don't handle caption insets properly. relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR; } - if (Flags.enableFullyImmersiveInDesktop() && inFullImmersiveMode) { + if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue() + && inFullImmersiveMode) { final Insets systemBarInsets = displayInsetsState.calculateInsets( taskInfo.getConfiguration().windowConfiguration.getBounds(), WindowInsets.Type.systemBars() & ~WindowInsets.Type.captionBar(), @@ -1050,7 +1051,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } private int calculateMaximizeMenuWidth() { - final boolean showImmersive = Flags.enableFullyImmersiveInDesktop() + final boolean showImmersive = DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue() && TaskInfoKt.getRequestingImmersive(mTaskInfo); final boolean showMaximize = true; final boolean showSnaps = mTaskInfo.isResizeable; @@ -1278,11 +1279,13 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin calculateMaximizeMenuPosition(menuWidth), mSurfaceControlTransactionSupplier); mMaximizeMenu.show( - /* isTaskInImmersiveMode= */ Flags.enableFullyImmersiveInDesktop() + /* isTaskInImmersiveMode= */ + DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue() && mDesktopUserRepositories.getProfile(mTaskInfo.userId) .isTaskInFullImmersiveState(mTaskInfo.taskId), /* menuWidth= */ menuWidth, - /* showImmersiveOption= */ Flags.enableFullyImmersiveInDesktop() + /* showImmersiveOption= */ + DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue() && TaskInfoKt.getRequestingImmersive(mTaskInfo), /* showSnapOptions= */ mTaskInfo.isResizeable, mOnMaximizeOrRestoreClickListener, @@ -1790,7 +1793,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } private boolean canOpenMaximizeMenu(boolean animatingTaskResizeOrReposition) { - if (!Flags.enableFullyImmersiveInDesktop()) { + if (!DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()) { return !animatingTaskResizeOrReposition; } final boolean inImmersiveAndRequesting = diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt index db12f899f42f..bc2be901d320 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt @@ -49,7 +49,6 @@ import com.android.internal.R.color.materialColorSecondaryContainer import com.android.internal.R.color.materialColorSurfaceContainerHigh import com.android.internal.R.color.materialColorSurfaceContainerLow import com.android.internal.R.color.materialColorSurfaceDim -import com.android.window.flags.Flags import com.android.wm.shell.R import android.window.DesktopModeFlags import androidx.core.view.ViewCompat @@ -463,7 +462,8 @@ class AppHeaderViewHolder( private fun shouldShowExitFullImmersiveOrMaximizeIcon( isTaskMaximized: Boolean, inFullImmersiveState: Boolean - ): Boolean = (Flags.enableFullyImmersiveInDesktop() && inFullImmersiveState) || isTaskMaximized + ): Boolean = (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue && inFullImmersiveState) + || isTaskMaximized private fun getHeaderStyle(header: Header): HeaderStyle { return HeaderStyle( |