Loading packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt +57 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,63 @@ class WallpaperRepositoryImplTest : SysuiTestCase() { assertThat(latest).isFalse() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideFalse_deviceDoesSupport_false() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, 0, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isFalse() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideTrue_deviceDoesSupport_true() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, 1, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isTrue() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideNull_deviceDoesSupport_true() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, -1, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isTrue() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_deviceDoesSupport_true() = Loading packages/SystemUI/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1128,4 +1128,7 @@ <!-- Whether to enable the desktop specific audio tile details view. --> <bool name="config_enableDesktopAudioTileDetailsView">false</bool> <!-- If AOD can show an ambient version of the wallpaper (-1 means ignore) --> <integer name="config_dozeSupportsAodWallpaperOverride">-1</integer> </resources> packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt +16 −3 Original line number Diff line number Diff line Loading @@ -134,9 +134,7 @@ constructor( .map { val userEnabled = secureSettings.getInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) == 1 userEnabled && context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) && ambientAod() userEnabled && configEnabled() && ambientAod() } .flowOn(bgDispatcher) Loading Loading @@ -197,6 +195,21 @@ constructor( initialValue = extendedWallpaperEffects(), ) private fun configEnabled(): Boolean { // Some devices like foldables may only support AOD wallpaper on one screen. The override // config adds the ability to specify general device support but allow per screen config val sysuiOverride = when ( context.resources.getInteger(SysUIR.integer.config_dozeSupportsAodWallpaperOverride) ) { 0 -> false 1 -> true else -> null } return if (sysuiOverride != null) sysuiOverride else context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) } private suspend fun getWallpaper( selectedUser: SelectedUserModel, which: Int = FLAG_SYSTEM, Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt +57 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,63 @@ class WallpaperRepositoryImplTest : SysuiTestCase() { assertThat(latest).isFalse() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideFalse_deviceDoesSupport_false() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, 0, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isFalse() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideTrue_deviceDoesSupport_true() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, 1, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isTrue() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_sysuiOverrideNull_deviceDoesSupport_true() = testScope.runTest { underTest = kosmos.wallpaperRepository secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) context.orCreateTestableResources.addOverride( R.bool.config_dozeSupportsAodWallpaper, true, ) context.orCreateTestableResources.addOverride( SysUIR.integer.config_dozeSupportsAodWallpaperOverride, -1, ) val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode) assertThat(latest).isTrue() } @Test @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD) fun wallpaperSupportsAmbientMode_deviceDoesSupport_true() = Loading
packages/SystemUI/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1128,4 +1128,7 @@ <!-- Whether to enable the desktop specific audio tile details view. --> <bool name="config_enableDesktopAudioTileDetailsView">false</bool> <!-- If AOD can show an ambient version of the wallpaper (-1 means ignore) --> <integer name="config_dozeSupportsAodWallpaperOverride">-1</integer> </resources>
packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt +16 −3 Original line number Diff line number Diff line Loading @@ -134,9 +134,7 @@ constructor( .map { val userEnabled = secureSettings.getInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) == 1 userEnabled && context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) && ambientAod() userEnabled && configEnabled() && ambientAod() } .flowOn(bgDispatcher) Loading Loading @@ -197,6 +195,21 @@ constructor( initialValue = extendedWallpaperEffects(), ) private fun configEnabled(): Boolean { // Some devices like foldables may only support AOD wallpaper on one screen. The override // config adds the ability to specify general device support but allow per screen config val sysuiOverride = when ( context.resources.getInteger(SysUIR.integer.config_dozeSupportsAodWallpaperOverride) ) { 0 -> false 1 -> true else -> null } return if (sysuiOverride != null) sysuiOverride else context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) } private suspend fun getWallpaper( selectedUser: SelectedUserModel, which: Int = FLAG_SYSTEM, Loading