11import 'package:enough_mail/enough_mail.dart' ;
22import 'package:enough_media/enough_media.dart' ;
3+ import 'package:flutter/foundation.dart' ;
34
45/// Provides a simple way to generate a media provider from a mime message
56class MimeMediaProviderFactory {
@@ -14,13 +15,26 @@ class MimeMediaProviderFactory {
1415 name.isNotEmpty) {
1516 mediaType = MediaType .guessFromFileName (name);
1617 }
17- if (mediaType.isText) {
18- return TextMediaProvider (
19- name, mediaType.text, mimePart.decodeContentText ()! );
20- } else {
21- return MemoryMediaProvider (
22- name, mediaType.text, mimePart.decodeContentBinary ()! ,
23- description: mimeMessage.decodeSubject ());
24- }
18+ return mediaType.isText
19+ ? TextMediaProvider (
20+ name, mediaType.text, mimePart.decodeContentText () ?? '' )
21+ : MemoryMediaProvider (
22+ name,
23+ mediaType.text,
24+ mimePart.decodeContentBinary () ?? Uint8List (0 ),
25+ description: mimeMessage.decodeSubject (),
26+ );
2527 }
28+
29+ /// Creates a new [TextMediaProvider] or [MemoryMediaProvider] from
30+ /// the given [title] and [text] .
31+ static MediaProvider fromError ({
32+ required String title,
33+ required String text,
34+ }) =>
35+ TextMediaProvider (
36+ title,
37+ MediaType .textPlain.text,
38+ text,
39+ );
2640}
0 commit comments