Attachment.fromICalString constructor

Attachment.fromICalString(
  1. String icalString
)

Implementation

factory Attachment.fromICalString(String icalString) {
  icalString = _removeNonPrintable(icalString);
  final uriPattern = RegExp(r'https?://\S+');
  final uriMatch = uriPattern.firstMatch(icalString);
  final uriString = uriMatch != null ? uriMatch.group(0) : '';

  final mimeType = icalString.contains(';FMTTYPE=')
      ? icalString.split(';FMTTYPE=').last.split(';').first.split(':').first
      : null;

  final fileName = icalString.contains(';FILENAME=')
      ? Uri.decodeComponent(icalString
          .split(';FILENAME=')
          .last
          .split(';')
          .first
          .split(':')
          .first)
      : null;

  if (uriString == '') {
    throw ArgumentError('The iCal string does not contain a valid URI.');
  }

  return Attachment(
    uri: Uri.parse(uriString ?? ''),
    mimeType: mimeType,
    fileName: fileName,
  );
}