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;
|
return true;
|
||||||
case DashboardRoutes.thread:
|
case DashboardRoutes.thread:
|
||||||
if (PlatformInfo.isMobile) {
|
if (PlatformInfo.isMobile) {
|
||||||
return false;
|
if (selectedMailbox.value?.isInbox == true) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
openDefaultMailbox();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (searchController.isSearchEmailRunning) {
|
if (searchController.isSearchEmailRunning) {
|
||||||
dispatchMailboxUIAction(SystemBackToInboxAction());
|
dispatchMailboxUIAction(SystemBackToInboxAction());
|
||||||
@@ -2240,6 +2245,12 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
pushAndPopAll(AppRoutes.home);
|
pushAndPopAll(AppRoutes.home);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
case DashboardRoutes.sendingQueue:
|
||||||
|
if (PlatformInfo.isMobile) {
|
||||||
|
openDefaultMailbox();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
case DashboardRoutes.searchEmail:
|
case DashboardRoutes.searchEmail:
|
||||||
dispatchAction(CloseSearchEmailViewAction());
|
dispatchAction(CloseSearchEmailViewAction());
|
||||||
return true;
|
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/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/state/success.dart';
|
import 'package:core/presentation/state/success.dart';
|
||||||
|
import 'package:core/utils/app_logger.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.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/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';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.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/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_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/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/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/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_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/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/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_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/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.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
|
@override
|
||||||
void handleSuccessViewState(Success success) {
|
void handleSuccessViewState(Success success) {
|
||||||
super.handleSuccessViewState(success);
|
super.handleSuccessViewState(success);
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
import 'package:model/mailbox/select_mode.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/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/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: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/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/banner_message_sending_queue_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/bottom_bar_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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return WillPopScope(
|
return Scaffold(
|
||||||
onWillPop: () => controller.backButtonPressedCallbackAction.call(context),
|
backgroundColor: Colors.white,
|
||||||
child: Scaffold(
|
body: SafeArea(
|
||||||
backgroundColor: Colors.white,
|
child: Column(
|
||||||
body: SafeArea(
|
children: [
|
||||||
child: Column(
|
Obx(() {
|
||||||
children: [
|
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(() {
|
Obx(() {
|
||||||
return AppBarSendingQueueWidget(
|
if (!controller.isConnectedNetwork) {
|
||||||
listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(),
|
return const BannerMessageSendingQueueWidget();
|
||||||
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();
|
|
||||||
} else {
|
} else {
|
||||||
return BottomBarSendingQueueWidget(
|
return const SizedBox.shrink();
|
||||||
listSendingEmailSelected: controller.dashboardController.listSendingEmails.listSelected(),
|
|
||||||
isConnectedNetwork: controller.isConnectedNetwork,
|
|
||||||
onHandleSendingEmailActionType: (actionType, listSendingEmails) => controller.handleSendingEmailActionType(context, actionType, listSendingEmails),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
]
|
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