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

Commit ee38b7c0 authored by Alina Zaidi's avatar Alina Zaidi Committed by Android (Google) Code Review
Browse files

Merge "[Dev option] Use DesktopModeStatus and ToggleOverride from wm/shell in...

Merge "[Dev option] Use DesktopModeStatus and ToggleOverride from wm/shell in Settings DesktopModePreferenceController" into main
parents 9f8fe766 a4bd41df
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -190,6 +190,15 @@ java_library {
    ],
}

java_library {
    name: "WindowManager-Shell-shared-desktopMode",

    srcs: [
        "shared/**/desktopmode/*.java",
        "shared/**/desktopmode/*.kt",
    ],
}

android_library {
    name: "WindowManager-Shell",
    srcs: [
+18 −16
Original line number Diff line number Diff line
@@ -84,11 +84,12 @@ enum class DesktopModeFlags(
          // Read Setting Global if System Property is not present (just after reboot)
          // or not valid (user manually changed the value)
          val overrideFromSettingsGlobal =
              convertToToggleOverrideWithFallback(
                  Settings.Global.getInt(
                      context.contentResolver,
                      Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES,
                      ToggleOverride.OVERRIDE_UNSET.setting)
                  .convertToToggleOverrideWithFallback(ToggleOverride.OVERRIDE_UNSET)
                      ToggleOverride.OVERRIDE_UNSET.setting),
                  ToggleOverride.OVERRIDE_UNSET)
          // Initialize System Property
          System.setProperty(
              SYSTEM_PROPERTY_OVERRIDE_KEY, overrideFromSettingsGlobal.setting.toString())
@@ -97,7 +98,6 @@ enum class DesktopModeFlags(
        }
  }

  // TODO(b/348193756): Share ToggleOverride enum with Settings 'DesktopModePreferenceController'
  /**
   * Override state of desktop mode developer option toggle.
   *
@@ -113,8 +113,6 @@ enum class DesktopModeFlags(
    OVERRIDE_ON(1)
  }

  private val settingToToggleOverrideMap = ToggleOverride.entries.associateBy { it.setting }

  private fun String?.convertToToggleOverride(): ToggleOverride? {
    val intValue = this?.toIntOrNull() ?: return null
    return settingToToggleOverrideMap[intValue]
@@ -124,16 +122,6 @@ enum class DesktopModeFlags(
        }
  }

  private fun Int.convertToToggleOverrideWithFallback(
      fallbackOverride: ToggleOverride
  ): ToggleOverride {
    return settingToToggleOverrideMap[this]
        ?: run {
          Log.w(TAG, "Unknown toggleOverride int $this")
          fallbackOverride
        }
  }

  companion object {
    private const val TAG = "DesktopModeFlags"

@@ -148,5 +136,19 @@ enum class DesktopModeFlags(
     * be refreshed only on reboots as overridden state takes effect on reboots.
     */
    private var cachedToggleOverride: ToggleOverride? = null

    private val settingToToggleOverrideMap = ToggleOverride.entries.associateBy { it.setting }

    @JvmStatic
    fun convertToToggleOverrideWithFallback(
        overrideInt: Int,
        fallbackOverride: ToggleOverride
    ): ToggleOverride {
      return settingToToggleOverrideMap[overrideInt]
          ?: run {
            Log.w(TAG, "Unknown toggleOverride int $overrideInt")
            fallbackOverride
          }
    }
  }
}
+29 −15
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE
import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY
import com.android.window.flags.Flags.FLAG_SHOW_DESKTOP_WINDOWING_DEV_OPTION
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.Companion.convertToToggleOverrideWithFallback
import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.DESKTOP_WINDOWING_MODE
import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_OFF
import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_ON
@@ -416,6 +417,19 @@ class DesktopModeFlagsTest : ShellTestCase() {
    assertThat(WALLPAPER_ACTIVITY.isEnabled(mContext)).isFalse()
  }

  @Test
  fun convertToToggleOverrideWithFallback_validInt_returnsToggleOverride() {
    assertThat(convertToToggleOverrideWithFallback(0, OVERRIDE_UNSET)).isEqualTo(OVERRIDE_OFF)
    assertThat(convertToToggleOverrideWithFallback(1, OVERRIDE_UNSET)).isEqualTo(OVERRIDE_ON)
    assertThat(convertToToggleOverrideWithFallback(-1, OVERRIDE_ON)).isEqualTo(OVERRIDE_UNSET)
  }

  @Test
  fun convertToToggleOverrideWithFallback_invalidInt_returnsFallback() {
    assertThat(convertToToggleOverrideWithFallback(2, OVERRIDE_ON)).isEqualTo(OVERRIDE_ON)
    assertThat(convertToToggleOverrideWithFallback(-2, OVERRIDE_UNSET)).isEqualTo(OVERRIDE_UNSET)
  }

  private fun setOverride(setting: Int?) {
    val contentResolver = mContext.contentResolver
    val key = Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES