diff options
3 files changed, 40 insertions, 18 deletions
diff --git a/core/java/com/android/internal/colorextraction/types/Tonal.java b/core/java/com/android/internal/colorextraction/types/Tonal.java index 9b7383fcbe8a..7b25a0691c40 100644 --- a/core/java/com/android/internal/colorextraction/types/Tonal.java +++ b/core/java/com/android/internal/colorextraction/types/Tonal.java @@ -405,12 +405,13 @@ public class Tonal implements ExtractionType { return v - (float) Math.floor(v); } - static class TonalPalette { - final float[] h; - final float[] s; - final float[] l; - final float minHue; - final float maxHue; + @VisibleForTesting + public static class TonalPalette { + public final float[] h; + public final float[] s; + public final float[] l; + public final float minHue; + public final float maxHue; TonalPalette(float[] h, float[] s, float[] l) { if (h.length != s.length || s.length != l.length) { diff --git a/core/res/res/xml/color_extraction.xml b/core/res/res/xml/color_extraction.xml index 7d52b20f7614..93ab0ff26754 100644 --- a/core/res/res/xml/color_extraction.xml +++ b/core/res/res/xml/color_extraction.xml @@ -257,52 +257,58 @@ <!-- Red Orange --> <range h="20, 40" s="0.7, 1" - l="0.28, 0.643"/> + l="0.2, 0.643"/> <range h="20, 40" s="0.3, 0.7" l="0.414, 0.561"/> <range h="20, 40" - s="0, 3" + s="0, 0.3" l="0.343, 0.584"/> <!-- Orange --> <range h="40, 60" s="0.7, 1" - l="0.173, 0.349"/> + l="0.173, 0.38"/> <range h="40, 60" s="0.3, 0.7" l="0.233, 0.427"/> <range h="40, 60" s="0, 0.3" - l="0.231, 0.484"/> + l="0.231, 0.48"/> <!-- Yellow 60 --> <range h="60, 80" s="0.7, 1" - l="0.488, 0.737"/> + l="0.15, 0.40"/> <range h="60, 80" s="0.3, 0.7" - l="0.673, 0.837"/> + l="0.15, 0.42"/> + <range h="60, 80" + s="0, 0.3" + l="0.35, 0.57"/> <!-- Yellow Green 80 --> <range h="80, 100" s="0.7, 1" - l="0.469, 0.61"/> + l="0.36, 0.65"/> + <range h="80, 100" + s="0.3, 0.7" + l="0.48, 0.57"/> <!-- Yellow green 100 --> <range h="100, 120" s="0.7, 1" - l="0.388, 0.612"/> + l="0.388, 0.67"/> <range h="100, 120" s="0.3, 0.7" - l="0.424, 0.541"/> + l="0.424, 0.58"/> <!-- Green --> <range h="120, 140" s="0.7, 1" - l="0.375, 0.52"/> + l="0.37, 0.65"/> <range h="120, 140" s="0.3, 0.7" - l="0.435, 0.524"/> + l="0.435, 0.58"/> <!-- Green Blue 140 --> <range h="140, 160" s="0.7, 1" - l="0.496, 0.641"/> + l="0.43, 0.641"/> <!-- Seaoam --> <range h="160, 180" s="0.7, 1" diff --git a/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java b/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java index d46fff4db65a..a7d5ae8f69a3 100644 --- a/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java +++ b/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java @@ -99,6 +99,21 @@ public class TonalTest { } @Test + public void tonal_rangeTest() { + Tonal.ConfigParser config = new Tonal.ConfigParser(InstrumentationRegistry.getContext()); + for (Tonal.TonalPalette palette : config.getTonalPalettes()) { + assertTrue("minHue should be >= to 0.", palette.minHue >= 0); + assertTrue("maxHue should be <= to 360.", palette.maxHue <= 360); + + assertTrue("S should be >= to 0.", palette.s[0] >= 0); + assertTrue("S should be <= to 1.", palette.s[1] <= 1); + + assertTrue("L should be >= to 0.", palette.l[0] >= 0); + assertTrue("L should be <= to 1.", palette.l[1] <= 1); + } + } + + @Test public void tonal_blacklistTest() { // Make sure that palette generation will fail. final Tonal tonal = new Tonal(InstrumentationRegistry.getContext()); |