TF-2667 Prevent close sending/saving dialog when click system back on mobile

This commit is contained in:
dab246
2024-03-22 11:20:53 +07:00
committed by Dat H. Pham
parent a16e4ff485
commit 5d502736d8
2 changed files with 74 additions and 60 deletions
@@ -826,8 +826,7 @@ class ComposerController extends BaseController with DragDropFileMixin {
required String emailContent,
CancelToken? cancelToken
}) {
return Get.dialog(
PointerInterceptor(
final childWidget = PointerInterceptor(
child: SendingMessageDialogView(
createEmailRequest: CreateEmailRequest(
session: mailboxDashBoardController.sessionCurrent!,
@@ -858,7 +857,13 @@ class ComposerController extends BaseController with DragDropFileMixin {
onCancelSendingEmailAction: _handleCancelSendingMessage,
cancelToken: cancelToken,
),
),
);
return Get.dialog(
PlatformInfo.isMobile
? PopScope(canPop: false, child: childWidget)
: childWidget,
barrierDismissible: false,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
@@ -2035,8 +2040,7 @@ class ComposerController extends BaseController with DragDropFileMixin {
EmailId? draftEmailId,
CancelToken? cancelToken,
}) {
return Get.dialog(
PointerInterceptor(
final childWidget = PointerInterceptor(
child: SavingMessageDialogView(
createEmailRequest: CreateEmailRequest(
session: mailboxDashBoardController.sessionCurrent!,
@@ -2065,7 +2069,12 @@ class ComposerController extends BaseController with DragDropFileMixin {
onCancelSavingEmailToDraftsAction: _handleCancelSavingMessageToDrafts,
cancelToken: cancelToken,
),
),
);
return Get.dialog(
PlatformInfo.isMobile
? PopScope(canPop: false, child: childWidget)
: childWidget,
barrierDismissible: false,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
@@ -1391,7 +1391,12 @@ class MailboxDashBoardController extends ReloadableController {
openComposerOverlay(arguments);
}
} else {
BackButtonInterceptor.removeByName(AppRoutes.dashboard);
final result = await push(AppRoutes.composer, arguments: arguments);
BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard);
if (result is SendingEmailArguments) {
handleSendEmailAction(result);
} else if (result is SendEmailSuccess ||