From d952d2ac776f70285914f0c4ceadca96d0a1dccc Mon Sep 17 00:00:00 2001 From: Material Eng Date: Wed, 19 Jul 2023 12:08:14 +0000 Subject: Add support for extended fidelity in color schemes. Project import generated by Copybara. Bug: 290615947 PiperOrigin-RevId: 549283686 Change-Id: I8f5ee5d21c29c4c764f3cbaa531041a5d8fb845e Merged-In: I8f5ee5d21c29c4c764f3cbaa531041a5d8fb845e (cherry picked from commit 2758a1beb3dee0ac66597ee1ec5743910b73a27f) --- dynamiccolor/MaterialDynamicColors.java | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/dynamiccolor/MaterialDynamicColors.java b/dynamiccolor/MaterialDynamicColors.java index 0109906..cf1027e 100644 --- a/dynamiccolor/MaterialDynamicColors.java +++ b/dynamiccolor/MaterialDynamicColors.java @@ -31,7 +31,17 @@ import com.google.ux.material.libmonet.scheme.Variant; // AndroidManifest with an SDK set higher than 14. @SuppressWarnings({"AndroidJdkLibsChecker", "NewApi"}) public final class MaterialDynamicColors { - public MaterialDynamicColors() {} + /** Optionally use fidelity on most color schemes. */ + private final boolean isExtendedFidelity; + + public MaterialDynamicColors() { + this.isExtendedFidelity = false; + } + + // Temporary constructor to support extended fidelity experiment. + public MaterialDynamicColors(boolean isExtendedFidelity) { + this.isExtendedFidelity = isExtendedFidelity; + } @NonNull public DynamicColor highestSurface(@NonNull DynamicScheme s) { @@ -909,12 +919,17 @@ public final class MaterialDynamicColors { "text_hint_inverse", (s) -> s.neutralPalette, (s) -> s.isDark ? 10.0 : 90.0); } - private static ViewingConditions viewingConditionsForAlbers(DynamicScheme scheme) { - return ViewingConditions.defaultWithBackgroundLstar(scheme.isDark ? 30.0 : 80.0); + private boolean isFidelity(DynamicScheme scheme) { + if (this.isExtendedFidelity + && scheme.variant != Variant.MONOCHROME + && scheme.variant != Variant.NEUTRAL) { + return true; + } + return scheme.variant == Variant.FIDELITY || scheme.variant == Variant.CONTENT; } - private static boolean isFidelity(DynamicScheme scheme) { - return scheme.variant == Variant.FIDELITY || scheme.variant == Variant.CONTENT; + private static ViewingConditions viewingConditionsForAlbers(DynamicScheme scheme) { + return ViewingConditions.defaultWithBackgroundLstar(scheme.isDark ? 30.0 : 80.0); } private static boolean isMonochrome(DynamicScheme scheme) { @@ -959,4 +974,4 @@ public final class MaterialDynamicColors { return DynamicColor.enableLightForeground(albersd.getTone()); } } -} +} \ No newline at end of file -- cgit v1.2.3