diff --git a/core/lib/domain/extensions/media_type_extension.dart b/core/lib/domain/extensions/media_type_extension.dart index c2a331d2c..b291d1d3d 100644 --- a/core/lib/domain/extensions/media_type_extension.dart +++ b/core/lib/domain/extensions/media_type_extension.dart @@ -3,14 +3,14 @@ import 'package:core/domain/preview/supported_preview_file_types.dart'; import 'package:http_parser/http_parser.dart'; extension MediaTypeExtension on MediaType { + static const String imageType = 'image'; + bool isAndroidSupportedPreview() => SupportedPreviewFileTypes.androidSupportedTypes.contains(mimeType); bool isIOSSupportedPreview() => SupportedPreviewFileTypes.iOSSupportedTypes.containsKey(mimeType); bool isImageFile() => SupportedPreviewFileTypes.imageMimeTypes.contains(mimeType); - bool isImageValid() => type == 'image'; - bool isDocFile() => SupportedPreviewFileTypes.docMimeTypes.contains(mimeType); bool isPowerPointFile() => SupportedPreviewFileTypes.pptMimeTypes.contains(mimeType); diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index f36bfa9a3..b0cf800b9 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -1955,26 +1955,10 @@ class ComposerController extends BaseController { return; } - if (fileUpload.type == null) { - final fileInfo = await fileUpload.toFileInfo(); - if (fileInfo != null) { - _addAttachmentFromDragAndDrop(fileInfo: fileInfo); - } else if (context.mounted) { - _appToast.showToastErrorMessage( - context, - AppLocalizations.of(context).can_not_upload_this_file_as_attachments - ); - } - return; - } - - final mediaType = MediaType.parse(fileUpload.type!); - if (mediaType.isImageValid()) { + if (fileUpload.type?.startsWith(MediaTypeExtension.imageType) == true) { _addInlineImageFromDragAndDrop( base64Data: fileUpload.base64!, name: fileUpload.name, - type: mediaType, - size: fileUpload.size, ); } else { final fileInfo = await fileUpload.toFileInfo(); @@ -1989,19 +1973,9 @@ class ComposerController extends BaseController { } } - void _addInlineImageFromDragAndDrop({ - required String base64Data, - String? name, - MediaType? type, - int? size - }) { + void _addInlineImageFromDragAndDrop({required String base64Data, String? name}) { log('ComposerController::_addInlineImageFromDragAndDrop:name: $name'); - richTextWebController.insertInlineImage( - base64Data: base64Data, - name: name, - type: type, - size: size, - ); + richTextWebController.insertInlineImage(base64Data: base64Data, name: name); } void handleImageUploadFailure({ diff --git a/lib/features/composer/presentation/controller/rich_text_web_controller.dart b/lib/features/composer/presentation/controller/rich_text_web_controller.dart index 26a1a3ed9..c639c0b9c 100644 --- a/lib/features/composer/presentation/controller/rich_text_web_controller.dart +++ b/lib/features/composer/presentation/controller/rich_text_web_controller.dart @@ -8,7 +8,6 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:html_editor_enhanced/html_editor.dart'; -import 'package:http_parser/http_parser.dart'; import 'package:tmail_ui_user/features/composer/presentation/model/code_view_state.dart'; import 'package:tmail_ui_user/features/composer/presentation/model/dropdown_menu_font_status.dart'; import 'package:tmail_ui_user/features/composer/presentation/model/formatting_options_state.dart'; @@ -186,13 +185,8 @@ class RichTextWebController extends BaseRichTextController { } } - void insertInlineImage({ - required String base64Data, - String? name, - MediaType? type, - int? size, - }) async { - log('RichTextWebController::insertInlineImage():name: $name | type: $type'); + void insertInlineImage({required String base64Data, String? name}) async { + log('RichTextWebController::insertInlineImage():name: $name'); final base64Uri = 'Inline Image TeamMail'; editorController.insertHtml(base64Uri); } diff --git a/lib/features/mailbox_dashboard/data/model/composer_cache.dart b/lib/features/mailbox_dashboard/data/model/composer_cache.dart index bbe03218c..5c5f29025 100644 --- a/lib/features/mailbox_dashboard/data/model/composer_cache.dart +++ b/lib/features/mailbox_dashboard/data/model/composer_cache.dart @@ -8,7 +8,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_body_value.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:model/email/email_content.dart'; -import 'package:model/extensions/media_type_extension.dart'; +import 'package:model/extensions/media_type_nullable_extension.dart'; class ComposerCache with EquatableMixin { diff --git a/model/lib/email/presentation_email.dart b/model/lib/email/presentation_email.dart index 2d4945239..780c19087 100644 --- a/model/lib/email/presentation_email.dart +++ b/model/lib/email/presentation_email.dart @@ -13,7 +13,7 @@ import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:model/email/email_content.dart'; import 'package:model/extensions/email_address_extension.dart'; -import 'package:model/extensions/media_type_extension.dart'; +import 'package:model/extensions/media_type_nullable_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:model/mailbox/select_mode.dart'; diff --git a/model/lib/extensions/media_type_extension.dart b/model/lib/extensions/media_type_nullable_extension.dart similarity index 89% rename from model/lib/extensions/media_type_extension.dart rename to model/lib/extensions/media_type_nullable_extension.dart index 6a86e4639..826cacecd 100644 --- a/model/lib/extensions/media_type_extension.dart +++ b/model/lib/extensions/media_type_nullable_extension.dart @@ -1,7 +1,7 @@ import 'package:http_parser/http_parser.dart'; import 'package:model/email/email_content_type.dart'; -extension MediaTypeExtension on MediaType? { +extension MediaTypeNullableExtension on MediaType? { EmailContentType toEmailContentType() { if (this == null) { diff --git a/model/lib/model.dart b/model/lib/model.dart index 842aee4fc..40e7c379d 100644 --- a/model/lib/model.dart +++ b/model/lib/model.dart @@ -43,7 +43,7 @@ export 'extensions/list_presentation_email_extension.dart'; export 'extensions/mailbox_extension.dart'; export 'extensions/mailbox_id_extension.dart'; export 'extensions/mailbox_name_extension.dart'; -export 'extensions/media_type_extension.dart'; +export 'extensions/media_type_nullable_extension.dart'; export 'extensions/presentation_email_extension.dart'; export 'extensions/presentation_mailbox_extension.dart'; export 'extensions/properties_extension.dart';