colorToUvColor function

UvColor? colorToUvColor(
  1. Color? color
)

Implementation

UvColor? colorToUvColor(Color? color) {
  if (color == null || color is NoColor) return null;

  final cached = _uvColorCache[color];
  if (cached != null) {
    if (hasDarkBackground && cached.hasDarkValue) return cached.darkValue;
    if (!hasDarkBackground && cached.hasLightValue) return cached.lightValue;
  }

  Color resolved = color;
  if (color is AdaptiveColor) {
    resolved = hasDarkBackground ? color.dark : color.light;
  }

  final value = _resolvedColorToUvColor(resolved);
  final entry = cached ?? (_uvColorCache[color] = _UvColorCacheEntry());
  if (hasDarkBackground) {
    entry
      ..hasDarkValue = true
      ..darkValue = value;
  } else {
    entry
      ..hasLightValue = true
      ..lightValue = value;
  }
  return value;
}