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:
@@ -30,8 +30,8 @@ class CupertinoActionSheetBuilder {
|
|||||||
_actionTiles.addAll(tiles);
|
_actionTiles.addAll(tiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
void show() {
|
Future<dynamic> show() {
|
||||||
showCupertinoModalPopup(
|
return showCupertinoModalPopup(
|
||||||
context: _context,
|
context: _context,
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
builder: (context) => PointerInterceptor(child: CupertinoActionSheet(
|
builder: (context) => PointerInterceptor(child: CupertinoActionSheet(
|
||||||
|
|||||||
@@ -338,36 +338,34 @@ abstract class BaseMailboxController extends BaseController {
|
|||||||
)))
|
)))
|
||||||
).show(context);
|
).show(context);
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: 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()),
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
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))
|
..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
||||||
).show();
|
).show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (context) => PointerInterceptor(
|
|
||||||
child: (ConfirmDialogBuilder(imagePaths)
|
child: (ConfirmDialogBuilder(imagePaths)
|
||||||
..key(const Key('confirm_dialog_delete_mailbox'))
|
..key(const Key('confirm_dialog_delete_mailbox'))
|
||||||
..title(AppLocalizations.of(context).deleteFolders)
|
..title(AppLocalizations.of(context).deleteFolders)
|
||||||
@@ -436,7 +432,8 @@ abstract class BaseMailboxController extends BaseController {
|
|||||||
..onCloseButtonAction(() => popBack())
|
..onCloseButtonAction(() => popBack())
|
||||||
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())
|
||||||
).build())
|
).build()),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,33 +74,34 @@ mixin MailboxActionHandlerMixin {
|
|||||||
}))
|
}))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: 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()
|
||||||
|
),
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
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();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
|
||||||
..key(const Key('confirm_dialog_empty_spam'))
|
..key(const Key('confirm_dialog_empty_spam'))
|
||||||
..title(AppLocalizations.of(context).emptySpamFolder)
|
..title(AppLocalizations.of(context).emptySpamFolder)
|
||||||
..content(AppLocalizations.of(context).emptySpamMessageDialog)
|
..content(AppLocalizations.of(context).emptySpamMessageDialog)
|
||||||
@@ -160,7 +159,9 @@ mixin MailboxActionHandlerMixin {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
|
||||||
).build()));
|
).build()),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -34,10 +34,8 @@ mixin MessageDialogActionMixin {
|
|||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
if (alignCenter) {
|
if (alignCenter) {
|
||||||
return await showDialog(
|
return await Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (BuildContext context) => PointerInterceptor(
|
|
||||||
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan, heightButton: 44)
|
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan, heightButton: 44)
|
||||||
..key(const Key('confirm_dialog_action'))
|
..key(const Key('confirm_dialog_action'))
|
||||||
..title(title ?? '')
|
..title(title ?? '')
|
||||||
@@ -66,18 +64,14 @@ mixin MessageDialogActionMixin {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
).build()
|
).build()
|
||||||
)
|
),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
if (responsiveUtils.isMobile(context)) {
|
if (responsiveUtils.isMobile(context)) {
|
||||||
if (showAsBottomSheet) {
|
if (showAsBottomSheet) {
|
||||||
return await showModalBottomSheet(
|
return await Get.bottomSheet(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
isScrollControlled: true,
|
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
enableDrag: true,
|
|
||||||
builder: (BuildContext context) => PointerInterceptor(
|
|
||||||
child: (ConfirmDialogBuilder(imagePaths, showAsBottomSheet: true, listTextSpan: listTextSpan)
|
child: (ConfirmDialogBuilder(imagePaths, showAsBottomSheet: true, listTextSpan: listTextSpan)
|
||||||
..key(const Key('confirm_dialog_action'))
|
..key(const Key('confirm_dialog_action'))
|
||||||
..title(title ?? '')
|
..title(title ?? '')
|
||||||
@@ -108,7 +102,13 @@ mixin MessageDialogActionMixin {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
..onCloseButtonAction(() => popBack()))
|
..onCloseButtonAction(() => popBack()))
|
||||||
.build()));
|
.build()
|
||||||
|
),
|
||||||
|
isScrollControlled: true,
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
enableDrag: true,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan)
|
return (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan)
|
||||||
..messageText(message)
|
..messageText(message)
|
||||||
@@ -128,10 +128,8 @@ mixin MessageDialogActionMixin {
|
|||||||
})).show();
|
})).show();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return await showDialog(
|
return await Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (BuildContext context) => PointerInterceptor(
|
|
||||||
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan)
|
child: (ConfirmDialogBuilder(imagePaths, listTextSpan: listTextSpan)
|
||||||
..key(const Key('confirm_dialog_action'))
|
..key(const Key('confirm_dialog_action'))
|
||||||
..title(title ?? '')
|
..title(title ?? '')
|
||||||
@@ -161,7 +159,8 @@ mixin MessageDialogActionMixin {
|
|||||||
)
|
)
|
||||||
..onCloseButtonAction(() => popBack()))
|
..onCloseButtonAction(() => popBack()))
|
||||||
.build()
|
.build()
|
||||||
)
|
),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
|||||||
|
|
||||||
mixin PopupContextMenuActionMixin {
|
mixin PopupContextMenuActionMixin {
|
||||||
|
|
||||||
void openContextMenuAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) {
|
void openContextMenuAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) async {
|
||||||
(CupertinoActionSheetBuilder(context)
|
await (CupertinoActionSheetBuilder(context)
|
||||||
..addTiles(actionTiles)
|
..addTiles(actionTiles)
|
||||||
..addCancelButton(cancelButton ?? buildCancelButton(context)))
|
..addCancelButton(cancelButton ?? buildCancelButton(context)))
|
||||||
.show();
|
.show();
|
||||||
|
|||||||
@@ -22,6 +22,4 @@ class RefreshChangeEmailAction extends EmailUIAction {
|
|||||||
|
|
||||||
class CloseEmailDetailedViewToRedirectToTheInboxAction extends EmailUIAction {}
|
class CloseEmailDetailedViewToRedirectToTheInboxAction extends EmailUIAction {}
|
||||||
|
|
||||||
class CloseEmailDetailedViewAction extends EmailUIAction {}
|
class CloseEmailDetailedViewAction extends EmailUIAction {}
|
||||||
|
|
||||||
class CloseSearchEmailViewAction extends EmailUIAction {}
|
|
||||||
@@ -1017,10 +1017,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
..addOnQuickCreatingRuleEmailBottomSheetAction((emailAddress) => quickCreatingRule(context, emailAddress))
|
..addOnQuickCreatingRuleEmailBottomSheetAction((emailAddress) => quickCreatingRule(context, emailAddress))
|
||||||
).show();
|
).show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (BuildContext context) => PointerInterceptor(
|
|
||||||
child: EmailAddressDialogBuilder(
|
child: EmailAddressDialogBuilder(
|
||||||
emailAddress,
|
emailAddress,
|
||||||
onCloseDialogAction: () => popBack(),
|
onCloseDialogAction: () => popBack(),
|
||||||
@@ -1028,7 +1026,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
onComposeEmailAction: (emailAddress) => composeEmailFromEmailAddress(emailAddress),
|
onComposeEmailAction: (emailAddress) => composeEmailFromEmailAddress(emailAddress),
|
||||||
onQuickCreatingRuleEmailDialogAction: (emailAddress) => quickCreatingRule(context, emailAddress)
|
onQuickCreatingRuleEmailDialogAction: (emailAddress) => quickCreatingRule(context, emailAddress)
|
||||||
)
|
)
|
||||||
)
|
),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1061,20 +1060,21 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
..onConfirmAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email)))
|
..onConfirmAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email)))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
..key(const Key('confirm_dialog_delete_email_permanently'))
|
||||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
..title(DeleteActionType.single.getTitleDialog(context))
|
||||||
..key(const Key('confirm_dialog_delete_email_permanently'))
|
..content(DeleteActionType.single.getContentDialog(context))
|
||||||
..title(DeleteActionType.single.getTitleDialog(context))
|
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||||
..content(DeleteActionType.single.getContentDialog(context))
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
..styleTextConfirmButton(const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorActionDeleteConfirmDialog))
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
..onCloseButtonAction(() => popBack())
|
||||||
..styleTextConfirmButton(const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorActionDeleteConfirmDialog))
|
..onConfirmButtonAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email))
|
||||||
..onCloseButtonAction(() => popBack())
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()))
|
||||||
..onConfirmButtonAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email))
|
.build()
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()))
|
),
|
||||||
.build()));
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1388,27 +1388,25 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
})
|
})
|
||||||
).show();
|
).show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
child: AttachmentListDialogBuilder(
|
||||||
builder: (BuildContext context) =>
|
imagePaths: imagePaths,
|
||||||
PointerInterceptor(
|
attachments: attachments,
|
||||||
child: AttachmentListDialogBuilder(
|
responsiveUtils: responsiveUtils,
|
||||||
imagePaths: imagePaths,
|
scrollController: _attachmentListScrollController,
|
||||||
attachments: attachments,
|
backgroundColor: Colors.black.withAlpha(24),
|
||||||
responsiveUtils: responsiveUtils,
|
onCloseButtonAction: () => popBack(),
|
||||||
scrollController: _attachmentListScrollController,
|
onDownloadAttachmentFileAction: (attachment) {
|
||||||
backgroundColor: Colors.black.withAlpha(24),
|
if (PlatformInfo.isWeb) {
|
||||||
onCloseButtonAction: () => popBack(),
|
downloadAttachmentForWeb(context, attachment);
|
||||||
onDownloadAttachmentFileAction: (attachment) {
|
} else {
|
||||||
if (PlatformInfo.isWeb) {
|
exportAttachment(context, attachment);
|
||||||
downloadAttachmentForWeb(context, attachment);
|
|
||||||
} else {
|
|
||||||
exportAttachment(context, attachment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
)
|
)
|
||||||
|
),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -787,27 +787,26 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
_deleteMultipleMailboxAction(selectedMailboxList)))
|
_deleteMultipleMailboxAction(selectedMailboxList)))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
..key(const Key('confirm_dialog_delete_multiple_mailbox'))
|
||||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
..title(AppLocalizations.of(context).deleteFolders)
|
||||||
..key(const Key('confirm_dialog_delete_multiple_mailbox'))
|
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length))
|
||||||
..title(AppLocalizations.of(context).deleteFolders)
|
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||||
..content(AppLocalizations.of(context)
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
.messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length))
|
..styleTextConfirmButton(const TextStyle(
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
|
fontSize: 17,
|
||||||
fit: BoxFit.fill))
|
fontWeight: FontWeight.w500,
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
color: AppColor.colorActionDeleteConfirmDialog))
|
||||||
..styleTextConfirmButton(const TextStyle(
|
..onCloseButtonAction(() => popBack())
|
||||||
fontSize: 17,
|
..onConfirmButtonAction(AppLocalizations.of(context).delete, () =>
|
||||||
fontWeight: FontWeight.w500,
|
_deleteMultipleMailboxAction(selectedMailboxList))
|
||||||
color: AppColor.colorActionDeleteConfirmDialog))
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
|
||||||
..onCloseButtonAction(() => popBack())
|
popBack()))
|
||||||
..onConfirmButtonAction(AppLocalizations.of(context).delete, () =>
|
.build()
|
||||||
_deleteMultipleMailboxAction(selectedMailboxList))
|
),
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
popBack()))
|
);
|
||||||
.build()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -160,3 +160,7 @@ class SearchEmailByFromFieldsAction extends DashBoardAction {
|
|||||||
@override
|
@override
|
||||||
List<Object?> get props => [emailAddress];
|
List<Object?> get props => [emailAddress];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CloseSearchEmailViewAction extends DashBoardAction {}
|
||||||
|
|
||||||
|
class CancelSelectionSearchEmailAction extends DashBoardAction {}
|
||||||
+69
-37
@@ -1139,31 +1139,32 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
onCancelSelectionEmail: onCancelSelectionEmail)))
|
onCancelSelectionEmail: onCancelSelectionEmail)))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
..key(const Key('confirm_dialog_delete_emails_permanently'))
|
||||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
..title(actionType.getTitleDialog(context))
|
||||||
..key(const Key('confirm_dialog_delete_emails_permanently'))
|
..content(actionType.getContentDialog(
|
||||||
..title(actionType.getTitleDialog(context))
|
context,
|
||||||
..content(actionType.getContentDialog(
|
count: listEmails?.length,
|
||||||
context,
|
mailboxName: mailboxCurrent?.getDisplayName(context)))
|
||||||
count: listEmails?.length,
|
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||||
mailboxName: mailboxCurrent?.getDisplayName(context)))
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
..styleTextConfirmButton(const TextStyle(
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
fontSize: 17,
|
||||||
..styleTextConfirmButton(const TextStyle(
|
fontWeight: FontWeight.w500,
|
||||||
fontSize: 17,
|
color: AppColor.colorActionDeleteConfirmDialog))
|
||||||
fontWeight: FontWeight.w500,
|
..onCloseButtonAction(() => popBack())
|
||||||
color: AppColor.colorActionDeleteConfirmDialog))
|
..onConfirmButtonAction(
|
||||||
..onCloseButtonAction(() => popBack())
|
actionType.getConfirmActionName(context),
|
||||||
..onConfirmButtonAction(
|
() => _deleteSelectionEmailsPermanentlyAction(
|
||||||
actionType.getConfirmActionName(context),
|
actionType,
|
||||||
() => _deleteSelectionEmailsPermanentlyAction(
|
listEmails: listEmails,
|
||||||
actionType,
|
onCancelSelectionEmail: onCancelSelectionEmail))
|
||||||
listEmails: listEmails,
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()))
|
||||||
onCancelSelectionEmail: onCancelSelectionEmail))
|
.build()
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()))
|
),
|
||||||
.build()));
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2046,10 +2047,8 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}))
|
}))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
|
||||||
..key(const Key('confirm_dialog_empty_spam'))
|
..key(const Key('confirm_dialog_empty_spam'))
|
||||||
..title(AppLocalizations.of(context).emptySpamFolder)
|
..title(AppLocalizations.of(context).emptySpamFolder)
|
||||||
..content(AppLocalizations.of(context).emptySpamMessageDialog)
|
..content(AppLocalizations.of(context).emptySpamMessageDialog)
|
||||||
@@ -2072,7 +2071,8 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
|
||||||
).build())
|
).build()),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2270,11 +2270,25 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
log('MailboxDashBoardController::_navigateToScreen: dashboardRoute: $dashboardRoute');
|
log('MailboxDashBoardController::_navigateToScreen: dashboardRoute: $dashboardRoute');
|
||||||
switch(dashboardRoute.value) {
|
switch(dashboardRoute.value) {
|
||||||
case DashboardRoutes.emailDetailed:
|
case DashboardRoutes.emailDetailed:
|
||||||
dispatchEmailUIAction(CloseEmailDetailedViewAction());
|
if (PlatformInfo.isMobile) {
|
||||||
return true;
|
if (currentContext != null && canBack(currentContext!)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
dispatchEmailUIAction(CloseEmailDetailedViewAction());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dispatchEmailUIAction(CloseEmailDetailedViewAction());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
case DashboardRoutes.thread:
|
case DashboardRoutes.thread:
|
||||||
if (PlatformInfo.isMobile) {
|
if (PlatformInfo.isMobile) {
|
||||||
if (selectedMailbox.value?.isInbox == true) {
|
if (currentContext != null && canBack(currentContext!)) {
|
||||||
|
return false;
|
||||||
|
} else if (isSelectionEnabled()) {
|
||||||
|
dispatchAction(CancelSelectionAllEmailAction());
|
||||||
|
return true;
|
||||||
|
} else if (selectedMailbox.value?.isInbox == true) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
openDefaultMailbox();
|
openDefaultMailbox();
|
||||||
@@ -2283,10 +2297,16 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
if (searchController.isSearchEmailRunning) {
|
if (searchController.isSearchEmailRunning) {
|
||||||
dispatchMailboxUIAction(SystemBackToInboxAction());
|
dispatchMailboxUIAction(SystemBackToInboxAction());
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
pushAndPopAll(AppRoutes.home);
|
if (selectedMailbox.value?.isInbox == true) {
|
||||||
|
pushAndPopAll(AppRoutes.home);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
openDefaultMailbox();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
case DashboardRoutes.sendingQueue:
|
case DashboardRoutes.sendingQueue:
|
||||||
if (PlatformInfo.isMobile) {
|
if (PlatformInfo.isMobile) {
|
||||||
openDefaultMailbox();
|
openDefaultMailbox();
|
||||||
@@ -2294,8 +2314,20 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case DashboardRoutes.searchEmail:
|
case DashboardRoutes.searchEmail:
|
||||||
dispatchAction(CloseSearchEmailViewAction());
|
if (PlatformInfo.isMobile) {
|
||||||
return true;
|
if (currentContext != null && canBack(currentContext!)) {
|
||||||
|
return false;
|
||||||
|
} else if (listResultSearch.any((email) => email.selectMode == SelectMode.ACTIVE)) {
|
||||||
|
dispatchAction(CancelSelectionSearchEmailAction());
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
dispatchAction(CloseSearchEmailViewAction());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dispatchAction(CloseSearchEmailViewAction());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,15 +11,15 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
|||||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:rule_filter/rule_filter/tmail_rule.dart';
|
import 'package:rule_filter/rule_filter/tmail_rule.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/delete_email_rule_request.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/delete_email_rule_request.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_email_rule_filter_request.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_email_rule_filter_request.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_email_rule_state.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_email_rule_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_email_rule_filter_state.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_email_rule_filter_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_rules_state.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_rules_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_email_rule_interactor.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_email_rule_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/edit_email_rule_filter_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/edit_email_rule_filter_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_rules_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_rules_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/widgets/email_rule_bottom_sheet_action_tile_builder.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/widgets/email_rule_bottom_sheet_action_tile_builder.dart';
|
||||||
@@ -27,9 +27,9 @@ import 'package:tmail_ui_user/features/manage_account/presentation/manage_accoun
|
|||||||
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/creator_action_type.dart';
|
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/creator_action_type.dart';
|
||||||
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart';
|
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.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/app_routes.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
|
||||||
|
|
||||||
class EmailRulesController extends BaseController {
|
class EmailRulesController extends BaseController {
|
||||||
|
|
||||||
@@ -166,28 +166,29 @@ class EmailRulesController extends BaseController {
|
|||||||
}))
|
}))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
child: (ConfirmDialogBuilder(imagePaths)
|
||||||
builder: (BuildContext context) =>
|
..title(AppLocalizations.of(context).deleteEmailRule)
|
||||||
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name))
|
||||||
..title(AppLocalizations.of(context).deleteEmailRule)
|
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
|
||||||
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name))
|
fit: BoxFit.fill))
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
|
..marginIcon(EdgeInsets.zero)
|
||||||
fit: BoxFit.fill))
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
..marginIcon(EdgeInsets.zero)
|
..styleTextConfirmButton(const TextStyle(
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
fontSize: 17,
|
||||||
..styleTextConfirmButton(const TextStyle(
|
fontWeight: FontWeight.w500,
|
||||||
fontSize: 17,
|
color: AppColor.colorActionDeleteConfirmDialog))
|
||||||
fontWeight: FontWeight.w500,
|
..onCloseButtonAction(() => popBack())
|
||||||
color: AppColor.colorActionDeleteConfirmDialog))
|
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
|
||||||
..onCloseButtonAction(() => popBack())
|
_handleDeleteEmailRuleAction(emailRule);
|
||||||
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
|
})
|
||||||
_handleDeleteEmailRuleAction(emailRule);
|
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
|
||||||
})
|
popBack()))
|
||||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
|
.build()
|
||||||
popBack()))
|
),
|
||||||
.build()));
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+24
-24
@@ -192,14 +192,14 @@ class IdentitiesController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void openConfirmationDialogDeleteIdentityAction(BuildContext context, Identity identity) {
|
void openConfirmationDialogDeleteIdentityAction(BuildContext context, Identity identity) {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
DeleteIdentityDialogBuilder(
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (BuildContext context) => DeleteIdentityDialogBuilder(
|
|
||||||
responsiveUtils: responsiveUtils,
|
responsiveUtils: responsiveUtils,
|
||||||
imagePaths: imagePaths,
|
imagePaths: imagePaths,
|
||||||
onDeleteIdentityAction: () => _deleteIdentityAction(identity),
|
onDeleteIdentityAction: () => _deleteIdentityAction(identity),
|
||||||
));
|
),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _deleteIdentityAction(Identity identity) {
|
void _deleteIdentityAction(Identity identity) {
|
||||||
@@ -225,25 +225,25 @@ class IdentitiesController extends BaseController {
|
|||||||
|
|
||||||
void _deleteIdentityFailure(DeleteIdentityFailure failure) {
|
void _deleteIdentityFailure(DeleteIdentityFailure failure) {
|
||||||
if (currentContext != null) {
|
if (currentContext != null) {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: currentContext!,
|
(ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
..key(const Key('dialog_message_delete_identity_failed'))
|
||||||
builder: (BuildContext context) => (ConfirmDialogBuilder(imagePaths)
|
..title(AppLocalizations.of(currentContext!).delete_failed)
|
||||||
..key(const Key('dialog_message_delete_identity_failed'))
|
..addIcon(SvgPicture.asset(imagePaths.icDeleteDialogFailed, fit: BoxFit.fill))
|
||||||
..title(AppLocalizations.of(context).delete_failed)
|
..marginIcon(EdgeInsets.zero)
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icDeleteDialogFailed, fit: BoxFit.fill))
|
..styleTitle(const TextStyle(fontSize: 20,
|
||||||
..marginIcon(EdgeInsets.zero)
|
fontWeight: FontWeight.bold,
|
||||||
..styleTitle(const TextStyle(fontSize: 20,
|
color: Colors.black))
|
||||||
fontWeight: FontWeight.bold,
|
..colorConfirmButton(AppColor.colorTextButton)
|
||||||
color: Colors.black))
|
..paddingTitle(const EdgeInsets.symmetric(vertical: 12))
|
||||||
..colorConfirmButton(AppColor.colorTextButton)
|
..styleTextConfirmButton(const TextStyle(fontSize: 17,
|
||||||
..paddingTitle(const EdgeInsets.symmetric(vertical: 12))
|
fontWeight: FontWeight.w500,
|
||||||
..styleTextConfirmButton(const TextStyle(fontSize: 17,
|
color: Colors.white))
|
||||||
fontWeight: FontWeight.w500,
|
..onCloseButtonAction(() => popBack())
|
||||||
color: Colors.white))
|
..onConfirmButtonAction('${AppLocalizations.of(currentContext!).got_it}!', () => popBack()))
|
||||||
..onCloseButtonAction(() => popBack())
|
.build(),
|
||||||
..onConfirmButtonAction('${AppLocalizations.of(context).got_it}!', () => popBack()))
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
.build());
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_sta
|
|||||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_star_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_star_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/unsubscribe_email_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/unsubscribe_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||||
@@ -45,6 +44,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/quick_sear
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
|
||||||
@@ -227,6 +227,9 @@ class SearchEmailController extends BaseController
|
|||||||
if (action is CloseSearchEmailViewAction) {
|
if (action is CloseSearchEmailViewAction) {
|
||||||
closeSearchView(context: currentContext);
|
closeSearchView(context: currentContext);
|
||||||
mailboxDashBoardController.clearDashBoardAction();
|
mailboxDashBoardController.clearDashBoardAction();
|
||||||
|
} else if (action is CancelSelectionSearchEmailAction) {
|
||||||
|
cancelSelectionMode();
|
||||||
|
mailboxDashBoardController.clearDashBoardAction();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -305,7 +308,7 @@ class SearchEmailController extends BaseController
|
|||||||
if (session != null && accountId != null) {
|
if (session != null && accountId != null) {
|
||||||
canSearchMore = true;
|
canSearchMore = true;
|
||||||
searchIsRunning.value = true;
|
searchIsRunning.value = true;
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
if (PlatformInfo.isWeb) {
|
if (PlatformInfo.isWeb) {
|
||||||
RouteUtils.replaceBrowserHistory(
|
RouteUtils.replaceBrowserHistory(
|
||||||
title: 'SearchEmail',
|
title: 'SearchEmail',
|
||||||
@@ -769,7 +772,7 @@ class SearchEmailController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cancelSelectionMode(BuildContext context) {
|
void cancelSelectionMode() {
|
||||||
listResultSearch.value = listResultSearch
|
listResultSearch.value = listResultSearch
|
||||||
.map((email) => email.toSelectedEmail(selectMode: SelectMode.INACTIVE))
|
.map((email) => email.toSelectedEmail(selectMode: SelectMode.INACTIVE))
|
||||||
.toList();
|
.toList();
|
||||||
@@ -783,31 +786,31 @@ class SearchEmailController extends BaseController
|
|||||||
) {
|
) {
|
||||||
switch(actionType) {
|
switch(actionType) {
|
||||||
case EmailActionType.markAsRead:
|
case EmailActionType.markAsRead:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
markAsReadSelectedMultipleEmail(listEmails, ReadActions.markAsRead);
|
markAsReadSelectedMultipleEmail(listEmails, ReadActions.markAsRead);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.markAsUnread:
|
case EmailActionType.markAsUnread:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
markAsReadSelectedMultipleEmail(listEmails, ReadActions.markAsUnread);
|
markAsReadSelectedMultipleEmail(listEmails, ReadActions.markAsUnread);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.markAsStarred:
|
case EmailActionType.markAsStarred:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
markAsStarSelectedMultipleEmail(listEmails, MarkStarAction.markStar);
|
markAsStarSelectedMultipleEmail(listEmails, MarkStarAction.markStar);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.unMarkAsStarred:
|
case EmailActionType.unMarkAsStarred:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
|
|
||||||
markAsStarSelectedMultipleEmail(listEmails, MarkStarAction.unMarkStar);
|
markAsStarSelectedMultipleEmail(listEmails, MarkStarAction.unMarkStar);
|
||||||
break;
|
break;
|
||||||
case EmailActionType.moveToMailbox:
|
case EmailActionType.moveToMailbox:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToMailbox(context, listEmails, mailboxContainCurrent);
|
moveSelectedMultipleEmailToMailbox(context, listEmails, mailboxContainCurrent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EmailActionType.moveToTrash:
|
case EmailActionType.moveToTrash:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToTrash(listEmails, mailboxContainCurrent);
|
moveSelectedMultipleEmailToTrash(listEmails, mailboxContainCurrent);
|
||||||
@@ -821,18 +824,18 @@ class SearchEmailController extends BaseController
|
|||||||
DeleteActionType.multiple,
|
DeleteActionType.multiple,
|
||||||
listEmails: listEmails,
|
listEmails: listEmails,
|
||||||
mailboxCurrent: mailboxContainCurrent,
|
mailboxCurrent: mailboxContainCurrent,
|
||||||
onCancelSelectionEmail: () => cancelSelectionMode(context));
|
onCancelSelectionEmail: () => cancelSelectionMode());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EmailActionType.moveToSpam:
|
case EmailActionType.moveToSpam:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
final mailboxContainCurrent = listEmails.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById);
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToSpam(listEmails, mailboxContainCurrent);
|
moveSelectedMultipleEmailToSpam(listEmails, mailboxContainCurrent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EmailActionType.unSpam:
|
case EmailActionType.unSpam:
|
||||||
cancelSelectionMode(context);
|
cancelSelectionMode();
|
||||||
unSpamSelectedMultipleEmail(listEmails);
|
unSpamSelectedMultipleEmail(listEmails);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
|||||||
return AppBarSelectionMode(
|
return AppBarSelectionMode(
|
||||||
controller.listResultSearch.listEmailSelected,
|
controller.listResultSearch.listEmailSelected,
|
||||||
controller.mailboxDashBoardController.mapMailboxById,
|
controller.mailboxDashBoardController.mapMailboxById,
|
||||||
onCancelSelection: () => controller.cancelSelectionMode(context),
|
onCancelSelection: controller.cancelSelectionMode,
|
||||||
onHandleEmailAction: (actionType, listEmails) =>
|
onHandleEmailAction: (actionType, listEmails) =>
|
||||||
controller.handleSelectionEmailAction(context, actionType, listEmails));
|
controller.handleSelectionEmailAction(context, actionType, listEmails));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -198,10 +198,8 @@ mixin EmailActionController {
|
|||||||
() => _deleteEmailPermanentlyAction(context, email)))
|
() => _deleteEmailPermanentlyAction(context, email)))
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
Get.dialog(
|
||||||
context: context,
|
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
||||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
|
||||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
|
|
||||||
..key(const Key('confirm_dialog_delete_email_permanently'))
|
..key(const Key('confirm_dialog_delete_email_permanently'))
|
||||||
..title(DeleteActionType.single.getTitleDialog(context))
|
..title(DeleteActionType.single.getTitleDialog(context))
|
||||||
..content(DeleteActionType.single.getContentDialog(context))
|
..content(DeleteActionType.single.getContentDialog(context))
|
||||||
@@ -219,7 +217,9 @@ mixin EmailActionController {
|
|||||||
..onCancelButtonAction(
|
..onCancelButtonAction(
|
||||||
AppLocalizations.of(context).cancel,
|
AppLocalizations.of(context).cancel,
|
||||||
() => popBack()))
|
() => popBack()))
|
||||||
.build()));
|
.build()),
|
||||||
|
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user