TF-1831 Handle system back button in dialog view

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit dc93aa9961987315bd1b478aecda530049b75f02)
This commit is contained in:
dab246
2023-12-10 02:53:23 +07:00
committed by Dat H. Pham
parent 9e5e6af9ce
commit fbb43e3bb0
15 changed files with 286 additions and 254 deletions
+31 -34
View File
@@ -338,36 +338,34 @@ abstract class BaseMailboxController extends BaseController {
)))
).show(context);
} else {
showDialog(
context: context,
Get.dialog(
PointerInterceptor(child: (EditTextDialogBuilder()
..key(const Key('rename_mailbox_dialog'))
..title(AppLocalizations.of(context).renameFolder)
..cancelText(AppLocalizations.of(context).cancel)
..setErrorString((value) {
return verifyMailboxNameAction(
context,
value,
listMailboxName,
MailboxActions.rename
);
})
..setTextController(TextEditingController.fromValue(
TextEditingValue(
text: presentationMailbox.name?.name ?? '',
selection: TextSelection(
baseOffset: 0,
extentOffset: presentationMailbox.name?.name.length ?? 0
)
))
)
..onConfirmButtonAction(
AppLocalizations.of(context).rename,
(value) => onRenameMailboxAction(presentationMailbox, MailboxName(value))
)
).build()),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (context) =>
PointerInterceptor(child: (EditTextDialogBuilder()
..key(const Key('rename_mailbox_dialog'))
..title(AppLocalizations.of(context).renameFolder)
..cancelText(AppLocalizations.of(context).cancel)
..setErrorString((value) {
return verifyMailboxNameAction(
context,
value,
listMailboxName,
MailboxActions.rename
);
})
..setTextController(TextEditingController.fromValue(
TextEditingValue(
text: presentationMailbox.name?.name ?? '',
selection: TextSelection(
baseOffset: 0,
extentOffset: presentationMailbox.name?.name.length ?? 0
)
))
)
..onConfirmButtonAction(
AppLocalizations.of(context).rename,
(value) => onRenameMailboxAction(presentationMailbox, MailboxName(value))
)
).build())
);
}
}
@@ -418,10 +416,8 @@ abstract class BaseMailboxController extends BaseController {
..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
).show();
} else {
showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (context) => PointerInterceptor(
Get.dialog(
PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths)
..key(const Key('confirm_dialog_delete_mailbox'))
..title(AppLocalizations.of(context).deleteFolders)
@@ -436,7 +432,8 @@ abstract class BaseMailboxController extends BaseController {
..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())
).build())
).build()),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
}
@@ -74,33 +74,34 @@ mixin MailboxActionHandlerMixin {
}))
.show();
} else {
showDialog(
context: context,
Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
..key(const Key('confirm_dialog_empty_trash'))
..title(AppLocalizations.of(context).emptyTrash)
..content(AppLocalizations.of(context).emptyTrashMessageDialog)
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(popBack)
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
popBack();
if (mailbox.countTotalEmails > 0) {
dashboardController.emptyTrashFolderAction(trashFolderId: mailbox.id);
} else {
appToast.showToastWarningMessage(
context,
AppLocalizations.of(context).noEmailInYourCurrentFolder
);
}
})
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack))
.build()
),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
..key(const Key('confirm_dialog_empty_trash'))
..title(AppLocalizations.of(context).emptyTrash)
..content(AppLocalizations.of(context).emptyTrashMessageDialog)
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(popBack)
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
popBack();
if (mailbox.countTotalEmails > 0) {
dashboardController.emptyTrashFolderAction(trashFolderId: mailbox.id);
} else {
appToast.showToastWarningMessage(
context,
AppLocalizations.of(context).noEmailInYourCurrentFolder
);
}
})
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack))
.build()));
);
}
}
@@ -134,10 +135,8 @@ mixin MailboxActionHandlerMixin {
}))
.show();
} else {
showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
..key(const Key('confirm_dialog_empty_spam'))
..title(AppLocalizations.of(context).emptySpamFolder)
..content(AppLocalizations.of(context).emptySpamMessageDialog)
@@ -160,7 +159,9 @@ mixin MailboxActionHandlerMixin {
}
})
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
).build()));
).build()),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
}
}
@@ -34,10 +34,8 @@ mixin MessageDialogActionMixin {
final imagePaths = Get.find<ImagePaths>();
if (alignCenter) {
return await showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) => PointerInterceptor(
return await Get.dialog(
PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan, heightButton: 44)
..key(const Key('confirm_dialog_action'))
..title(title ?? '')
@@ -66,18 +64,14 @@ mixin MessageDialogActionMixin {
}
)
).build()
)
),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
} else {
if (responsiveUtils.isMobile(context)) {
if (showAsBottomSheet) {
return await showModalBottomSheet(
context: context,
isScrollControlled: true,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
backgroundColor: Colors.transparent,
enableDrag: true,
builder: (BuildContext context) => PointerInterceptor(
return await Get.bottomSheet(
PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths, showAsBottomSheet: true, listTextSpan: listTextSpan)
..key(const Key('confirm_dialog_action'))
..title(title ?? '')
@@ -108,7 +102,13 @@ mixin MessageDialogActionMixin {
}
)
..onCloseButtonAction(() => popBack()))
.build()));
.build()
),
isScrollControlled: true,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
backgroundColor: Colors.transparent,
enableDrag: true,
);
} else {
return (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan)
..messageText(message)
@@ -128,10 +128,8 @@ mixin MessageDialogActionMixin {
})).show();
}
} else {
return await showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) => PointerInterceptor(
return await Get.dialog(
PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan)
..key(const Key('confirm_dialog_action'))
..title(title ?? '')
@@ -161,7 +159,8 @@ mixin MessageDialogActionMixin {
)
..onCloseButtonAction(() => popBack()))
.build()
)
),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
}
@@ -9,8 +9,8 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
mixin PopupContextMenuActionMixin {
void openContextMenuAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) {
(CupertinoActionSheetBuilder(context)
void openContextMenuAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) async {
await (CupertinoActionSheetBuilder(context)
..addTiles(actionTiles)
..addCancelButton(cancelButton ?? buildCancelButton(context)))
.show();