TF-421 Support delete permanently selection email in mailbox Draft
This commit is contained in:
@@ -21,12 +21,14 @@ extension DeleteActionTypeExtension on DeleteActionType {
|
||||
}
|
||||
}
|
||||
|
||||
String getContentDialog(BuildContext context, {int? count}) {
|
||||
String getContentDialog(BuildContext context, {int? count, String? mailboxName}) {
|
||||
switch(this) {
|
||||
case DeleteActionType.all:
|
||||
return AppLocalizations.of(context).empty_trash_dialog_message;
|
||||
case DeleteActionType.multiple:
|
||||
return AppLocalizations.of(context).delete_multiple_messages_dialog(count ?? 0);
|
||||
return AppLocalizations.of(context).delete_multiple_messages_dialog(
|
||||
count ?? 0,
|
||||
mailboxName ?? '');
|
||||
case DeleteActionType.single:
|
||||
return AppLocalizations.of(context).delete_single_message_dialog;
|
||||
}
|
||||
|
||||
@@ -928,7 +928,11 @@ class ThreadController extends BaseController {
|
||||
moveSelectedMultipleEmailToTrash(selectionEmail);
|
||||
break;
|
||||
case EmailActionType.deletePermanently:
|
||||
deleteSelectionEmailsPermanently(context, DeleteActionType.multiple, selectedEmails: selectionEmail);
|
||||
deleteSelectionEmailsPermanently(
|
||||
context,
|
||||
DeleteActionType.multiple,
|
||||
selectedEmails: selectionEmail,
|
||||
presentationMailbox: currentMailbox);
|
||||
break;
|
||||
case EmailActionType.moveToSpam:
|
||||
moveSelectedMultipleEmailToSpam(selectionEmail);
|
||||
@@ -1144,10 +1148,20 @@ class ThreadController extends BaseController {
|
||||
|
||||
bool get isMailboxTrash => mailboxDashBoardController.selectedMailbox.value?.role == PresentationMailbox.roleTrash;
|
||||
|
||||
void deleteSelectionEmailsPermanently(BuildContext context, DeleteActionType actionType, {List<PresentationEmail>? selectedEmails}) {
|
||||
void deleteSelectionEmailsPermanently(
|
||||
BuildContext context,
|
||||
DeleteActionType actionType,
|
||||
{
|
||||
List<PresentationEmail>? selectedEmails,
|
||||
PresentationMailbox? presentationMailbox
|
||||
}
|
||||
) {
|
||||
if (_responsiveUtils.isMobile(context)) {
|
||||
(ConfirmationDialogActionSheetBuilder(context)
|
||||
..messageText(actionType.getContentDialog(context, count: selectedEmails?.length))
|
||||
..messageText(actionType.getContentDialog(
|
||||
context,
|
||||
count: selectedEmails?.length,
|
||||
mailboxName: presentationMailbox?.name?.name))
|
||||
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
||||
..onConfirmAction(actionType.getConfirmActionName(context), () => _deleteSelectionEmailsPermanentlyAction(actionType)))
|
||||
.show();
|
||||
@@ -1158,7 +1172,10 @@ class ThreadController extends BaseController {
|
||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths)
|
||||
..key(const Key('confirm_dialog_delete_emails_permanently'))
|
||||
..title(actionType.getTitleDialog(context))
|
||||
..content(actionType.getContentDialog(context, count: selectedEmails?.length))
|
||||
..content(actionType.getContentDialog(
|
||||
context,
|
||||
count: selectedEmails?.length,
|
||||
mailboxName: presentationMailbox?.name?.name))
|
||||
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||
..styleTextConfirmButton(const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorActionDeleteConfirmDialog))
|
||||
|
||||
@@ -190,21 +190,25 @@ class AppBarThreadWidgetBuilder {
|
||||
iconPadding: const EdgeInsets.all(5),
|
||||
splashRadius: 15,
|
||||
icon: SvgPicture.asset(
|
||||
_imagePaths.icDeleteComposer,
|
||||
width: 18,
|
||||
height: 18,
|
||||
color: AppColor.textFieldErrorBorderColor,
|
||||
canDeletePermanently ? _imagePaths.icDeleteComposer : _imagePaths.icDelete,
|
||||
color: canDeletePermanently ? AppColor.colorDeletePermanentlyButton : AppColor.primaryColor,
|
||||
width: 20,
|
||||
height: 20,
|
||||
fit: BoxFit.fill),
|
||||
tooltip: _currentMailbox?.role != PresentationMailbox.roleTrash
|
||||
? AppLocalizations.of(_context).move_to_trash
|
||||
: AppLocalizations.of(_context).delete_permanently,
|
||||
onTap: () => _currentMailbox?.isTrash == true
|
||||
tooltip: canDeletePermanently
|
||||
? AppLocalizations.of(_context).delete_permanently
|
||||
: AppLocalizations.of(_context).move_to_trash,
|
||||
onTap: () => canDeletePermanently
|
||||
? _onEmailSelectionAction?.call(EmailActionType.deletePermanently, _listSelectionEmail)
|
||||
: _onEmailSelectionAction?.call(EmailActionType.moveToTrash, _listSelectionEmail)),
|
||||
const SizedBox(width: 10),
|
||||
]);
|
||||
}
|
||||
|
||||
bool get canDeletePermanently {
|
||||
return _currentMailbox?.isTrash == true || _currentMailbox?.isDrafts == true;
|
||||
}
|
||||
|
||||
Widget _buildBodyAppBarForMobile() {
|
||||
return Row(children: [
|
||||
Expanded(child: Stack(
|
||||
|
||||
Reference in New Issue
Block a user