resolve method

M3EThemeData resolve(
  1. BuildContext context, {
  2. ColorScheme? lightDynamic,
  3. ColorScheme? darkDynamic,
})

Resolves M3EThemeData for the current brightness and optional dynamics.

Implementation

M3EThemeData resolve(
  BuildContext context, {
  ColorScheme? lightDynamic,
  ColorScheme? darkDynamic,
}) {
  final Brightness brightness = resolveBrightness(context);
  final M3EThemeData template = brightness == Brightness.dark
      ? darkTemplate
      : lightTemplate;

  if (!dynamicColoring) {
    return template;
  }

  final dynamicScheme = brightness == Brightness.dark
      ? darkDynamic
      : lightDynamic;
  if (dynamicScheme == null) {
    return template;
  }

  final ColorScheme harmonizedDynamic = dynamicScheme.harmonized();
  final M3EColorScheme m3eScheme = M3EColorScheme.fromColorScheme(
    harmonizedDynamic,
  ).harmonized();

  return template.withColorScheme(m3eScheme);
}