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

Commit 103ef7da authored by James O'Leary's avatar James O'Leary
Browse files

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
parent 6a82afbb
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -225,8 +225,13 @@ class ColorScheme(
    constructor(@ColorInt seed: Int, darkTheme: Boolean):
    constructor(@ColorInt seed: Int, darkTheme: Boolean):
            this(seed, darkTheme, Style.TONAL_SPOT)
            this(seed, darkTheme, Style.TONAL_SPOT)


    constructor(wallpaperColors: WallpaperColors, darkTheme: Boolean):
    @JvmOverloads
            this(getSeedColor(wallpaperColors), darkTheme)
    constructor(
        wallpaperColors: WallpaperColors,
        darkTheme: Boolean,
        style: Style = Style.TONAL_SPOT
    ):
            this(getSeedColor(wallpaperColors), darkTheme, style)


    val allAccentColors: List<Int>
    val allAccentColors: List<Int>
        get() {
        get() {
+10 −0
Original line number Original line Diff line number Diff line
@@ -62,6 +62,16 @@ public class ColorSchemeTest extends SysuiTestCase {
        Assert.assertEquals(rankedSeedColors, List.of(0xffaec00a));
        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
    @Test
    public void testFiltersInvalidColors() {
    public void testFiltersInvalidColors() {