[automerger skipped] Project import generated by Copybara. am: 4d52cb6b27 am: e4bd30133e -s ours

am skip reason: Merged-In I37cbd4696d6d19be7ecab298df227497e767308d with SHA-1 5beefe6a90 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libmonet/+/23988945

Change-Id: If0ad44a5f4c85a2cae8ce866141a7db01f780e69
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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 @@
 // 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 @@
         "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 @@
       return DynamicColor.enableLightForeground(albersd.getTone());
     }
   }
-}
+}
\ No newline at end of file