Handle some case about share intent from android phone

This commit is contained in:
Huy Nguyễn
2023-03-07 00:15:11 +07:00
committed by Dat Vu
parent abc9cebe3f
commit 1e0013260f
5 changed files with 52 additions and 8 deletions
@@ -110,12 +110,15 @@ class HomeController extends BaseController {
_emailReceiveManager.receivingSharingStream.listen((uri) {
log('HomeController::onReady(): Received Email: ${uri.toString()}');
if (uri != null) {
if(GetUtils.isEmail(uri.path)) {
if (GetUtils.isEmail(uri.path)) {
log('HomeController::onReady(): Address: ${uri.path}');
_emailReceiveManager.setPendingEmailAddress(EmailAddress(null, uri.path));
} else {
log('HomeController::onInit(): SharedMediaFilePath: ${uri.path}');
} else if (uri.scheme == "file") {
log('HomeController::onReady(): SharedMediaFilePath: ${uri.path}');
_emailReceiveManager.setPendingFileInfo([SharedMediaFile(uri.path, null, null, SharedMediaType.FILE)]);
} else {
log('HomeController::onReady(): EmailContent: ${uri.path}');
_emailReceiveManager.setPendingEmailContent(EmailContent(EmailContentType.textPlain, Uri.decodeComponent(uri.path)));
}
}
});
@@ -216,6 +216,7 @@ class MailboxDashBoardController extends ReloadableController {
@override
void onReady() {
_registerPendingEmailAddress();
_registerPendingEmailContents();
_registerPendingFileInfo();
_getSessionCurrent();
_getAppVersion();
@@ -358,6 +359,21 @@ class MailboxDashBoardController extends ReloadableController {
});
}
void _registerPendingEmailContents() {
_emailReceiveManagerStreamSubscription =
_emailReceiveManager.pendingEmailContentInfo.stream.listen((emailContent) {
log('MailboxDashBoardController::_registerPendingEmailContents(): ${emailContent?.content}');
if (emailContent != null && emailContent.content.isNotEmpty == true) {
_emailReceiveManager.clearPendingEmailContent();
final arguments = ComposerArguments(
emailActionType: EmailActionType.edit,
emailContents: [emailContent],
mailboxRole: selectedMailbox.value?.role);
goToComposer(arguments);
}
});
}
void _registerPendingFileInfo() {
_fileReceiveManagerStreamSubscription =
_emailReceiveManager.pendingFileInfo.stream.listen((listFile) {