stringToColorFilter function

ColorFilter? stringToColorFilter(
  1. String data
)

Implementation

ColorFilter? stringToColorFilter(String data) {
  if (data == 'ColorFilter.linearToSrgbGamma()') {
    return const ColorFilter.linearToSrgbGamma();
  } else if (data == 'ColorFilter.srgbToLinearGamma()') {
    return const ColorFilter.srgbToLinearGamma();
  } else if (data.startsWith('ColorFilter.mode')) {
    final Color? color = stringToColor(data.split(',')[0].split('(')[1]);
    final String blendMode = data.split(',')[1].trim().split(')')[0];
    final BlendMode? mode =
        ExEnum.tryParse<BlendMode>(BlendMode.values, blendMode);

    if (color != null && mode != null) {
      return ColorFilter.mode(color, mode);
    }

    return null;
  } else if (data.startsWith('ColorFilter.matrix')) {
    final String matrix = data.split('(')[1].split(')')[0];

    final List<double> matrixList =
        matrix.split(',').map((String e) => double.parse(e)).toList();

    return ColorFilter.matrix(matrixList);
  }

  return null;
}