incColor function

Color incColor(
  1. String hexColor,
  2. int amt
)

Implementation

Color incColor(String hexColor, int amt) {
  String? opacityStr;

  if (colors[hexColor] != null) {
    return colors[hexColor]!;
  }

  var usePound = false;

  if (hexColor.isEmpty) return Colors.transparent;

  if (hexColor.contains('#')) {
    hexColor = hexColor.toString().replaceAll('#', '');
    usePound = true;
  }

  if (hexColor.contains('0x')) {
    opacityStr = hexColor.substring(0, 4);
    hexColor = hexColor.substring(4);
    usePound = false;
  }

  var num = int.parse(hexColor, radix: 16);

  var r = (num >> 16) + amt;

  if (r > 255) {
    r = 255;
  } else if (r < 0) {
    r = 0;
  }

  var b = ((num >> 8) & 0x00FF) + amt;

  if (b > 255) {
    b = 255;
  } else if (b < 0) {
    b = 0;
  }

  var g = (num & 0x0000FF) + amt;

  if (g > 255) {
    g = 255;
  } else if (g < 0) {
    g = 0;
  }

  int x = b << 8;
  int y = r << 16;
  int z = g | x | y;
  var result = (z).toRadixString(16);

  return strToColor((usePound ? "#" : opacityStr ?? '') + (result ?? ''));
}