diff options
3 files changed, 26 insertions, 2 deletions
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index e5e8418d5f18..ec346c87cdf3 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -551,7 +551,6 @@ android:exported="true" /> <service android:name=".wallpapers.GradientColorWallpaper" - android:featureFlag="android.app.enable_connected_displays_wallpaper" android:singleUser="true" android:permission="android.permission.BIND_WALLPAPER" android:exported="true" /> diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/GradientColorWallpaperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/GradientColorWallpaperTest.kt index ba6ea9f5e8bb..89410593fe62 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/GradientColorWallpaperTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/GradientColorWallpaperTest.kt @@ -16,11 +16,14 @@ package com.android.systemui.wallpapers +import android.app.Flags import android.content.Context import android.graphics.Canvas import android.graphics.Paint import android.graphics.Rect import android.graphics.RectF +import android.platform.test.annotations.DisableFlags +import android.platform.test.annotations.EnableFlags import android.service.wallpaper.WallpaperService.Engine import android.testing.TestableLooper.RunWithLooper import android.view.Surface @@ -37,6 +40,7 @@ import org.mockito.Mockito.spy import org.mockito.MockitoAnnotations import org.mockito.kotlin.any import org.mockito.kotlin.verify +import org.mockito.kotlin.verifyZeroInteractions import org.mockito.kotlin.whenever @SmallTest @@ -70,6 +74,18 @@ class GradientColorWallpaperTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER) + fun onSurfaceRedrawNeeded_flagDisabled_shouldNotDrawInCanvas() { + val engine = createGradientColorWallpaperEngine() + engine.onCreate(surfaceHolder) + + engine.onSurfaceRedrawNeeded(surfaceHolder) + + verifyZeroInteractions(canvas) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER) fun onSurfaceRedrawNeeded_shouldDrawInCanvas() { val engine = createGradientColorWallpaperEngine() engine.onCreate(surfaceHolder) diff --git a/packages/SystemUI/src/com/android/systemui/wallpapers/GradientColorWallpaper.kt b/packages/SystemUI/src/com/android/systemui/wallpapers/GradientColorWallpaper.kt index c1fb0e80cafc..760e94c72f19 100644 --- a/packages/SystemUI/src/com/android/systemui/wallpapers/GradientColorWallpaper.kt +++ b/packages/SystemUI/src/com/android/systemui/wallpapers/GradientColorWallpaper.kt @@ -16,6 +16,7 @@ package com.android.systemui.wallpapers +import android.app.Flags import android.graphics.Canvas import android.graphics.Paint import android.service.wallpaper.WallpaperService @@ -26,7 +27,15 @@ import androidx.core.graphics.toRectF /** A wallpaper that shows a static gradient color image wallpaper. */ class GradientColorWallpaper : WallpaperService() { - override fun onCreateEngine(): Engine = GradientColorWallpaperEngine() + override fun onCreateEngine(): Engine = + if (Flags.enableConnectedDisplaysWallpaper()) { + GradientColorWallpaperEngine() + } else { + EmptyWallpaperEngine() + } + + /** Empty engine used when the feature flag is disabled. */ + inner class EmptyWallpaperEngine : Engine() inner class GradientColorWallpaperEngine : Engine() { init { |