Add color scheme constructor that takes WallpaperColors & Style objects
Pairs with, and needed for, a CL that enables Widgets to use the user-selected theme variant. Bug: 213314628 Test: visual inspection at runtime: use different wallpapers and widgets in different locations, change to different theme variants, observe changes and verify they're in line with expectations (ex. if a widget is blue in the default theme variant, in the expressive theme variant it rotates hue just like a blue theme color does in expressive hue) Change-Id: I288a4faeba06042037b468c8345414ef5547325c
This commit is contained in:
@@ -225,8 +225,13 @@ class ColorScheme(
|
||||
constructor(@ColorInt seed: Int, darkTheme: Boolean):
|
||||
this(seed, darkTheme, Style.TONAL_SPOT)
|
||||
|
||||
constructor(wallpaperColors: WallpaperColors, darkTheme: Boolean):
|
||||
this(getSeedColor(wallpaperColors), darkTheme)
|
||||
@JvmOverloads
|
||||
constructor(
|
||||
wallpaperColors: WallpaperColors,
|
||||
darkTheme: Boolean,
|
||||
style: Style = Style.TONAL_SPOT
|
||||
):
|
||||
this(getSeedColor(wallpaperColors), darkTheme, style)
|
||||
|
||||
val allAccentColors: List<Int>
|
||||
get() {
|
||||
|
||||
@@ -62,6 +62,16 @@ public class ColorSchemeTest extends SysuiTestCase {
|
||||
Assert.assertEquals(rankedSeedColors, List.of(0xffaec00a));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStyleApplied() {
|
||||
WallpaperColors wallpaperColors = new WallpaperColors(Color.valueOf(0xffaec00a),
|
||||
null, null);
|
||||
// Expressive applies hue rotations to the theme color. The input theme color has hue
|
||||
// 117, ensuring the hue changed significantly is a strong signal styles are being applied.
|
||||
ColorScheme colorScheme = new ColorScheme(wallpaperColors, false, Style.EXPRESSIVE);
|
||||
Assert.assertEquals(Cam.fromInt(colorScheme.getAccent1().get(6)).getHue(), 357.46, 0.1);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFiltersInvalidColors() {
|
||||
|
||||
Reference in New Issue
Block a user