decodeData method

  1. @override
Uint8List decodeData(
  1. String part
)
override

Encodes the given part text.

Implementation

@override
Uint8List decodeData(final String part) {
  var cleaned = part.replaceAll('\r\n', '');
  var numberOfRequiredPadding =
      cleaned.length % 4 == 0 ? 0 : 4 - cleaned.length % 4;
  if (numberOfRequiredPadding > 0 && cleaned.endsWith('=')) {
    cleaned = cleaned.substring(0, cleaned.length - 1);
    numberOfRequiredPadding =
        cleaned.length % 4 == 0 ? 0 : 4 - cleaned.length % 4;
  }
  if (numberOfRequiredPadding > 0) {
    final buffer = StringBuffer(cleaned);
    var paddingRequired = true;
    while (paddingRequired) {
      buffer.write('=');
      numberOfRequiredPadding--;
      paddingRequired = numberOfRequiredPadding > 0;
    }
    cleaned = buffer.toString();
  }

  return base64.decode(cleaned);
}