diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index e7af4fff4..f110c1541 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -2232,7 +2232,12 @@ class MailboxDashBoardController extends ReloadableController { return true; case DashboardRoutes.thread: if (PlatformInfo.isMobile) { - return false; + if (selectedMailbox.value?.isInbox == true) { + return false; + } else { + openDefaultMailbox(); + return true; + } } if (searchController.isSearchEmailRunning) { dispatchMailboxUIAction(SystemBackToInboxAction()); @@ -2240,6 +2245,12 @@ class MailboxDashBoardController extends ReloadableController { pushAndPopAll(AppRoutes.home); } return true; + case DashboardRoutes.sendingQueue: + if (PlatformInfo.isMobile) { + openDefaultMailbox(); + return true; + } + return false; case DashboardRoutes.searchEmail: dispatchAction(CloseSearchEmailViewAction()); return true; diff --git a/lib/features/sending_queue/presentation/sending_queue_controller.dart b/lib/features/sending_queue/presentation/sending_queue_controller.dart index 303fbfc22..6eed34be2 100644 --- a/lib/features/sending_queue/presentation/sending_queue_controller.dart +++ b/lib/features/sending_queue/presentation/sending_queue_controller.dart @@ -1,7 +1,7 @@ -import 'package:core/utils/app_logger.dart'; import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/state/success.dart'; +import 'package:core/utils/app_logger.dart'; import 'package:core/utils/platform_info.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -24,19 +24,19 @@ 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/sending_email_extension.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart'; +import 'package:tmail_ui_user/features/sending_queue/domain/state/delete_multiple_sending_email_state.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/state/get_stored_sending_email_state.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/state/update_multiple_sending_email_state.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/state/update_sending_email_state.dart'; +import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_multiple_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/get_stored_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/update_multiple_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/update_sending_email_interactor.dart'; -import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart'; -import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_isolate_manager.dart'; -import 'package:tmail_ui_user/features/sending_queue/domain/state/delete_multiple_sending_email_state.dart'; -import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_multiple_sending_email_interactor.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/model/sending_email_action_type.dart'; +import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart'; +import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_isolate_manager.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -367,13 +367,6 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi ); } - Future backButtonPressedCallbackAction(BuildContext context) async { - if (PlatformInfo.isMobile) { - dashboardController.openDefaultMailbox(); - } - return false; - } - @override void handleSuccessViewState(Success success) { super.handleSuccessViewState(success); diff --git a/lib/features/sending_queue/presentation/sending_queue_view.dart b/lib/features/sending_queue/presentation/sending_queue_view.dart index b995a0ad5..6577c25e6 100644 --- a/lib/features/sending_queue/presentation/sending_queue_view.dart +++ b/lib/features/sending_queue/presentation/sending_queue_view.dart @@ -2,13 +2,13 @@ import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/utils/platform_info.dart'; import 'package:flutter/material.dart'; +import 'package:get/get.dart'; 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/widget/compose_floating_button.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.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:get/get.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/banner_message_sending_queue_widget.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/bottom_bar_sending_queue_widget.dart'; @@ -20,49 +20,46 @@ class SendingQueueView extends GetWidget with AppLoaderM @override Widget build(BuildContext context) { - return WillPopScope( - onWillPop: () => controller.backButtonPressedCallbackAction.call(context), - child: Scaffold( - backgroundColor: Colors.white, - body: SafeArea( - child: Column( - children: [ + return Scaffold( + backgroundColor: Colors.white, + body: SafeArea( + child: Column( + children: [ + Obx(() { + return AppBarSendingQueueWidget( + listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(), + onOpenMailboxMenu: controller.openMailboxMenu, + onBackAction: controller.disableSelectionMode, + selectMode: controller.selectionState.value, + ); + }), + const Divider(color: AppColor.colorDividerComposer, height: 1), + if (PlatformInfo.isIOS) + const BannerMessageSendingQueueWidget() + else Obx(() { - return AppBarSendingQueueWidget( - listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(), - onOpenMailboxMenu: controller.openMailboxMenu, - onBackAction: controller.disableSelectionMode, - selectMode: controller.selectionState.value, - ); - }), - const Divider(color: AppColor.colorDividerComposer, height: 1), - if (PlatformInfo.isIOS) - const BannerMessageSendingQueueWidget() - else - Obx(() { - if (!controller.isConnectedNetwork) { - return const BannerMessageSendingQueueWidget(); - } else { - return const SizedBox.shrink(); - } - }), - Expanded(child: _buildListSendingEmails(context)), - Obx(() { - if (controller.isAllUnSelected) { - return const SizedBox.shrink(); + if (!controller.isConnectedNetwork) { + return const BannerMessageSendingQueueWidget(); } else { - return BottomBarSendingQueueWidget( - listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(), - isConnectedNetwork: controller.isConnectedNetwork, - onHandleSendingEmailActionType: (actionType, listSendingEmails) => controller.handleSendingEmailActionType(context, actionType, listSendingEmails), - ); + return const SizedBox.shrink(); } }), - ] - ), + Expanded(child: _buildListSendingEmails(context)), + Obx(() { + if (controller.isAllUnSelected) { + return const SizedBox.shrink(); + } else { + return BottomBarSendingQueueWidget( + listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(), + isConnectedNetwork: controller.isConnectedNetwork, + onHandleSendingEmailActionType: (actionType, listSendingEmails) => controller.handleSendingEmailActionType(context, actionType, listSendingEmails), + ); + } + }), + ] ), - floatingActionButton: _buildFloatingButtonCompose(), ), + floatingActionButton: _buildFloatingButtonCompose(), ); }