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

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

Merge "[Dev option] Use static cache for overrides." into main

parents 5119d552 6f3a8a67
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -37,10 +37,6 @@ enum class DesktopModeFlags(
  DESKTOP_WINDOWING_MODE(Flags::enableDesktopWindowingMode, true),
  WALLPAPER_ACTIVITY(Flags::enableDesktopWindowingWallpaperActivity, true);

  // Local cache for toggle override, which is initialized once on its first access. It needs to be
  // refreshed only on reboots as overridden state takes effect on reboots.
  private var cachedToggleOverride: ToggleOverride? = null

  /**
   * Determines state of flag based on the actual flag and desktop mode developer option overrides.
   *
@@ -138,13 +134,19 @@ enum class DesktopModeFlags(
        }
  }

  private companion object {
    const val TAG = "DesktopModeFlags"
  companion object {
    private const val TAG = "DesktopModeFlags"

    /**
     * Key for non-persistent System Property which is used to store desktop windowing developer
     * option overrides.
     */
    const val SYSTEM_PROPERTY_OVERRIDE_KEY = "sys.wmshell.desktopmode.dev_toggle_override"
    private const val SYSTEM_PROPERTY_OVERRIDE_KEY = "sys.wmshell.desktopmode.dev_toggle_override"

    /**
     * Local cache for toggle override, which is initialized once on its first access. It needs to
     * be refreshed only on reboots as overridden state takes effect on reboots.
     */
    private var cachedToggleOverride: ToggleOverride? = null
  }
}
+4 −9
Original line number Diff line number Diff line
@@ -427,15 +427,10 @@ class DesktopModeFlagsTest : ShellTestCase() {
  }

  private fun resetCache() {
    val cachedToggleOverrideDesktopMode =
        DESKTOP_WINDOWING_MODE::class.java.getDeclaredField("cachedToggleOverride")
    cachedToggleOverrideDesktopMode.isAccessible = true
    cachedToggleOverrideDesktopMode.set(DESKTOP_WINDOWING_MODE, null)

    val cachedToggleOverrideWallpaperActivity =
      WALLPAPER_ACTIVITY::class.java.getDeclaredField("cachedToggleOverride")
    cachedToggleOverrideWallpaperActivity.isAccessible = true
    cachedToggleOverrideWallpaperActivity.set(WALLPAPER_ACTIVITY, null)
    val cachedToggleOverride =
      DesktopModeFlags::class.java.getDeclaredField("cachedToggleOverride")
    cachedToggleOverride.isAccessible = true
    cachedToggleOverride.set(null, null)

    // Clear override cache stored in System property
    System.clearProperty(SYSTEM_PROPERTY_OVERRIDE_KEY)