diff options
| author | 2020-03-23 22:49:37 +0000 | |
|---|---|---|
| committer | 2020-03-23 22:49:37 +0000 | |
| commit | 59dc371fedcb2efd35e3b30b673756006d662624 (patch) | |
| tree | a1fe71606ccf4e107473b20e6f53969f50e915d4 | |
| parent | 75141af0c2001dae7049f697a1b767bca7564895 (diff) | |
| parent | 2e7170bb21ada34a7ea11bec1f4a462bba5fe9ee (diff) | |
Merge "Set dark theme flag when initializing with Color" into rvc-dev
| -rw-r--r-- | core/java/android/app/WallpaperColors.java | 8 | ||||
| -rw-r--r-- | tests/Internal/src/android/app/WallpaperColorsTest.java | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/app/WallpaperColors.java b/core/java/android/app/WallpaperColors.java index 6765d0b67c31..e4818b274342 100644 --- a/core/java/android/app/WallpaperColors.java +++ b/core/java/android/app/WallpaperColors.java @@ -222,6 +222,14 @@ public final class WallpaperColors implements Parcelable { public WallpaperColors(@NonNull Color primaryColor, @Nullable Color secondaryColor, @Nullable Color tertiaryColor) { this(primaryColor, secondaryColor, tertiaryColor, 0); + + // Calculate dark theme support based on primary color. + final float[] tmpHsl = new float[3]; + ColorUtils.colorToHSL(primaryColor.toArgb(), tmpHsl); + final float luminance = tmpHsl[2]; + if (luminance < DARK_THEME_MEAN_LUMINANCE) { + mColorHints |= HINT_SUPPORTS_DARK_THEME; + } } /** diff --git a/tests/Internal/src/android/app/WallpaperColorsTest.java b/tests/Internal/src/android/app/WallpaperColorsTest.java index 65ff6eb1ba04..e9bac717daa1 100644 --- a/tests/Internal/src/android/app/WallpaperColorsTest.java +++ b/tests/Internal/src/android/app/WallpaperColorsTest.java @@ -87,6 +87,14 @@ public class WallpaperColorsTest { + "HINT_FROM_BITMAP.", fromBitmap); } + @Test + public void darkMainColorSupportsDarkTheme() { + final Color color = Color.valueOf(Color.BLACK); + WallpaperColors colors = new WallpaperColors(color, null, null); + Assert.assertTrue("Dark theme should be supported by dark main colors.", + (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0); + } + /** * WallpaperColors should not recycle bitmaps that it didn't create. */ |