diff options
4 files changed, 31 insertions, 9 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java index 1931212df548..cb087a9113ea 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java @@ -23,6 +23,8 @@ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_S import static android.view.WindowManager.LARGE_SCREEN_SMALLEST_SCREEN_WIDTH_DP; import static android.window.TaskConstants.TASK_CHILD_LAYER_COMPAT_UI; +import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.DESKTOP_WINDOWING_MODE; + import android.annotation.NonNull; import android.annotation.Nullable; import android.app.CameraCompatTaskInfo.CameraCompatControlState; @@ -91,7 +93,8 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { super(context, taskInfo, syncQueue, taskListener, displayLayout); mCallback = callback; mHasSizeCompat = taskInfo.appCompatTaskInfo.topActivityInSizeCompat; - if (Flags.enableDesktopWindowingMode() && Flags.enableWindowingDynamicInitialBounds()) { + if (DESKTOP_WINDOWING_MODE.isEnabled(mContext) + && Flags.enableWindowingDynamicInitialBounds()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); } @@ -150,7 +153,8 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { final boolean prevHasSizeCompat = mHasSizeCompat; final int prevCameraCompatControlState = mCameraCompatControlState; mHasSizeCompat = taskInfo.appCompatTaskInfo.topActivityInSizeCompat; - if (Flags.enableDesktopWindowingMode() && Flags.enableWindowingDynamicInitialBounds()) { + if (DESKTOP_WINDOWING_MODE.isEnabled(mContext) + && Flags.enableWindowingDynamicInitialBounds()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index 80f6a637ba1c..e2d32aaa370c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -16,6 +16,8 @@ package com.android.wm.shell.dagger; +import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.DESKTOP_WINDOWING_MODE; + import android.annotation.Nullable; import android.app.KeyguardManager; import android.content.Context; @@ -30,7 +32,6 @@ import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.logging.UiEventLogger; import com.android.internal.statusbar.IStatusBarService; import com.android.launcher3.icons.IconProvider; -import com.android.window.flags.Flags; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.WindowManagerShellWrapper; @@ -553,7 +554,7 @@ public abstract class WMShellModule { @DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository, ShellTaskOrganizer shellTaskOrganizer) { if (!DesktopModeStatus.canEnterDesktopMode(context) - || !Flags.enableDesktopWindowingTaskLimit()) { + || DESKTOP_WINDOWING_MODE.isEnabled(context)) { return Optional.empty(); } return Optional.of( diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt b/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt index fdf16aa9d081..3fe3162cf17d 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt @@ -18,6 +18,7 @@ package com.android.systemui.screenshot.policy import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM import android.app.WindowConfiguration.WINDOWING_MODE_PINNED +import android.content.Context import android.os.UserHandle import com.android.systemui.screenshot.data.model.DisplayContentModel import com.android.systemui.screenshot.data.model.ProfileType @@ -25,7 +26,7 @@ import com.android.systemui.screenshot.data.repository.ProfileTypeRepository import com.android.systemui.screenshot.policy.CapturePolicy.PolicyResult import com.android.systemui.screenshot.policy.CapturePolicy.PolicyResult.NotMatched import com.android.systemui.screenshot.policy.CaptureType.IsolatedTask -import com.android.window.flags.Flags +import com.android.wm.shell.shared.desktopmode.DesktopModeFlags import javax.inject.Inject import kotlinx.coroutines.flow.first @@ -38,6 +39,7 @@ class WorkProfilePolicy @Inject constructor( private val profileTypes: ProfileTypeRepository, + private val context: Context, ) : CapturePolicy { override suspend fun check(content: DisplayContentModel): PolicyResult { @@ -46,7 +48,7 @@ constructor( return NotMatched(policy = NAME, reason = SHADE_EXPANDED) } - if (Flags.enableDesktopWindowingMode()) { + if (DesktopModeFlags.DESKTOP_WINDOWING_MODE.isEnabled(context)) { content.rootTasks.firstOrNull()?.also { if (it.windowingMode == WINDOWING_MODE_FREEFORM) { return NotMatched(policy = NAME, reason = DESKTOP_MODE_ENABLED) diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt index 8d217fc3ad25..a5fbfb539354 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt @@ -17,11 +17,12 @@ package com.android.systemui.screenshot.policy import android.content.ComponentName -import androidx.test.ext.junit.runners.AndroidJUnit4 +import android.content.Context import android.os.UserHandle import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.platform.test.flag.junit.SetFlagsRule +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.systemui.kosmos.Kosmos import com.android.systemui.screenshot.data.model.DisplayContentModel import com.android.systemui.screenshot.data.model.DisplayContentScenarios.ActivityNames.FILES @@ -49,16 +50,30 @@ import com.android.systemui.screenshot.policy.WorkProfilePolicy.Companion.WORK_T import com.android.window.flags.Flags import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest +import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.junit.MockitoJUnit +import org.mockito.junit.MockitoRule @RunWith(AndroidJUnit4::class) class WorkProfilePolicyTest { - @JvmField @Rule val setFlagsRule = SetFlagsRule() + + @JvmField @Rule(order = 1) val setFlagsRule = SetFlagsRule() + + @JvmField @Rule(order = 2) val mockitoRule: MockitoRule = MockitoJUnit.rule() + + @Mock lateinit var mContext: Context private val kosmos = Kosmos() - private val policy = WorkProfilePolicy(kosmos.profileTypeRepository) + private lateinit var policy: WorkProfilePolicy + + @Before + fun setUp() { + policy = WorkProfilePolicy(kosmos.profileTypeRepository, mContext) + } /** * There is no guarantee that every RootTaskInfo contains a non-empty list of child tasks. Test |