From 9fd1b4f653f87c77c7617de5e40b332b8482b5bf Mon Sep 17 00:00:00 2001 From: ManhNTX Date: Wed, 5 Oct 2022 15:06:37 +0700 Subject: [PATCH] TF-1033: able share other file not media file --- lib/features/composer/presentation/composer_view.dart | 2 +- .../controller/rich_text_mobile_tablet_controller.dart | 2 +- lib/features/home/presentation/home_controller.dart | 10 ++++++++-- lib/main/utils/email_receive_manager.dart | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/features/composer/presentation/composer_view.dart b/lib/features/composer/presentation/composer_view.dart index 25ad37504..804bbee9d 100644 --- a/lib/features/composer/presentation/composer_view.dart +++ b/lib/features/composer/presentation/composer_view.dart @@ -675,10 +675,10 @@ class ComposerView extends GetWidget addDefaultSelectionMenuItems: false, initialContent: initialContent, onCreated: (editorApi) { + richTextMobileTabletController.htmlEditorApi = editorApi; if(responsiveUtils.isMobile(context)){ controller.keyboardRichTextController.onCreateHTMLEditor(editorApi); } else { - richTextMobileTabletController.htmlEditorApi = editorApi; richTextMobileTabletController.listenHtmlEditorApi(); } }, diff --git a/lib/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart b/lib/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart index 2a2bb7438..78ae6a706 100644 --- a/lib/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart +++ b/lib/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart @@ -140,7 +140,7 @@ class RichTextMobileTabletController extends BaseRichTextController { htmlEditorApi?.insertImageLink(image.link!); } else { await htmlEditorApi?.moveCursorAtLastNode(); - htmlEditorApi?.insertHtml(image.base64Uri ?? ''); + await htmlEditorApi?.insertHtml(image.base64Uri ?? ''); } } diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index c59187eed..bf4ecc95e 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/model.dart'; +import 'package:receive_sharing_intent/receive_sharing_intent.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart'; @@ -96,8 +97,13 @@ class HomeController extends BaseController { _emailReceiveManager.receivingSharingStream.listen((uri) { log('HomeController::onReady(): Received Email: ${uri.toString()}'); if (uri != null) { - log('HomeController::onReady(): Address: ${uri.path}'); - _emailReceiveManager.setPendingEmailAddress(EmailAddress(null, uri.path)); + if(_emailReceiveManager.mailRegex.hasMatch(uri.path)) { + log('HomeController::onReady(): Address: ${uri.path}'); + _emailReceiveManager.setPendingEmailAddress(EmailAddress(null, uri.path)); + } else { + log('HomeController::onInit(): SharedMediaFilePath: ${uri.path}'); + _emailReceiveManager.setPendingFileInfo([SharedMediaFile(uri.path, null, null, SharedMediaType.FILE)]); + } } }); diff --git a/lib/main/utils/email_receive_manager.dart b/lib/main/utils/email_receive_manager.dart index 86f32da3e..7f5deef9c 100644 --- a/lib/main/utils/email_receive_manager.dart +++ b/lib/main/utils/email_receive_manager.dart @@ -5,6 +5,9 @@ import 'package:rxdart/rxdart.dart'; class EmailReceiveManager { + /// Regex check Url is mail or not + final mailRegex = RegExp(r'(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)'); + BehaviorSubject _pendingEmailAddressInfo = BehaviorSubject.seeded(null); BehaviorSubject get pendingEmailAddressInfo => _pendingEmailAddressInfo;