Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java +4 −3 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.internal.protolog.ProtoLog; import com.android.wm.shell.R; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.animation.Interpolators; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; /** * Divider for multi window splits. Loading Loading @@ -222,7 +222,8 @@ public class DividerView extends FrameLayout implements View.OnTouchListener { /** Sets up essential dependencies of the divider bar. */ public void setup(SplitLayout layout, SplitWindowManager splitWindowManager, SurfaceControlViewHost viewHost, InsetsState insetsState) { SurfaceControlViewHost viewHost, InsetsState insetsState, DesktopState desktopState) { mSplitLayout = layout; mSplitWindowManager = splitWindowManager; mViewHost = viewHost; Loading @@ -238,7 +239,7 @@ public class DividerView extends FrameLayout implements View.OnTouchListener { : R.dimen.split_divider_handle_region_width); mHandleRegionHeight = getResources().getDimensionPixelSize(isLeftRightSplit ? R.dimen.split_divider_handle_region_width : DesktopModeStatus.canEnterDesktopMode(mContext) : desktopState.canEnterDesktopMode() ? R.dimen.desktop_mode_portrait_split_divider_handle_region_height : R.dimen.split_divider_handle_region_height); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +7 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import com.android.wm.shell.common.split.DividerSnapAlgorithm.SnapTarget; import com.android.wm.shell.common.split.SplitWindowManager.ParentContainerCallbacks; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.shared.split.SplitScreenConstants.PersistentSnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SplitPosition; Loading Loading @@ -185,6 +186,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange private final ResizingEffectPolicy mSurfaceEffectPolicy; private final ShellTaskOrganizer mTaskOrganizer; private final InsetsState mInsetsState = new InsetsState(); private final DesktopState mDesktopState; private Insets mPinnedTaskbarInsets = Insets.NONE; private Context mContext; Loading Loading @@ -212,7 +214,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange ParentContainerCallbacks parentContainerCallbacks, DisplayController displayController, DisplayImeController displayImeController, ShellTaskOrganizer taskOrganizer, int parallaxType, SplitState splitState, @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider) { @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider, DesktopState desktopState) { mHandler = handler; mStatusBarHider = statusBarHider; mContext = context.createConfigurationContext(configuration); Loading @@ -230,6 +233,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mImePositionProcessor = new ImePositionProcessor(mContext.getDisplayId()); mSurfaceEffectPolicy = new ResizingEffectPolicy(parallaxType, this); mSplitState = splitState; mDesktopState = desktopState; final Resources res = mContext.getResources(); mDimNonImeSide = res.getBoolean(R.bool.config_dimNonImeAttachedSide); Loading Loading @@ -623,7 +627,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange public void init() { if (mInitialized) return; mInitialized = true; mSplitWindowManager.init(this, mInsetsState, false /* isRestoring */); mSplitWindowManager.init(this, mInsetsState, false /* isRestoring */, mDesktopState); populateTouchZones(); mDisplayImeController.addPositionProcessor(mImePositionProcessor); } Loading Loading @@ -656,7 +660,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange if (resetImePosition) { mImePositionProcessor.reset(); } mSplitWindowManager.init(this, mInsetsState, true /* isRestoring */); mSplitWindowManager.init(this, mInsetsState, true /* isRestoring */, mDesktopState); populateTouchZones(); // Update the surface positions again after recreating the divider in case nothing else // triggers it Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitWindowManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.wm.shell.R; import com.android.wm.shell.shared.desktopmode.DesktopState; /** * Holds view hierarchy of a root surface and helps to inflate {@link DividerView} for a split. Loading Loading @@ -110,7 +111,8 @@ public final class SplitWindowManager extends WindowlessWindowManager { } /** Inflates {@link DividerView} on to the root surface. */ void init(SplitLayout splitLayout, InsetsState insetsState, boolean isRestoring) { void init(SplitLayout splitLayout, InsetsState insetsState, boolean isRestoring, DesktopState desktopState) { if (mDividerView != null || mViewHost != null) { throw new UnsupportedOperationException( "Try to inflate divider view again without release first"); Loading @@ -132,7 +134,7 @@ public final class SplitWindowManager extends WindowlessWindowManager { lp.privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION | PRIVATE_FLAG_TRUSTED_OVERLAY; lp.accessibilityTitle = mContext.getResources().getString(R.string.accessibility_divider); mViewHost.setView(mDividerView, lp); mDividerView.setup(splitLayout, this, mViewHost, insetsState); mDividerView.setup(splitLayout, this, mViewHost, insetsState, desktopState); if (isRestoring) { mDividerView.setInteractive(mLastDividerInteractive, mLastDividerHandleHidden, "restore_setup"); Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvWMShellModule.java +5 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.wm.shell.dagger.pip.TvPipModule; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.shared.TransactionPool; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.tv.TvSplitScreenController; import com.android.wm.shell.startingsurface.StartingWindowTypeAlgorithm; Loading Loading @@ -95,11 +96,13 @@ public class TvWMShellModule { @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, SystemWindows systemWindows, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState) { return new TvSplitScreenController(context, shellInit, shellCommandHandler, shellController, shellTaskOrganizer, syncQueue, rootTDAOrganizer, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks, launchAdjacentController, multiInstanceHelper, splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer); splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer, desktopState); } } libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +26 −15 Original line number Diff line number Diff line Loading @@ -361,7 +361,9 @@ public abstract class WMShellModule { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, FocusTransitionObserver focusTransitionObserver, WindowDecorViewHostSupplier<WindowDecorViewHost> windowDecorViewHostSupplier, Optional<DesktopModeWindowDecorViewModel> desktopModeWindowDecorViewModel) { Optional<DesktopModeWindowDecorViewModel> desktopModeWindowDecorViewModel, DesktopState desktopState, DesktopConfig desktopConfig) { if (desktopModeWindowDecorViewModel.isPresent()) { return desktopModeWindowDecorViewModel.get(); } Loading @@ -379,7 +381,9 @@ public abstract class WMShellModule { syncQueue, transitions, focusTransitionObserver, windowDecorViewHostSupplier); windowDecorViewHostSupplier, desktopState, desktopConfig); } @WMSingleton Loading Loading @@ -580,7 +584,8 @@ public abstract class WMShellModule { SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState) { return new SplitScreenController( context, shellInit, Loading @@ -605,7 +610,8 @@ public abstract class WMShellModule { splitState, mainExecutor, mainHandler, rootDisplayAreaOrganizer); rootDisplayAreaOrganizer, desktopState); } // Loading Loading @@ -889,7 +895,8 @@ public abstract class WMShellModule { DesktopModeEventLogger desktopModeEventLogger, WindowDecorTaskResourceLoader windowDecorTaskResourceLoader, FocusTransitionObserver focusTransitionObserver, @ShellMainThread ShellExecutor mainExecutor) { @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState) { return new DesktopTilingDecorViewModel( context, mainDispatcher, Loading @@ -905,7 +912,8 @@ public abstract class WMShellModule { desktopModeEventLogger, windowDecorTaskResourceLoader, focusTransitionObserver, mainExecutor mainExecutor, desktopState ); } Loading Loading @@ -1085,9 +1093,11 @@ public abstract class WMShellModule { DesktopTilingDecorViewModel desktopTilingDecorViewModel, MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController, Optional<CompatUIHandler> compatUI, DesksOrganizer desksOrganizer DesksOrganizer desksOrganizer, DesktopState desktopState, DesktopConfig desktopConfig ) { if (!DesktopModeStatus.canEnterDesktopModeOrShowAppHandle(context)) { if (!desktopState.canEnterDesktopModeOrShowAppHandle()) { return Optional.empty(); } return Optional.of(new DesktopModeWindowDecorViewModel(context, shellExecutor, mainHandler, Loading @@ -1104,7 +1114,7 @@ public abstract class WMShellModule { desktopModeUiEventLogger, taskResourceLoader, recentsTransitionHandler, desktopModeCompatPolicy, desktopTilingDecorViewModel, multiDisplayDragMoveIndicatorController, compatUI.orElse(null), desksOrganizer)); desksOrganizer, desktopState, desktopConfig)); } @WMSingleton Loading Loading @@ -1132,11 +1142,11 @@ public abstract class WMShellModule { @WMSingleton @Provides static AppHandleAndHeaderVisibilityHelper provideAppHandleAndHeaderVisibilityHelper( @NonNull Context context, @NonNull DisplayController displayController, @NonNull DesktopModeCompatPolicy desktopModeCompatPolicy) { return new AppHandleAndHeaderVisibilityHelper(context, displayController, desktopModeCompatPolicy); @NonNull DesktopModeCompatPolicy desktopModeCompatPolicy, @NonNull DesktopState desktopState) { return new AppHandleAndHeaderVisibilityHelper(displayController, desktopModeCompatPolicy, desktopState); } @WMSingleton Loading @@ -1159,8 +1169,9 @@ public abstract class WMShellModule { ShellInit shellInit, Transitions transitions, @DynamicOverride DesktopUserRepositories desktopUserRepositories, DesktopModeCompatPolicy desktopModeCompatPolicy) { if (!DesktopModeStatus.canEnterDesktopMode(context) DesktopModeCompatPolicy desktopModeCompatPolicy, DesktopState desktopState) { if (!desktopState.canEnterDesktopMode() || !ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue() || !ENABLE_DESKTOP_SYSTEM_DIALOGS_TRANSITIONS.isTrue()) { return Optional.empty(); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java +4 −3 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.internal.protolog.ProtoLog; import com.android.wm.shell.R; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.animation.Interpolators; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; /** * Divider for multi window splits. Loading Loading @@ -222,7 +222,8 @@ public class DividerView extends FrameLayout implements View.OnTouchListener { /** Sets up essential dependencies of the divider bar. */ public void setup(SplitLayout layout, SplitWindowManager splitWindowManager, SurfaceControlViewHost viewHost, InsetsState insetsState) { SurfaceControlViewHost viewHost, InsetsState insetsState, DesktopState desktopState) { mSplitLayout = layout; mSplitWindowManager = splitWindowManager; mViewHost = viewHost; Loading @@ -238,7 +239,7 @@ public class DividerView extends FrameLayout implements View.OnTouchListener { : R.dimen.split_divider_handle_region_width); mHandleRegionHeight = getResources().getDimensionPixelSize(isLeftRightSplit ? R.dimen.split_divider_handle_region_width : DesktopModeStatus.canEnterDesktopMode(mContext) : desktopState.canEnterDesktopMode() ? R.dimen.desktop_mode_portrait_split_divider_handle_region_height : R.dimen.split_divider_handle_region_height); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +7 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import com.android.wm.shell.common.split.DividerSnapAlgorithm.SnapTarget; import com.android.wm.shell.common.split.SplitWindowManager.ParentContainerCallbacks; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.shared.split.SplitScreenConstants.PersistentSnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SplitPosition; Loading Loading @@ -185,6 +186,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange private final ResizingEffectPolicy mSurfaceEffectPolicy; private final ShellTaskOrganizer mTaskOrganizer; private final InsetsState mInsetsState = new InsetsState(); private final DesktopState mDesktopState; private Insets mPinnedTaskbarInsets = Insets.NONE; private Context mContext; Loading Loading @@ -212,7 +214,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange ParentContainerCallbacks parentContainerCallbacks, DisplayController displayController, DisplayImeController displayImeController, ShellTaskOrganizer taskOrganizer, int parallaxType, SplitState splitState, @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider) { @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider, DesktopState desktopState) { mHandler = handler; mStatusBarHider = statusBarHider; mContext = context.createConfigurationContext(configuration); Loading @@ -230,6 +233,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mImePositionProcessor = new ImePositionProcessor(mContext.getDisplayId()); mSurfaceEffectPolicy = new ResizingEffectPolicy(parallaxType, this); mSplitState = splitState; mDesktopState = desktopState; final Resources res = mContext.getResources(); mDimNonImeSide = res.getBoolean(R.bool.config_dimNonImeAttachedSide); Loading Loading @@ -623,7 +627,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange public void init() { if (mInitialized) return; mInitialized = true; mSplitWindowManager.init(this, mInsetsState, false /* isRestoring */); mSplitWindowManager.init(this, mInsetsState, false /* isRestoring */, mDesktopState); populateTouchZones(); mDisplayImeController.addPositionProcessor(mImePositionProcessor); } Loading Loading @@ -656,7 +660,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange if (resetImePosition) { mImePositionProcessor.reset(); } mSplitWindowManager.init(this, mInsetsState, true /* isRestoring */); mSplitWindowManager.init(this, mInsetsState, true /* isRestoring */, mDesktopState); populateTouchZones(); // Update the surface positions again after recreating the divider in case nothing else // triggers it Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitWindowManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.wm.shell.R; import com.android.wm.shell.shared.desktopmode.DesktopState; /** * Holds view hierarchy of a root surface and helps to inflate {@link DividerView} for a split. Loading Loading @@ -110,7 +111,8 @@ public final class SplitWindowManager extends WindowlessWindowManager { } /** Inflates {@link DividerView} on to the root surface. */ void init(SplitLayout splitLayout, InsetsState insetsState, boolean isRestoring) { void init(SplitLayout splitLayout, InsetsState insetsState, boolean isRestoring, DesktopState desktopState) { if (mDividerView != null || mViewHost != null) { throw new UnsupportedOperationException( "Try to inflate divider view again without release first"); Loading @@ -132,7 +134,7 @@ public final class SplitWindowManager extends WindowlessWindowManager { lp.privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION | PRIVATE_FLAG_TRUSTED_OVERLAY; lp.accessibilityTitle = mContext.getResources().getString(R.string.accessibility_divider); mViewHost.setView(mDividerView, lp); mDividerView.setup(splitLayout, this, mViewHost, insetsState); mDividerView.setup(splitLayout, this, mViewHost, insetsState, desktopState); if (isRestoring) { mDividerView.setInteractive(mLastDividerInteractive, mLastDividerHandleHidden, "restore_setup"); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvWMShellModule.java +5 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.wm.shell.dagger.pip.TvPipModule; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.shared.TransactionPool; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.tv.TvSplitScreenController; import com.android.wm.shell.startingsurface.StartingWindowTypeAlgorithm; Loading Loading @@ -95,11 +96,13 @@ public class TvWMShellModule { @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, SystemWindows systemWindows, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState) { return new TvSplitScreenController(context, shellInit, shellCommandHandler, shellController, shellTaskOrganizer, syncQueue, rootTDAOrganizer, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks, launchAdjacentController, multiInstanceHelper, splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer); splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer, desktopState); } }
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +26 −15 Original line number Diff line number Diff line Loading @@ -361,7 +361,9 @@ public abstract class WMShellModule { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, FocusTransitionObserver focusTransitionObserver, WindowDecorViewHostSupplier<WindowDecorViewHost> windowDecorViewHostSupplier, Optional<DesktopModeWindowDecorViewModel> desktopModeWindowDecorViewModel) { Optional<DesktopModeWindowDecorViewModel> desktopModeWindowDecorViewModel, DesktopState desktopState, DesktopConfig desktopConfig) { if (desktopModeWindowDecorViewModel.isPresent()) { return desktopModeWindowDecorViewModel.get(); } Loading @@ -379,7 +381,9 @@ public abstract class WMShellModule { syncQueue, transitions, focusTransitionObserver, windowDecorViewHostSupplier); windowDecorViewHostSupplier, desktopState, desktopConfig); } @WMSingleton Loading Loading @@ -580,7 +584,8 @@ public abstract class WMShellModule { SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState) { return new SplitScreenController( context, shellInit, Loading @@ -605,7 +610,8 @@ public abstract class WMShellModule { splitState, mainExecutor, mainHandler, rootDisplayAreaOrganizer); rootDisplayAreaOrganizer, desktopState); } // Loading Loading @@ -889,7 +895,8 @@ public abstract class WMShellModule { DesktopModeEventLogger desktopModeEventLogger, WindowDecorTaskResourceLoader windowDecorTaskResourceLoader, FocusTransitionObserver focusTransitionObserver, @ShellMainThread ShellExecutor mainExecutor) { @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState) { return new DesktopTilingDecorViewModel( context, mainDispatcher, Loading @@ -905,7 +912,8 @@ public abstract class WMShellModule { desktopModeEventLogger, windowDecorTaskResourceLoader, focusTransitionObserver, mainExecutor mainExecutor, desktopState ); } Loading Loading @@ -1085,9 +1093,11 @@ public abstract class WMShellModule { DesktopTilingDecorViewModel desktopTilingDecorViewModel, MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController, Optional<CompatUIHandler> compatUI, DesksOrganizer desksOrganizer DesksOrganizer desksOrganizer, DesktopState desktopState, DesktopConfig desktopConfig ) { if (!DesktopModeStatus.canEnterDesktopModeOrShowAppHandle(context)) { if (!desktopState.canEnterDesktopModeOrShowAppHandle()) { return Optional.empty(); } return Optional.of(new DesktopModeWindowDecorViewModel(context, shellExecutor, mainHandler, Loading @@ -1104,7 +1114,7 @@ public abstract class WMShellModule { desktopModeUiEventLogger, taskResourceLoader, recentsTransitionHandler, desktopModeCompatPolicy, desktopTilingDecorViewModel, multiDisplayDragMoveIndicatorController, compatUI.orElse(null), desksOrganizer)); desksOrganizer, desktopState, desktopConfig)); } @WMSingleton Loading Loading @@ -1132,11 +1142,11 @@ public abstract class WMShellModule { @WMSingleton @Provides static AppHandleAndHeaderVisibilityHelper provideAppHandleAndHeaderVisibilityHelper( @NonNull Context context, @NonNull DisplayController displayController, @NonNull DesktopModeCompatPolicy desktopModeCompatPolicy) { return new AppHandleAndHeaderVisibilityHelper(context, displayController, desktopModeCompatPolicy); @NonNull DesktopModeCompatPolicy desktopModeCompatPolicy, @NonNull DesktopState desktopState) { return new AppHandleAndHeaderVisibilityHelper(displayController, desktopModeCompatPolicy, desktopState); } @WMSingleton Loading @@ -1159,8 +1169,9 @@ public abstract class WMShellModule { ShellInit shellInit, Transitions transitions, @DynamicOverride DesktopUserRepositories desktopUserRepositories, DesktopModeCompatPolicy desktopModeCompatPolicy) { if (!DesktopModeStatus.canEnterDesktopMode(context) DesktopModeCompatPolicy desktopModeCompatPolicy, DesktopState desktopState) { if (!desktopState.canEnterDesktopMode() || !ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue() || !ENABLE_DESKTOP_SYSTEM_DIALOGS_TRANSITIONS.isTrue()) { return Optional.empty(); Loading