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

Commit 555c6e78 authored by Alina Zaidi's avatar Alina Zaidi
Browse files

[Dev options][DW flag] Update all usage of enable_desktop_windowing_mode flag...

[Dev options][DW flag] Update all usage of enable_desktop_windowing_mode flag to use DesktopModeFlags

Test: Current tests pass
Bug: 348193756
Flag: com.android.window.flags.show_desktop_windowing_dev_option
Change-Id: If85bd51b485329896b30cf1136adf7063af1ff08
parent 6cd7eba8
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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();
        }
+3 −2
Original line number Diff line number Diff line
@@ -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(
+4 −2
Original line number Diff line number Diff line
@@ -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)
+18 −3
Original line number Diff line number Diff line
@@ -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