Loading packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt +12 −12 Original line number Diff line number Diff line Loading @@ -76,14 +76,14 @@ internal class CoreSpec( enum class Style(internal val coreSpec: CoreSpec) { SPRITZ(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 12.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)) n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)) )), TONAL_SPOT(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 32.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 60.0), Chroma(ChromaStrategy.EQ, 24.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), Loading @@ -91,17 +91,17 @@ enum class Style(internal val coreSpec: CoreSpec) { )), VIBRANT(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 10.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 20.0), Chroma(ChromaStrategy.GTE, 32.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 15.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 30.0), Chroma(ChromaStrategy.GTE, 32.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)) )), EXPRESSIVE(CoreSpec( a1 = TonalSpec(Hue(HueStrategy.SUBTRACT, 40.0), Chroma(ChromaStrategy.GTE, 64.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 20.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.SUBTRACT, 80.0), Chroma(ChromaStrategy.GTE, 64.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 32.0)) a1 = TonalSpec(Hue(HueStrategy.SUBTRACT, 60.0), Chroma(ChromaStrategy.GTE, 64.0)), a2 = TonalSpec(Hue(HueStrategy.SUBTRACT, 30.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 12.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)) )), RAINBOW(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), Loading packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java +42 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.monet; import android.app.WallpaperColors; import android.graphics.Color; import android.testing.AndroidTestingRunner; import android.util.Log; import androidx.test.filters.SmallTest; Loading @@ -29,7 +30,11 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @SmallTest @RunWith(AndroidTestingRunner.class) Loading Loading @@ -108,7 +113,7 @@ public class ColorSchemeTest extends SysuiTestCase { Style.SPRITZ /* style */); int primaryMid = colorScheme.getAccent1().get(colorScheme.getAccent1().size() / 2); Cam cam = Cam.fromInt(primaryMid); Assert.assertEquals(cam.getChroma(), 4.0, 1.0); Assert.assertEquals(cam.getChroma(), 12.0, 1.0); } @Test Loading @@ -128,6 +133,41 @@ public class ColorSchemeTest extends SysuiTestCase { Style.EXPRESSIVE /* style */); int neutralMid = colorScheme.getNeutral1().get(colorScheme.getNeutral1().size() / 2); Cam cam = Cam.fromInt(neutralMid); Assert.assertEquals(cam.getChroma(), 16.0, 1.0); Assert.assertEquals(cam.getChroma(), 12.0, 1.0); } /** * Generate xml for SystemPaletteTest#testThemeStyles(). */ @Test public void generateThemeStyles() { StringBuilder xml = new StringBuilder(); for (int hue = 0; hue < 360; hue += 60) { final int sourceColor = Cam.getInt(hue, 50f, 50f); final String sourceColorHex = Integer.toHexString(sourceColor); xml.append(" <theme color=\"").append(sourceColorHex).append("\">\n"); for (Style style : Style.values()) { String styleName = style.name().toLowerCase(); ColorScheme colorScheme = new ColorScheme(sourceColor, false, style); xml.append(" <").append(styleName).append(">"); List<String> colors = new ArrayList<>(); for (Stream<Integer> stream: Arrays.asList(colorScheme.getAccent1().stream(), colorScheme.getAccent2().stream(), colorScheme.getAccent3().stream(), colorScheme.getNeutral1().stream(), colorScheme.getNeutral2().stream())) { colors.add("ffffff"); colors.addAll(stream.map(Integer::toHexString).map(s -> s.substring(2)).collect( Collectors.toList())); } xml.append(String.join(",", colors)); xml.append("</").append(styleName).append(">\n"); } xml.append(" </theme>\n"); } Log.d("ColorSchemeXml", xml.toString()); } } Loading
packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt +12 −12 Original line number Diff line number Diff line Loading @@ -76,14 +76,14 @@ internal class CoreSpec( enum class Style(internal val coreSpec: CoreSpec) { SPRITZ(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), a1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 12.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)) n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)) )), TONAL_SPOT(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 32.0)), a2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 60.0), Chroma(ChromaStrategy.EQ, 24.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 4.0)), Loading @@ -91,17 +91,17 @@ enum class Style(internal val coreSpec: CoreSpec) { )), VIBRANT(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 10.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 20.0), Chroma(ChromaStrategy.GTE, 32.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 15.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.ADD, 30.0), Chroma(ChromaStrategy.GTE, 32.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 8.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)) )), EXPRESSIVE(CoreSpec( a1 = TonalSpec(Hue(HueStrategy.SUBTRACT, 40.0), Chroma(ChromaStrategy.GTE, 64.0)), a2 = TonalSpec(Hue(HueStrategy.ADD, 20.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(Hue(HueStrategy.SUBTRACT, 80.0), Chroma(ChromaStrategy.GTE, 64.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 32.0)) a1 = TonalSpec(Hue(HueStrategy.SUBTRACT, 60.0), Chroma(ChromaStrategy.GTE, 64.0)), a2 = TonalSpec(Hue(HueStrategy.SUBTRACT, 30.0), Chroma(ChromaStrategy.EQ, 24.0)), a3 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), n1 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 12.0)), n2 = TonalSpec(chroma = Chroma(ChromaStrategy.EQ, 16.0)) )), RAINBOW(CoreSpec( a1 = TonalSpec(chroma = Chroma(ChromaStrategy.GTE, 48.0)), Loading
packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java +42 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.monet; import android.app.WallpaperColors; import android.graphics.Color; import android.testing.AndroidTestingRunner; import android.util.Log; import androidx.test.filters.SmallTest; Loading @@ -29,7 +30,11 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @SmallTest @RunWith(AndroidTestingRunner.class) Loading Loading @@ -108,7 +113,7 @@ public class ColorSchemeTest extends SysuiTestCase { Style.SPRITZ /* style */); int primaryMid = colorScheme.getAccent1().get(colorScheme.getAccent1().size() / 2); Cam cam = Cam.fromInt(primaryMid); Assert.assertEquals(cam.getChroma(), 4.0, 1.0); Assert.assertEquals(cam.getChroma(), 12.0, 1.0); } @Test Loading @@ -128,6 +133,41 @@ public class ColorSchemeTest extends SysuiTestCase { Style.EXPRESSIVE /* style */); int neutralMid = colorScheme.getNeutral1().get(colorScheme.getNeutral1().size() / 2); Cam cam = Cam.fromInt(neutralMid); Assert.assertEquals(cam.getChroma(), 16.0, 1.0); Assert.assertEquals(cam.getChroma(), 12.0, 1.0); } /** * Generate xml for SystemPaletteTest#testThemeStyles(). */ @Test public void generateThemeStyles() { StringBuilder xml = new StringBuilder(); for (int hue = 0; hue < 360; hue += 60) { final int sourceColor = Cam.getInt(hue, 50f, 50f); final String sourceColorHex = Integer.toHexString(sourceColor); xml.append(" <theme color=\"").append(sourceColorHex).append("\">\n"); for (Style style : Style.values()) { String styleName = style.name().toLowerCase(); ColorScheme colorScheme = new ColorScheme(sourceColor, false, style); xml.append(" <").append(styleName).append(">"); List<String> colors = new ArrayList<>(); for (Stream<Integer> stream: Arrays.asList(colorScheme.getAccent1().stream(), colorScheme.getAccent2().stream(), colorScheme.getAccent3().stream(), colorScheme.getNeutral1().stream(), colorScheme.getNeutral2().stream())) { colors.add("ffffff"); colors.addAll(stream.map(Integer::toHexString).map(s -> s.substring(2)).collect( Collectors.toList())); } xml.append(String.join(",", colors)); xml.append("</").append(styleName).append(">\n"); } xml.append(" </theme>\n"); } Log.d("ColorSchemeXml", xml.toString()); } }