TF-3479 Add OpenAndCloseComposerExtension to handle open & close composer
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:model/extensions/contact_support_capability_extension.dart';
|
|||||||
import 'package:model/support/contact_support_capability.dart';
|
import 'package:model/support/contact_support_capability.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||||
@@ -31,7 +32,7 @@ mixin ContactSupportMixin {
|
|||||||
AppUtils.launchLink(mailtoLink);
|
AppUtils.launchLink(mailtoLink);
|
||||||
} else {
|
} else {
|
||||||
final mailboxDashBoardController = getBinding<MailboxDashBoardController>();
|
final mailboxDashBoardController = getBinding<MailboxDashBoardController>();
|
||||||
mailboxDashBoardController?.goToComposer(
|
mailboxDashBoardController?.openComposer(
|
||||||
ComposerArguments.fromEmailAddress(EmailAddress(null, mailAddress)),
|
ComposerArguments.fromEmailAddress(EmailAddress(null, mailAddress)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart
|
|||||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/draggable_app_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/draggable_app_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||||
@@ -1601,17 +1602,11 @@ class ComposerController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _closeComposerAction({dynamic result, bool closeOverlays = false}) {
|
void _closeComposerAction({dynamic result, bool closeOverlays = false}) {
|
||||||
if (PlatformInfo.isWeb) {
|
mailboxDashBoardController.closeComposer(
|
||||||
if (closeOverlays) {
|
result: result,
|
||||||
popBack();
|
closeOverlays: closeOverlays,
|
||||||
}
|
composerId: composerId,
|
||||||
mailboxDashBoardController.closeComposerOnWeb(
|
);
|
||||||
composerId: composerId,
|
|
||||||
result: result,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
popBack(result: result, closeOverlays: closeOverlays);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayScreenTypeComposerAction(ScreenDisplayMode displayMode) async {
|
void displayScreenTypeComposerAction(ScreenDisplayMode displayMode) async {
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions
|
|||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/download/download_task_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/download/download_task_state.dart';
|
||||||
@@ -1462,7 +1463,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
void composeEmailFromEmailAddress(EmailAddress emailAddress) {
|
void composeEmailFromEmailAddress(EmailAddress emailAddress) {
|
||||||
popBack();
|
popBack();
|
||||||
mailboxDashBoardController.goToComposer(ComposerArguments.fromEmailAddress(emailAddress));
|
mailboxDashBoardController.openComposer(ComposerArguments.fromEmailAddress(emailAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> openMailToLink(Uri? uri) async {
|
Future<void> openMailToLink(Uri? uri) async {
|
||||||
@@ -1472,7 +1473,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
log('SingleEmailController::openMailToLink(): ${uri.toString()}');
|
log('SingleEmailController::openMailToLink(): ${uri.toString()}');
|
||||||
if (!RouteUtils.canOpenComposerFromNavigationRouter(navigationRouter)) return;
|
if (!RouteUtils.canOpenComposerFromNavigationRouter(navigationRouter)) return;
|
||||||
|
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.fromMailtoUri(
|
ComposerArguments.fromMailtoUri(
|
||||||
listEmailAddress: navigationRouter.listEmailAddress,
|
listEmailAddress: navigationRouter.listEmailAddress,
|
||||||
cc: navigationRouter.cc,
|
cc: navigationRouter.cc,
|
||||||
@@ -1657,10 +1658,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
) {
|
) {
|
||||||
switch(emailActionType) {
|
switch(emailActionType) {
|
||||||
case EmailActionType.compose:
|
case EmailActionType.compose:
|
||||||
mailboxDashBoardController.goToComposer(ComposerArguments());
|
mailboxDashBoardController.openComposer(ComposerArguments());
|
||||||
break;
|
break;
|
||||||
case EmailActionType.reply:
|
case EmailActionType.reply:
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.replyEmail(
|
ComposerArguments.replyEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
@@ -1674,7 +1675,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
break;
|
break;
|
||||||
case EmailActionType.replyToList:
|
case EmailActionType.replyToList:
|
||||||
log('SingleEmailController::pressEmailAction:replyToList');
|
log('SingleEmailController::pressEmailAction:replyToList');
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.replyToListEmail(
|
ComposerArguments.replyToListEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
@@ -1687,7 +1688,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.replyAll:
|
case EmailActionType.replyAll:
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.replyAllEmail(
|
ComposerArguments.replyAllEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
@@ -1700,7 +1701,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.forward:
|
case EmailActionType.forward:
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.forwardEmail(
|
ComposerArguments.forwardEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
@@ -1832,7 +1833,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
void openNewComposerAction(String mailTo) {
|
void openNewComposerAction(String mailTo) {
|
||||||
final emailAddress = EmailAddress(mailTo, mailTo);
|
final emailAddress = EmailAddress(mailTo, mailTo);
|
||||||
mailboxDashBoardController.goToComposer(ComposerArguments.fromEmailAddress(emailAddress));
|
mailboxDashBoardController.openComposer(ComposerArguments.fromEmailAddress(emailAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
void openAttachmentList(BuildContext context, List<Attachment> attachments) {
|
void openAttachmentList(BuildContext context, List<Attachment> attachments) {
|
||||||
@@ -1923,7 +1924,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}) {
|
}) {
|
||||||
log('SingleEmailController::_handleUnsubscribeMailByMailtoLink:mailtoLinks: $mailtoLinks');
|
log('SingleEmailController::_handleUnsubscribeMailByMailtoLink:mailtoLinks: $mailtoLinks');
|
||||||
final navigationRouter = RouteUtils.generateNavigationRouterFromMailtoLink(mailtoLinks.first);
|
final navigationRouter = RouteUtils.generateNavigationRouterFromMailtoLink(mailtoLinks.first);
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.fromUnsubscribeMailtoLink(
|
ComposerArguments.fromUnsubscribeMailtoLink(
|
||||||
listEmailAddress: navigationRouter.listEmailAddress,
|
listEmailAddress: navigationRouter.listEmailAddress,
|
||||||
subject: navigationRouter.subject,
|
subject: navigationRouter.subject,
|
||||||
@@ -2148,7 +2149,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
void _editAsNewEmail(PresentationEmail presentationEmail) {
|
void _editAsNewEmail(PresentationEmail presentationEmail) {
|
||||||
if (accountId == null || session == null) return;
|
if (accountId == null || session == null) return;
|
||||||
|
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.editAsNewEmail(presentationEmail),
|
ComposerArguments.editAsNewEmail(presentationEmail),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -2436,7 +2437,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
final currentUserEmail = mailboxDashBoardController.getOwnEmailAddress();
|
final currentUserEmail = mailboxDashBoardController.getOwnEmailAddress();
|
||||||
final listEmailAddressMailTo = listEmailAddressAttendees.removeInvalidEmails(currentUserEmail);
|
final listEmailAddressMailTo = listEmailAddressAttendees.removeInvalidEmails(currentUserEmail);
|
||||||
log('SingleEmailController::handleMailToAttendees: listEmailAddressMailTo = $listEmailAddressMailTo');
|
log('SingleEmailController::handleMailToAttendees: listEmailAddressMailTo = $listEmailAddressMailTo');
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.fromMailtoUri(listEmailAddress: listEmailAddressMailTo)
|
ComposerArguments.fromMailtoUri(listEmailAddress: listEmailAddressMailTo)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_ma
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_message.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_message.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_queue_handler.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_queue_handler.dart';
|
||||||
@@ -697,7 +698,7 @@ class MailboxController extends BaseMailboxController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_navigationRouter?.routeName == AppRoutes.mailtoURL) {
|
if (_navigationRouter?.routeName == AppRoutes.mailtoURL) {
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.fromMailtoUri(
|
ComposerArguments.fromMailtoUri(
|
||||||
listEmailAddress: _navigationRouter?.listEmailAddress,
|
listEmailAddress: _navigationRouter?.listEmailAddress,
|
||||||
cc: _navigationRouter?.cc,
|
cc: _navigationRouter?.cc,
|
||||||
|
|||||||
@@ -196,7 +196,6 @@ class MailboxDashBoardBindings extends BaseBindings {
|
|||||||
Get.find<GetRestoredDeletedMessageInterator>(),
|
Get.find<GetRestoredDeletedMessageInterator>(),
|
||||||
Get.find<RemoveComposerCacheOnWebInteractor>(),
|
Get.find<RemoveComposerCacheOnWebInteractor>(),
|
||||||
Get.find<GetAllIdentitiesInteractor>(),
|
Get.find<GetAllIdentitiesInteractor>(),
|
||||||
Get.find<ComposerManager>(),
|
|
||||||
));
|
));
|
||||||
Get.put(AdvancedFilterController());
|
Get.put(AdvancedFilterController());
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-103
@@ -40,8 +40,6 @@ import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.da
|
|||||||
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
|
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
|
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view.dart';
|
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/list_identities_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/list_identities_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/manager/composer_manager.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/manager/composer_manager.dart';
|
||||||
@@ -71,7 +69,6 @@ import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_int
|
|||||||
import 'package:tmail_ui_user/features/email/domain/usecases/restore_deleted_message_interactor.dart';
|
import 'package:tmail_ui_user/features/email/domain/usecases/restore_deleted_message_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/usecases/unsubscribe_email_interactor.dart';
|
import 'package:tmail_ui_user/features/email/domain/usecases/unsubscribe_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/extensions/composer_arguments_extension.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_arguments.dart';
|
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_arguments.dart';
|
||||||
@@ -104,6 +101,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_preferences_setting_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_preferences_setting_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
|
||||||
@@ -190,6 +188,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
final AppGridDashboardController appGridDashboardController = Get.find<AppGridDashboardController>();
|
final AppGridDashboardController appGridDashboardController = Get.find<AppGridDashboardController>();
|
||||||
final SpamReportController spamReportController = Get.find<SpamReportController>();
|
final SpamReportController spamReportController = Get.find<SpamReportController>();
|
||||||
final NetworkConnectionController networkConnectionController = Get.find<NetworkConnectionController>();
|
final NetworkConnectionController networkConnectionController = Get.find<NetworkConnectionController>();
|
||||||
|
final ComposerManager composerManager = Get.find<ComposerManager>();
|
||||||
|
|
||||||
final MoveToMailboxInteractor _moveToMailboxInteractor;
|
final MoveToMailboxInteractor _moveToMailboxInteractor;
|
||||||
final DeleteEmailPermanentlyInteractor _deleteEmailPermanentlyInteractor;
|
final DeleteEmailPermanentlyInteractor _deleteEmailPermanentlyInteractor;
|
||||||
@@ -216,7 +215,6 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
final GetRestoredDeletedMessageInterator _getRestoredDeletedMessageInteractor;
|
final GetRestoredDeletedMessageInterator _getRestoredDeletedMessageInteractor;
|
||||||
final RemoveComposerCacheOnWebInteractor _removeComposerCacheOnWebInteractor;
|
final RemoveComposerCacheOnWebInteractor _removeComposerCacheOnWebInteractor;
|
||||||
final GetAllIdentitiesInteractor _getAllIdentitiesInteractor;
|
final GetAllIdentitiesInteractor _getAllIdentitiesInteractor;
|
||||||
final ComposerManager _composerManager;
|
|
||||||
|
|
||||||
GetAllVacationInteractor? _getAllVacationInteractor;
|
GetAllVacationInteractor? _getAllVacationInteractor;
|
||||||
UpdateVacationInteractor? _updateVacationInteractor;
|
UpdateVacationInteractor? _updateVacationInteractor;
|
||||||
@@ -308,7 +306,6 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
this._getRestoredDeletedMessageInteractor,
|
this._getRestoredDeletedMessageInteractor,
|
||||||
this._removeComposerCacheOnWebInteractor,
|
this._removeComposerCacheOnWebInteractor,
|
||||||
this._getAllIdentitiesInteractor,
|
this._getAllIdentitiesInteractor,
|
||||||
this._composerManager,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -318,7 +315,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
_registerDeepLinks();
|
_registerDeepLinks();
|
||||||
}
|
}
|
||||||
_registerStreamListener();
|
_registerStreamListener();
|
||||||
BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard);
|
BackButtonInterceptor.add(onBackButtonInterceptor, name: AppRoutes.dashboard);
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
await applicationManager.initUserAgent();
|
await applicationManager.initUserAgent();
|
||||||
});
|
});
|
||||||
@@ -436,8 +433,8 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
} else if (success is GetAllIdentitiesSuccess) {
|
} else if (success is GetAllIdentitiesSuccess) {
|
||||||
_handleGetAllIdentitiesSuccess(success);
|
_handleGetAllIdentitiesSuccess(success);
|
||||||
} else if (success is GetComposerCacheSuccess) {
|
} else if (success is GetComposerCacheSuccess) {
|
||||||
_removeComposerCacheOnWeb();
|
removeComposerCacheOnWeb();
|
||||||
goToComposer(ComposerArguments.fromSessionStorageBrowser(success.composerCache));
|
openComposer(ComposerArguments.fromSessionStorageBrowser(success.composerCache));
|
||||||
} else if (success is GetIdentityCacheOnWebSuccess) {
|
} else if (success is GetIdentityCacheOnWebSuccess) {
|
||||||
goToSettings();
|
goToSettings();
|
||||||
} else if (success is MarkAsStarEmailSuccess) {
|
} else if (success is MarkAsStarEmailSuccess) {
|
||||||
@@ -489,7 +486,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
SmartDialog.dismiss();
|
SmartDialog.dismiss();
|
||||||
|
|
||||||
if (failure is SendEmailFailure && exception is NoNetworkError) {
|
if (failure is SendEmailFailure && exception is NoNetworkError) {
|
||||||
_storeSendingEmailInCaseOfSendingFailureInMobile(failure);
|
storeSendingEmailInCaseOfSendingFailureInMobile(failure);
|
||||||
} else {
|
} else {
|
||||||
super.handleUrgentExceptionOnMobile(failure: failure, exception: exception);
|
super.handleUrgentExceptionOnMobile(failure: failure, exception: exception);
|
||||||
}
|
}
|
||||||
@@ -538,17 +535,17 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
case SharedMediaType.image:
|
case SharedMediaType.image:
|
||||||
case SharedMediaType.video:
|
case SharedMediaType.video:
|
||||||
case SharedMediaType.file:
|
case SharedMediaType.file:
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromFileShared([sharedMediaFile]),
|
ComposerArguments.fromFileShared([sharedMediaFile]),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case SharedMediaType.text:
|
case SharedMediaType.text:
|
||||||
if (sharedMediaFile.mimeType == Constant.textVCardMimeType) {
|
if (sharedMediaFile.mimeType == Constant.textVCardMimeType) {
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromFileShared([sharedMediaFile]),
|
ComposerArguments.fromFileShared([sharedMediaFile]),
|
||||||
);
|
);
|
||||||
} else if (sharedMediaFile.mimeType == Constant.textPlainMimeType) {
|
} else if (sharedMediaFile.mimeType == Constant.textPlainMimeType) {
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromContentShared(sharedMediaFile.path.trim()),
|
ComposerArguments.fromContentShared(sharedMediaFile.path.trim()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -556,7 +553,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
case SharedMediaType.url:
|
case SharedMediaType.url:
|
||||||
if (sharedMediaFile.path.startsWith(RouteUtils.mailtoPrefix)) {
|
if (sharedMediaFile.path.startsWith(RouteUtils.mailtoPrefix)) {
|
||||||
final navigationRouter = RouteUtils.generateNavigationRouterFromMailtoLink(sharedMediaFile.path);
|
final navigationRouter = RouteUtils.generateNavigationRouterFromMailtoLink(sharedMediaFile.path);
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromMailtoUri(
|
ComposerArguments.fromMailtoUri(
|
||||||
listEmailAddress: navigationRouter.listEmailAddress,
|
listEmailAddress: navigationRouter.listEmailAddress,
|
||||||
subject: navigationRouter.subject,
|
subject: navigationRouter.subject,
|
||||||
@@ -567,7 +564,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
break;
|
break;
|
||||||
case SharedMediaType.mailto:
|
case SharedMediaType.mailto:
|
||||||
if (EmailUtils.isEmailAddressValid(sharedMediaFile.path)) {
|
if (EmailUtils.isEmailAddressValid(sharedMediaFile.path)) {
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromEmailAddress(
|
ComposerArguments.fromEmailAddress(
|
||||||
EmailAddress(null, sharedMediaFile.path),
|
EmailAddress(null, sharedMediaFile.path),
|
||||||
),
|
),
|
||||||
@@ -578,7 +575,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
goToComposer(
|
openComposer(
|
||||||
ComposerArguments.fromFileShared(listSharedMediaFile),
|
ComposerArguments.fromFileShared(listSharedMediaFile),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1684,27 +1681,6 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
emailUIAction.value = newAction;
|
emailUIAction.value = newAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> closeComposerOnWeb({
|
|
||||||
required String? composerId,
|
|
||||||
dynamic result,
|
|
||||||
}) async {
|
|
||||||
if (composerId != null) {
|
|
||||||
_composerManager.removeComposer(composerId);
|
|
||||||
}
|
|
||||||
if (!_composerManager.hasComposer) {
|
|
||||||
twakeAppManager.setHasComposer(false);
|
|
||||||
}
|
|
||||||
if (result is SendingEmailArguments) {
|
|
||||||
handleSendEmailAction(result);
|
|
||||||
} else if (result is SendEmailSuccess ||
|
|
||||||
result is SaveEmailAsDraftsSuccess ||
|
|
||||||
result is UpdateEmailDraftsSuccess) {
|
|
||||||
consumeState(Stream.value(Right<Failure, Success>(result)));
|
|
||||||
}
|
|
||||||
|
|
||||||
await _removeComposerCacheOnWeb();
|
|
||||||
}
|
|
||||||
|
|
||||||
void dispatchRoute(DashboardRoutes route) {
|
void dispatchRoute(DashboardRoutes route) {
|
||||||
log('MailboxDashBoardController::dispatchRoute(): $route');
|
log('MailboxDashBoardController::dispatchRoute(): $route');
|
||||||
dashboardRoute.value = route;
|
dashboardRoute.value = route;
|
||||||
@@ -1821,67 +1797,6 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void goToComposer(ComposerArguments arguments) {
|
|
||||||
final argumentsWithIdentity = arguments.withIdentity(
|
|
||||||
identities: List.from(_identities ?? []),
|
|
||||||
selectedIdentityId: arguments.selectedIdentityId);
|
|
||||||
|
|
||||||
if (PlatformInfo.isWeb) {
|
|
||||||
_openComposerOnWeb(argumentsWithIdentity);
|
|
||||||
} else {
|
|
||||||
_openComposerOnMobile(argumentsWithIdentity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _openComposerOnWeb(ComposerArguments composerArguments) {
|
|
||||||
if (_composerManager.composers.isNotEmpty) return;
|
|
||||||
|
|
||||||
_composerManager.addComposer(composerArguments);
|
|
||||||
twakeAppManager.setHasComposer(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _openComposerOnMobile(ComposerArguments arguments) async {
|
|
||||||
BackButtonInterceptor.removeByName(AppRoutes.dashboard);
|
|
||||||
|
|
||||||
bool isTabletPlatform = currentContext != null
|
|
||||||
&& !responsiveUtils.isScreenWithShortestSide(currentContext!);
|
|
||||||
dynamic result;
|
|
||||||
|
|
||||||
if (isTabletPlatform) {
|
|
||||||
if (PlatformInfo.isIOS) {
|
|
||||||
dispatchEmailUIAction(HideEmailContentViewAction());
|
|
||||||
}
|
|
||||||
|
|
||||||
result = await Get.to(
|
|
||||||
() => const ComposerView(),
|
|
||||||
binding: ComposerBindings(),
|
|
||||||
opaque: false,
|
|
||||||
arguments: arguments,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (PlatformInfo.isIOS) {
|
|
||||||
await Future.delayed(
|
|
||||||
const Duration(milliseconds: 200),
|
|
||||||
() => dispatchEmailUIAction(ShowEmailContentViewAction()),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
result = await push(AppRoutes.composer, arguments: arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard);
|
|
||||||
|
|
||||||
if (result is SendingEmailArguments) {
|
|
||||||
handleSendEmailAction(result);
|
|
||||||
} else if (result is SendEmailSuccess ||
|
|
||||||
result is SaveEmailAsDraftsSuccess ||
|
|
||||||
result is UpdateEmailDraftsSuccess) {
|
|
||||||
consumeState(Stream.value(Right<Failure, Success>(result)));
|
|
||||||
} else if (validateSendingEmailFailedWhenNetworkIsLostOnMobile(result)) {
|
|
||||||
_storeSendingEmailInCaseOfSendingFailureInMobile(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void clearDashBoardAction() {
|
void clearDashBoardAction() {
|
||||||
dashBoardAction.value = DashBoardAction.idle;
|
dashBoardAction.value = DashBoardAction.idle;
|
||||||
}
|
}
|
||||||
@@ -1905,7 +1820,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard);
|
BackButtonInterceptor.add(onBackButtonInterceptor, name: AppRoutes.dashboard);
|
||||||
|
|
||||||
if (result is Tuple2) {
|
if (result is Tuple2) {
|
||||||
if (result.value1 is VacationResponse) {
|
if (result.value1 is VacationResponse) {
|
||||||
@@ -1971,7 +1886,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard);
|
BackButtonInterceptor.add(onBackButtonInterceptor, name: AppRoutes.dashboard);
|
||||||
|
|
||||||
if (result is Tuple2) {
|
if (result is Tuple2) {
|
||||||
if (result.value1 is VacationResponse) {
|
if (result.value1 is VacationResponse) {
|
||||||
@@ -2395,7 +2310,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
void _handleSendEmailFailure(SendEmailFailure failure) {
|
void _handleSendEmailFailure(SendEmailFailure failure) {
|
||||||
logError('MailboxDashBoardController::_handleSendEmailFailure():failure: $failure');
|
logError('MailboxDashBoardController::_handleSendEmailFailure():failure: $failure');
|
||||||
if (PlatformInfo.isMobile) {
|
if (PlatformInfo.isMobile) {
|
||||||
_storeSendingEmailInCaseOfSendingFailureInMobile(failure);
|
storeSendingEmailInCaseOfSendingFailureInMobile(failure);
|
||||||
}
|
}
|
||||||
if (currentContext == null) {
|
if (currentContext == null) {
|
||||||
clearState();
|
clearState();
|
||||||
@@ -2529,7 +2444,7 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _storeSendingEmailInCaseOfSendingFailureInMobile(SendEmailFailure failure) {
|
void storeSendingEmailInCaseOfSendingFailureInMobile(SendEmailFailure failure) {
|
||||||
if (failure.session != null &&
|
if (failure.session != null &&
|
||||||
failure.accountId != null &&
|
failure.accountId != null &&
|
||||||
failure.emailRequest != null
|
failure.emailRequest != null
|
||||||
@@ -3003,8 +2918,8 @@ class MailboxDashBoardController extends ReloadableController
|
|||||||
|
|
||||||
bool get _isDialogViewOpen => Get.isOverlaysOpen == true;
|
bool get _isDialogViewOpen => Get.isOverlaysOpen == true;
|
||||||
|
|
||||||
bool _onBackButtonInterceptor(bool stopDefaultButtonEvent, RouteInfo routeInfo) {
|
bool onBackButtonInterceptor(bool stopDefaultButtonEvent, RouteInfo routeInfo) {
|
||||||
log('MailboxDashBoardController::_onBackButtonInterceptor:currentRoute: ${Get.currentRoute} | _isDialogViewOpen: $_isDialogViewOpen');
|
log('MailboxDashBoardController::onBackButtonInterceptor:currentRoute: ${Get.currentRoute} | _isDialogViewOpen: $_isDialogViewOpen');
|
||||||
if (_isDialogViewOpen) {
|
if (_isDialogViewOpen) {
|
||||||
popBack();
|
popBack();
|
||||||
_replaceBrowserHistory();
|
_replaceBrowserHistory();
|
||||||
|
|||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
|
||||||
|
import 'package:back_button_interceptor/back_button_interceptor.dart';
|
||||||
|
import 'package:core/utils/platform_info.dart';
|
||||||
|
import 'package:dartz/dartz.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/presentation/composer_view.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/extensions/composer_arguments_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
|
extension OpenAndCloseComposerExtension on MailboxDashBoardController {
|
||||||
|
void openComposer(ComposerArguments arguments) {
|
||||||
|
final argumentsWithIdentity = arguments.withIdentity(
|
||||||
|
identities: List.from(listIdentities),
|
||||||
|
selectedIdentityId: arguments.selectedIdentityId,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
_openComposerOnWeb(argumentsWithIdentity);
|
||||||
|
} else {
|
||||||
|
_openComposerOnMobile(argumentsWithIdentity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _openComposerOnWeb(ComposerArguments composerArguments) {
|
||||||
|
composerManager.addComposer(composerArguments);
|
||||||
|
if (!twakeAppManager.hasComposer) {
|
||||||
|
twakeAppManager.setHasComposer(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _openComposerOnMobile(ComposerArguments arguments) async {
|
||||||
|
BackButtonInterceptor.removeByName(AppRoutes.dashboard);
|
||||||
|
|
||||||
|
bool isTabletPlatform = currentContext != null
|
||||||
|
&& !responsiveUtils.isScreenWithShortestSide(currentContext!);
|
||||||
|
|
||||||
|
dynamic result;
|
||||||
|
if (isTabletPlatform) {
|
||||||
|
if (PlatformInfo.isIOS) {
|
||||||
|
dispatchEmailUIAction(HideEmailContentViewAction());
|
||||||
|
}
|
||||||
|
|
||||||
|
result = await Get.to(
|
||||||
|
() => const ComposerView(),
|
||||||
|
binding: ComposerBindings(),
|
||||||
|
opaque: false,
|
||||||
|
arguments: arguments,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (PlatformInfo.isIOS) {
|
||||||
|
await Future.delayed(
|
||||||
|
const Duration(milliseconds: 200),
|
||||||
|
() => dispatchEmailUIAction(ShowEmailContentViewAction()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result = await push(AppRoutes.composer, arguments: arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
BackButtonInterceptor.add(onBackButtonInterceptor, name: AppRoutes.dashboard);
|
||||||
|
|
||||||
|
_handleResultAfterCloseComposer(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void closeComposer({
|
||||||
|
dynamic result,
|
||||||
|
bool closeOverlays = false,
|
||||||
|
String? composerId,
|
||||||
|
}) {
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
if (closeOverlays) {
|
||||||
|
popBack();
|
||||||
|
}
|
||||||
|
closeComposerOnWeb(composerId: composerId, result: result);
|
||||||
|
} else {
|
||||||
|
popBack(result: result, closeOverlays: closeOverlays);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> closeComposerOnWeb({
|
||||||
|
required String? composerId,
|
||||||
|
dynamic result,
|
||||||
|
}) async {
|
||||||
|
if (composerId != null) {
|
||||||
|
composerManager.removeComposer(composerId);
|
||||||
|
}
|
||||||
|
if (!composerManager.hasComposer) {
|
||||||
|
twakeAppManager.setHasComposer(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
_handleResultAfterCloseComposer(result);
|
||||||
|
|
||||||
|
await removeComposerCacheOnWeb();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handleResultAfterCloseComposer(dynamic result) {
|
||||||
|
if (result is SendingEmailArguments) {
|
||||||
|
handleSendEmailAction(result);
|
||||||
|
} else if (result is SendEmailSuccess ||
|
||||||
|
result is SaveEmailAsDraftsSuccess ||
|
||||||
|
result is UpdateEmailDraftsSuccess) {
|
||||||
|
consumeState(Stream.value(Right(result)));
|
||||||
|
} else if (validateSendingEmailFailedWhenNetworkIsLostOnMobile(result)) {
|
||||||
|
storeSendingEmailInCaseOfSendingFailureInMobile(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@ import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions
|
|||||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/email/domain/state/delete_sending_email_s
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/offline_mode/model/sending_state.dart';
|
import 'package:tmail_ui_user/features/offline_mode/model/sending_state.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/domain/extensions/list_sending_email_extension.dart';
|
import 'package:tmail_ui_user/features/sending_queue/domain/extensions/list_sending_email_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/domain/extensions/sending_email_extension.dart';
|
import 'package:tmail_ui_user/features/sending_queue/domain/extensions/sending_email_extension.dart';
|
||||||
@@ -230,7 +231,7 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
|||||||
|
|
||||||
void _editSendingEmailAction(SendingEmail sendingEmail) {
|
void _editSendingEmailAction(SendingEmail sendingEmail) {
|
||||||
disableSelectionMode();
|
disableSelectionMode();
|
||||||
dashboardController.goToComposer(ComposerArguments.fromSendingEmail(sendingEmail));
|
dashboardController.openComposer(ComposerArguments.fromSendingEmail(sendingEmail));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _resendSendingEmailAction(List<SendingEmail> listSendingEmails) async {
|
void _resendSendingEmailAction(List<SendingEmail> listSendingEmails) async {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:model/mailbox/select_mode.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
|
import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/presentation/extensions/list_sending_email_extension.dart';
|
import 'package:tmail_ui_user/features/sending_queue/presentation/extensions/list_sending_email_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/presentation/sending_queue_controller.dart';
|
import 'package:tmail_ui_user/features/sending_queue/presentation/sending_queue_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart';
|
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart';
|
||||||
@@ -98,14 +99,14 @@ class SendingQueueView extends GetWidget<SendingQueueController> with AppLoaderM
|
|||||||
if (controller.isAllUnSelected) {
|
if (controller.isAllUnSelected) {
|
||||||
return ComposeFloatingButton(
|
return ComposeFloatingButton(
|
||||||
scrollController: controller.listSendingEmailController,
|
scrollController: controller.listSendingEmailController,
|
||||||
onTap: () => controller.dashboardController.goToComposer(ComposerArguments())
|
onTap: () => controller.dashboardController.openComposer(ComposerArguments())
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return Container(
|
return Container(
|
||||||
padding: const EdgeInsets.only(bottom: 70),
|
padding: const EdgeInsets.only(bottom: 70),
|
||||||
child: ComposeFloatingButton(
|
child: ComposeFloatingButton(
|
||||||
scrollController: controller.listSendingEmailController,
|
scrollController: controller.listSendingEmailController,
|
||||||
onTap: () => controller.dashboardController.goToComposer(ComposerArguments())
|
onTap: () => controller.dashboardController.openComposer(ComposerArguments())
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_reques
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
@@ -39,11 +40,11 @@ mixin EmailActionController {
|
|||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
void editDraftEmail(PresentationEmail presentationEmail) {
|
void editDraftEmail(PresentationEmail presentationEmail) {
|
||||||
mailboxDashBoardController.goToComposer(ComposerArguments.editDraftEmail(presentationEmail));
|
mailboxDashBoardController.openComposer(ComposerArguments.editDraftEmail(presentationEmail));
|
||||||
}
|
}
|
||||||
|
|
||||||
void editAsNewEmail(PresentationEmail presentationEmail) {
|
void editAsNewEmail(PresentationEmail presentationEmail) {
|
||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.openComposer(
|
||||||
ComposerArguments.editAsNewEmail(presentationEmail),
|
ComposerArguments.editAsNewEmail(presentationEmail),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart'
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recover_deleted_message_loading_banner_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recover_deleted_message_loading_banner_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||||
@@ -295,7 +296,7 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
: EdgeInsets.zero,
|
: EdgeInsets.zero,
|
||||||
child: ComposeFloatingButton(
|
child: ComposeFloatingButton(
|
||||||
scrollController: controller.listEmailController,
|
scrollController: controller.listEmailController,
|
||||||
onTap: () => controller.mailboxDashBoardController.goToComposer(ComposerArguments())
|
onTap: () => controller.mailboxDashBoardController.openComposer(ComposerArguments())
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
-1
@@ -353,7 +353,6 @@ void main() {
|
|||||||
getRestoredDeletedMessageInteractor,
|
getRestoredDeletedMessageInteractor,
|
||||||
removeComposerCacheOnWebInteractor,
|
removeComposerCacheOnWebInteractor,
|
||||||
getAllIdentitiesInteractor,
|
getAllIdentitiesInteractor,
|
||||||
composerManager,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
-1
@@ -352,7 +352,6 @@ void main() {
|
|||||||
getRestoredDeletedMessageInteractor,
|
getRestoredDeletedMessageInteractor,
|
||||||
removeComposerCacheOnWebInteractor,
|
removeComposerCacheOnWebInteractor,
|
||||||
getAllIdentitiesInteractor,
|
getAllIdentitiesInteractor,
|
||||||
composerManager,
|
|
||||||
);
|
);
|
||||||
Get.put(mailboxDashboardController);
|
Get.put(mailboxDashboardController);
|
||||||
mailboxDashboardController.onReady();
|
mailboxDashboardController.onReady();
|
||||||
|
|||||||
Reference in New Issue
Block a user