TF-1831 Handle system back button to back to the INBOX
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit 17a40a6162a1f4eb1390327662761d1a015d334a)
This commit is contained in:
+12
-1
@@ -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;
|
||||
|
||||
@@ -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<bool> backButtonPressedCallbackAction(BuildContext context) async {
|
||||
if (PlatformInfo.isMobile) {
|
||||
dashboardController.openDefaultMailbox();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
void handleSuccessViewState(Success success) {
|
||||
super.handleSuccessViewState(success);
|
||||
|
||||
@@ -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<SendingQueueController> 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(),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user