effective static method

FlexSchemeColor effective(
  1. FlexSchemeColor colors,
  2. int usedColors, {
  3. bool swapColors = false,
})

Make effective FlexSchemeColor colors using 1 to 4 of the passed in colors based on the usedColors property.

The usedColors value corresponds to:

If swapColors is true, primary and secondary, as well as primaryVariant and secondaryVariant are swapped, before being usage limited by usedColors.

Implementation

static FlexSchemeColor effective(
    final FlexSchemeColor colors, final int usedColors,
    {final bool swapColors = false}) {
  assert(usedColors >= 1 && usedColors <= 4, 'usedColors must be 1 to 4.');

  final FlexSchemeColor effectiveColors = swapColors
      ? colors.copyWith(
          primary: colors.secondary,
          primaryVariant: colors.secondaryVariant,
          secondary: colors.primary,
          secondaryVariant: colors.primaryVariant,
        )
      : colors;

  return effectiveColors.copyWith(
    primary: effectiveColors.primary,
    primaryVariant: usedColors > 2
        ? effectiveColors.primaryVariant
        : effectiveColors.primary.darken(kDarkenPrimaryVariant),
    secondary: usedColors > 1
        ? effectiveColors.secondary
        : effectiveColors.primary.darken(kDarkenSecondary),
    secondaryVariant: usedColors > 3
        ? effectiveColors.secondaryVariant
        : usedColors > 1
            ? effectiveColors.secondary
                .darken(kDarkenSecondaryVariantFromSecondary)
            : effectiveColors.primary.darken(kDarkenSecondaryVariant),
    appBarColor: colors.appBarColor,
    error: colors.error,
  );
}