TF-153 Mark as spam when selection email

This commit is contained in:
dab246
2022-04-15 17:11:38 +07:00
committed by Dat H. Pham
parent 750063d1f4
commit f5648cc7f7
8 changed files with 232 additions and 51 deletions
@@ -34,6 +34,8 @@ extension EmailActionTypeExtension on EmailActionType {
return AppLocalizations.of(context).moved_to_trash; return AppLocalizations.of(context).moved_to_trash;
case EmailActionType.moveToSpam: case EmailActionType.moveToSpam:
return AppLocalizations.of(context).marked_as_spam; return AppLocalizations.of(context).marked_as_spam;
case EmailActionType.unSpam:
return AppLocalizations.of(context).marked_as_not_spam;
default: default:
return ''; return '';
} }
@@ -435,6 +435,22 @@ class EmailController extends BaseController {
} }
} }
void unSpam(BuildContext context, PresentationEmail email) async {
final accountId = mailboxDashBoardController.accountId.value;
final spamMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleSpam);
final inboxMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleInbox);
if (accountId != null && spamMailboxId != null && inboxMailboxId != null) {
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
[email.id],
spamMailboxId,
inboxMailboxId,
MoveAction.moving,
EmailActionType.unSpam)
);
}
}
void _moveToSpamAction(BuildContext context, AccountId accountId, MoveToMailboxRequest moveRequest) { void _moveToSpamAction(BuildContext context, AccountId accountId, MoveToMailboxRequest moveRequest) {
backToThreadView(context); backToThreadView(context);
mailboxDashBoardController.moveToMailbox(accountId, moveRequest); mailboxDashBoardController.moveToMailbox(accountId, moveRequest);
@@ -480,6 +496,10 @@ class EmailController extends BaseController {
popBack(); popBack();
moveToSpam(context, presentationEmail); moveToSpam(context, presentationEmail);
break; break;
case EmailActionType.unSpam:
popBack();
unSpam(context, presentationEmail);
break;
default: default:
break; break;
} }
@@ -109,6 +109,8 @@ class ThreadController extends BaseController {
AccountId? get _accountId => mailboxDashBoardController.accountId.value; AccountId? get _accountId => mailboxDashBoardController.accountId.value;
PresentationMailbox? get currentMailbox => mailboxDashBoardController.selectedMailbox.value;
ThreadController( ThreadController(
this._getEmailsInMailboxInteractor, this._getEmailsInMailboxInteractor,
this._refreshAllEmailsInMailboxInteractor, this._refreshAllEmailsInMailboxInteractor,
@@ -551,7 +553,7 @@ class ThreadController extends BaseController {
refreshAllEmail(); refreshAllEmail();
} }
void moveSelectedMultipleEmailToMailboxAction(List<PresentationEmail> listEmail) async { void moveSelectedMultipleEmailToMailbox(List<PresentationEmail> listEmail) async {
final currentMailbox = mailboxDashBoardController.selectedMailbox.value; final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
if (currentMailbox != null && _accountId != null) { if (currentMailbox != null && _accountId != null) {
final listEmailIds = listEmail.map((email) => email.id).toList(); final listEmailIds = listEmail.map((email) => email.id).toList();
@@ -561,15 +563,22 @@ class ThreadController extends BaseController {
); );
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) { if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
if (destinationMailbox.role == PresentationMailbox.roleTrash) { if (destinationMailbox.isTrash) {
_moveSelectedEmailMultipleToTrash(_accountId!, MoveToMailboxRequest( _moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
listEmailIds, listEmailIds,
currentMailbox.id, currentMailbox.id,
destinationMailbox.id, destinationMailbox.id,
MoveAction.moving, MoveAction.moving,
EmailActionType.moveToTrash)); EmailActionType.moveToTrash));
} else if (destinationMailbox.isSpam) {
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
listEmailIds,
currentMailbox.id,
destinationMailbox.id,
MoveAction.moving,
EmailActionType.moveToSpam));
} else { } else {
_moveSelectedEmailMultipleToMailbox(_accountId!, MoveToMailboxRequest( _moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
listEmailIds, listEmailIds,
currentMailbox.id, currentMailbox.id,
destinationMailbox.id, destinationMailbox.id,
@@ -581,7 +590,7 @@ class ThreadController extends BaseController {
} }
} }
void _moveSelectedEmailMultipleToMailbox(AccountId accountId, MoveToMailboxRequest moveRequest) { void _moveSelectedEmailMultipleToMailboxAction(AccountId accountId, MoveToMailboxRequest moveRequest) {
cancelSelectEmail(); cancelSelectEmail();
consumeState(_moveMultipleEmailToMailboxInteractor.execute(accountId, moveRequest)); consumeState(_moveMultipleEmailToMailboxInteractor.execute(accountId, moveRequest));
} }
@@ -636,13 +645,13 @@ class ThreadController extends BaseController {
_refreshEmailChanges(); _refreshEmailChanges();
} }
void moveSelectedMultipleEmailToTrashAction(List<PresentationEmail> listEmail) async { void moveSelectedMultipleEmailToTrash(List<PresentationEmail> listEmail) async {
final currentMailbox = mailboxDashBoardController.selectedMailbox.value; final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
final trashMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleTrash); final trashMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleTrash);
if (currentMailbox != null && _accountId != null && trashMailboxId != null) { if (currentMailbox != null && _accountId != null && trashMailboxId != null) {
final listEmailIds = listEmail.map((email) => email.id).toList(); final listEmailIds = listEmail.map((email) => email.id).toList();
_moveSelectedEmailMultipleToTrash(_accountId!, MoveToMailboxRequest( _moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
listEmailIds, listEmailIds,
currentMailbox.id, currentMailbox.id,
trashMailboxId, trashMailboxId,
@@ -652,11 +661,48 @@ class ThreadController extends BaseController {
} }
} }
void _moveSelectedEmailMultipleToTrash(AccountId accountId, MoveToMailboxRequest moveRequest) { void _moveSelectedEmailMultipleToTrashAction(AccountId accountId, MoveToMailboxRequest moveRequest) {
cancelSelectEmail(); cancelSelectEmail();
consumeState(_moveMultipleEmailToMailboxInteractor.execute(accountId, moveRequest)); consumeState(_moveMultipleEmailToMailboxInteractor.execute(accountId, moveRequest));
} }
void moveSelectedMultipleEmailToSpam(List<PresentationEmail> listEmail) async {
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
final spamMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleSpam);
if (currentMailbox != null && _accountId != null && spamMailboxId != null) {
final listEmailIds = listEmail.map((email) => email.id).toList();
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
listEmailIds,
currentMailbox.id,
spamMailboxId,
MoveAction.moving,
EmailActionType.moveToSpam)
);
}
}
void _moveSelectedEmailMultipleToSpamAction(AccountId accountId, MoveToMailboxRequest moveRequest) {
cancelSelectEmail();
consumeState(_moveMultipleEmailToMailboxInteractor.execute(accountId, moveRequest));
}
void unSpamSelectedMultipleEmail(List<PresentationEmail> listEmail) async {
final spamMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleSpam);
final inboxMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleInbox);
if (inboxMailboxId != null && _accountId != null && spamMailboxId != null) {
final listEmailIds = listEmail.map((email) => email.id).toList();
_moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
listEmailIds,
spamMailboxId,
inboxMailboxId,
MoveAction.moving,
EmailActionType.unSpam)
);
}
}
void _revertedToOriginalMailbox(MoveToMailboxRequest newMoveRequest) { void _revertedToOriginalMailbox(MoveToMailboxRequest newMoveRequest) {
if (_accountId != null) { if (_accountId != null) {
consumeState(_moveMultipleEmailToMailboxInteractor.execute(_accountId!, newMoveRequest)); consumeState(_moveMultipleEmailToMailboxInteractor.execute(_accountId!, newMoveRequest));
@@ -800,14 +846,20 @@ class ThreadController extends BaseController {
markAsStarSelectedMultipleEmail(selectionEmail); markAsStarSelectedMultipleEmail(selectionEmail);
break; break;
case EmailActionType.moveToMailbox: case EmailActionType.moveToMailbox:
moveSelectedMultipleEmailToMailboxAction(selectionEmail); moveSelectedMultipleEmailToMailbox(selectionEmail);
break; break;
case EmailActionType.moveToTrash: case EmailActionType.moveToTrash:
moveSelectedMultipleEmailToTrashAction(selectionEmail); moveSelectedMultipleEmailToTrash(selectionEmail);
break; break;
case EmailActionType.deletePermanently: case EmailActionType.deletePermanently:
deleteSelectionEmailsPermanently(context, DeleteActionType.multiple, selectedEmails: selectionEmail); deleteSelectionEmailsPermanently(context, DeleteActionType.multiple, selectedEmails: selectionEmail);
break; break;
case EmailActionType.moveToSpam:
moveSelectedMultipleEmailToSpam(selectionEmail);
break;
case EmailActionType.unSpam:
unSpamSelectedMultipleEmail(selectionEmail);
break;
default: default:
break; break;
} }
@@ -201,30 +201,39 @@ class ThreadView extends GetWidget<ThreadController> with UserSettingPopupMenuMi
SizedBox(width: 30), SizedBox(width: 30),
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset(controller.listEmailSelected.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead, fit: BoxFit.fill), icon: SvgPicture.asset(controller.listEmailSelected.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead, fit: BoxFit.fill),
tooltip: controller.listEmailSelected.isAllEmailRead ? AppLocalizations.of(context).unread : AppLocalizations.of(context).read, tooltip: controller.listEmailSelected.isAllEmailRead ? AppLocalizations.of(context).mark_as_unread : AppLocalizations.of(context).mark_as_read,
onTap: () => controller.pressEmailSelectionAction( onTap: () => controller.pressEmailSelectionAction(
context, context,
controller.listEmailSelected.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead, controller.listEmailSelected.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
controller.listEmailSelected)), controller.listEmailSelected)),
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset(controller.listEmailSelected.isAllEmailStarred ? _imagePaths.icUnStar : _imagePaths.icStar, fit: BoxFit.fill), icon: SvgPicture.asset(controller.listEmailSelected.isAllEmailStarred ? _imagePaths.icUnStar : _imagePaths.icStar, fit: BoxFit.fill),
tooltip: controller.listEmailSelected.isAllEmailStarred ? AppLocalizations.of(context).not_starred : AppLocalizations.of(context).starred, tooltip: controller.listEmailSelected.isAllEmailStarred ? AppLocalizations.of(context).un_star : AppLocalizations.of(context).star,
onTap: () => controller.pressEmailSelectionAction( onTap: () => controller.pressEmailSelectionAction(
context, context,
controller.listEmailSelected.isAllEmailStarred ? EmailActionType.markAsStarred : EmailActionType.unMarkAsStarred, controller.listEmailSelected.isAllEmailStarred ? EmailActionType.markAsStarred : EmailActionType.unMarkAsStarred,
controller.listEmailSelected)), controller.listEmailSelected)),
buildIconWeb( if (controller.currentMailbox?.isDrafts == false)
icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill), buildIconWeb(
tooltip: AppLocalizations.of(context).move, icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill),
onTap: () => controller.pressEmailSelectionAction(context, EmailActionType.moveToMailbox, controller.listEmailSelected)), tooltip: AppLocalizations.of(context).move,
onTap: () => controller.pressEmailSelectionAction(context, EmailActionType.moveToMailbox, controller.listEmailSelected)),
if (controller.currentMailbox?.isDrafts == false)
buildIconWeb(
icon: SvgPicture.asset(controller.currentMailbox?.isSpam == true ? _imagePaths.icNotSpam : _imagePaths.icSpam,
fit: BoxFit.fill),
tooltip: controller.currentMailbox?.isSpam == true ? AppLocalizations.of(context).un_spam : AppLocalizations.of(context).mark_as_spam,
onTap: () => controller.currentMailbox?.isSpam == true
? controller.pressEmailSelectionAction(context, EmailActionType.unSpam, controller.listEmailSelected)
: controller.pressEmailSelectionAction(context, EmailActionType.moveToSpam, controller.listEmailSelected)),
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset(_imagePaths.icDelete, fit: BoxFit.fill), icon: SvgPicture.asset(_imagePaths.icDelete, fit: BoxFit.fill),
tooltip: controller.mailboxDashBoardController.selectedMailbox.value?.role != PresentationMailbox.roleTrash tooltip: controller.currentMailbox?.isTrash == true
? AppLocalizations.of(context).move_to_trash ? AppLocalizations.of(context).delete_permanently
: AppLocalizations.of(context).delete_permanently, : AppLocalizations.of(context).move_to_trash,
onTap: () => controller.mailboxDashBoardController.selectedMailbox.value?.role != PresentationMailbox.roleTrash onTap: () => controller.currentMailbox?.isTrash == true
? controller.pressEmailSelectionAction(context, EmailActionType.moveToTrash, controller.listEmailSelected) ? controller.deleteSelectionEmailsPermanently(context, DeleteActionType.multiple, selectedEmails: controller.listEmailSelected)
: controller.deleteSelectionEmailsPermanently(context, DeleteActionType.multiple, selectedEmails: controller.listEmailSelected)), : controller.pressEmailSelectionAction(context, EmailActionType.moveToTrash, controller.listEmailSelected)),
]); ]);
} }
@@ -241,7 +250,8 @@ class ThreadView extends GetWidget<ThreadController> with UserSettingPopupMenuMi
_responsiveUtils, _responsiveUtils,
controller.listEmailSelected, controller.listEmailSelected,
controller.mailboxDashBoardController.selectedMailbox.value) controller.mailboxDashBoardController.selectedMailbox.value)
..addOnPressEmailSelectionActionClick((actionType, selectionEmail) => controller.pressEmailSelectionAction(context, actionType, selectionEmail))) ..addOnPressEmailSelectionActionClick((actionType, selectionEmail) =>
controller.pressEmailSelectionAction(context, actionType, selectionEmail)))
.build()), .build()),
]); ]);
} else { } else {
@@ -594,7 +604,7 @@ class ThreadView extends GetWidget<ThreadController> with UserSettingPopupMenuMi
itemBuilder: (context, index) => Obx(() => (EmailTileBuilder( itemBuilder: (context, index) => Obx(() => (EmailTileBuilder(
context, context,
listPresentationEmail[index], listPresentationEmail[index],
controller.mailboxDashBoardController.selectedMailbox.value?.role, controller.currentMailbox?.role,
controller.currentSelectMode.value, controller.currentSelectMode.value,
controller.mailboxDashBoardController.searchState.value.searchStatus, controller.mailboxDashBoardController.searchState.value.searchStatus,
controller.searchQuery) controller.searchQuery)
@@ -24,7 +24,7 @@ class AppBarThreadWidgetBuilder {
final BuildContext _context; final BuildContext _context;
final ImagePaths _imagePaths; final ImagePaths _imagePaths;
final ResponsiveUtils _responsiveUtils; final ResponsiveUtils _responsiveUtils;
final PresentationMailbox? _presentationMailbox; final PresentationMailbox? _currentMailbox;
final List<PresentationEmail> _listSelectionEmail; final List<PresentationEmail> _listSelectionEmail;
final SelectMode _selectMode; final SelectMode _selectMode;
final FilterMessageOption _filterMessageOption; final FilterMessageOption _filterMessageOption;
@@ -33,7 +33,7 @@ class AppBarThreadWidgetBuilder {
this._context, this._context,
this._imagePaths, this._imagePaths,
this._responsiveUtils, this._responsiveUtils,
this._presentationMailbox, this._currentMailbox,
this._listSelectionEmail, this._listSelectionEmail,
this._selectMode, this._selectMode,
this._filterMessageOption, this._filterMessageOption,
@@ -80,7 +80,7 @@ class AppBarThreadWidgetBuilder {
if (!_responsiveUtils.isTabletLarge(_context)) _buildMenuButton(), if (!_responsiveUtils.isTabletLarge(_context)) _buildMenuButton(),
if (_responsiveUtils.isTabletLarge(_context)) SizedBox(width: 16), if (_responsiveUtils.isTabletLarge(_context)) SizedBox(width: 16),
Expanded(child: Text( Expanded(child: Text(
'${_presentationMailbox?.name?.name.capitalizeFirstEach ?? ''}', '${_currentMailbox?.name?.name.capitalizeFirstEach ?? ''}',
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 21, color: Colors.black, fontWeight: FontWeight.bold))), style: TextStyle(fontSize: 21, color: Colors.black, fontWeight: FontWeight.bold))),
@@ -109,18 +109,28 @@ class AppBarThreadWidgetBuilder {
onTap: () => _onEmailSelectionAction?.call( onTap: () => _onEmailSelectionAction?.call(
_listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred, _listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred,
_listSelectionEmail)), _listSelectionEmail)),
buildIconWeb( if (_currentMailbox?.isDrafts == false)
icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill), buildIconWeb(
tooltip: AppLocalizations.of(_context).move, icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill),
onTap: () => _onEmailSelectionAction?.call(EmailActionType.moveToMailbox, _listSelectionEmail)), tooltip: AppLocalizations.of(_context).move,
onTap: () => _onEmailSelectionAction?.call(EmailActionType.moveToMailbox, _listSelectionEmail)),
if (_currentMailbox?.isDrafts == false)
buildIconWeb(
icon: SvgPicture.asset(_currentMailbox?.isSpam == true
? _imagePaths.icNotSpam : _imagePaths.icSpam,
fit: BoxFit.fill),
tooltip: _currentMailbox?.isSpam == true ? AppLocalizations.of(_context).un_spam : AppLocalizations.of(_context).mark_as_spam,
onTap: () => _currentMailbox?.isSpam == true
? _onEmailSelectionAction?.call(EmailActionType.unSpam, _listSelectionEmail)
: _onEmailSelectionAction?.call(EmailActionType.moveToSpam, _listSelectionEmail)),
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset(_imagePaths.icDelete, fit: BoxFit.fill), icon: SvgPicture.asset(_imagePaths.icDelete, fit: BoxFit.fill),
tooltip: _presentationMailbox?.role != PresentationMailbox.roleTrash tooltip: _currentMailbox?.role != PresentationMailbox.roleTrash
? AppLocalizations.of(_context).move_to_trash ? AppLocalizations.of(_context).move_to_trash
: AppLocalizations.of(_context).delete_permanently, : AppLocalizations.of(_context).delete_permanently,
onTap: () => _presentationMailbox?.role != PresentationMailbox.roleTrash onTap: () => _currentMailbox?.isTrash == true
? _onEmailSelectionAction?.call(EmailActionType.moveToTrash, _listSelectionEmail) ? _onEmailSelectionAction?.call(EmailActionType.deletePermanently, _listSelectionEmail)
: _onEmailSelectionAction?.call(EmailActionType.deletePermanently, _listSelectionEmail)), : _onEmailSelectionAction?.call(EmailActionType.moveToTrash, _listSelectionEmail)),
]); ]);
} }
@@ -265,7 +275,7 @@ class AppBarThreadWidgetBuilder {
margin: EdgeInsets.zero, margin: EdgeInsets.zero,
constraints: BoxConstraints(maxWidth: _getMaxWidthAppBarTitle()), constraints: BoxConstraints(maxWidth: _getMaxWidthAppBarTitle()),
child: Text( child: Text(
'${_presentationMailbox?.name?.name.capitalizeFirstEach ?? ''}', '${_currentMailbox?.name?.name.capitalizeFirstEach ?? ''}',
maxLines: 1, maxLines: 1,
overflow: GetPlatform.isWeb ? TextOverflow.clip : TextOverflow.ellipsis, overflow: GetPlatform.isWeb ? TextOverflow.clip : TextOverflow.ellipsis,
style: TextStyle(fontSize: 21, color: AppColor.colorNameEmail, fontWeight: FontWeight.w700)) style: TextStyle(fontSize: 21, color: AppColor.colorNameEmail, fontWeight: FontWeight.w700))
@@ -68,28 +68,46 @@ class BottomBarThreadSelectionWidget {
_listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred, _listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred,
_listSelectionEmail); _listSelectionEmail);
}}) }})
..text(_listSelectionEmail.isAllEmailStarred ? AppLocalizations.of(_context).not_starred : AppLocalizations.of(_context).starred, ..text(_listSelectionEmail.isAllEmailStarred ? AppLocalizations.of(_context).un_star : AppLocalizations.of(_context).star,
isVertical: _responsiveUtils.isMobile(_context))) isVertical: _responsiveUtils.isMobile(_context)))
.build()), .build()),
Expanded(child: (ButtonBuilder(_imagePaths.icMove) if (_currentMailbox?.isDrafts == false)
..key(Key('button_move_email')) Expanded(child: (ButtonBuilder(_imagePaths.icMove)
..paddingIcon(EdgeInsets.all(8)) ..key(Key('button_move_to_mailbox'))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton)) ..paddingIcon(EdgeInsets.all(8))
..onPressActionClick(() { ..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
if (_onPressEmailSelectionActionClick != null) { ..onPressActionClick(() {
_onPressEmailSelectionActionClick!(EmailActionType.moveToMailbox, _listSelectionEmail); if (_onPressEmailSelectionActionClick != null) {
}}) _onPressEmailSelectionActionClick!(EmailActionType.moveToMailbox, _listSelectionEmail);
..text(AppLocalizations.of(_context).move, isVertical: _responsiveUtils.isMobile(_context))) }})
.build()), ..text(AppLocalizations.of(_context).move, isVertical: _responsiveUtils.isMobile(_context)))
.build()),
if (_currentMailbox?.isDrafts == false)
Expanded(child: (ButtonBuilder(_currentMailbox?.isSpam == true ? _imagePaths.icNotSpam : _imagePaths.icSpam)
..key(Key('button_move_to_spam'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_currentMailbox?.isSpam == true) {
_onPressEmailSelectionActionClick?.call(EmailActionType.unSpam, _listSelectionEmail);
} else {
_onPressEmailSelectionActionClick?.call(EmailActionType.moveToSpam, _listSelectionEmail);
}
})
..text(_currentMailbox?.isSpam == true
? AppLocalizations.of(_context).un_spam
: AppLocalizations.of(_context).spam,
isVertical: _responsiveUtils.isMobile(_context)))
.build()),
Expanded(child: (ButtonBuilder(_imagePaths.icDelete) Expanded(child: (ButtonBuilder(_imagePaths.icDelete)
..key(Key('button_delete_email')) ..key(Key('button_delete_email'))
..paddingIcon(EdgeInsets.all(8)) ..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton)) ..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() { ..onPressActionClick(() {
if (_currentMailbox?.role != PresentationMailbox.roleTrash) { if (_currentMailbox?.isTrash == true) {
_onPressEmailSelectionActionClick?.call(EmailActionType.moveToTrash, _listSelectionEmail);
} else {
_onPressEmailSelectionActionClick?.call(EmailActionType.deletePermanently, _listSelectionEmail); _onPressEmailSelectionActionClick?.call(EmailActionType.deletePermanently, _listSelectionEmail);
} else {
_onPressEmailSelectionActionClick?.call(EmailActionType.moveToTrash, _listSelectionEmail);
} }
}) })
..text(AppLocalizations.of(_context).delete, isVertical: _responsiveUtils.isMobile(_context))) ..text(AppLocalizations.of(_context).delete, isVertical: _responsiveUtils.isMobile(_context)))
+43 -1
View File
@@ -1,5 +1,5 @@
{ {
"@@last_modified": "2022-04-15T15:46:44.683811", "@@last_modified": "2022-04-15T16:53:02.138499",
"initializing_data": "Initializing data...", "initializing_data": "Initializing data...",
"@initializing_data": { "@initializing_data": {
"type": "text", "type": "text",
@@ -1053,5 +1053,47 @@
"type": "text", "type": "text",
"placeholders_order": [], "placeholders_order": [],
"placeholders": {} "placeholders": {}
},
"mark_as_spam": "Mark as spam",
"@mark_as_spam": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"remove_from_spam": "Remove from spam",
"@remove_from_spam": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"marked_as_spam": "Marked as spam",
"@marked_as_spam": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"marked_as_not_spam": "Marked as not spam",
"@marked_as_not_spam": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"star": "Star",
"@star": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"un_star": "Unstar",
"@un_star": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"un_spam": "Unspam",
"@un_spam": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
} }
} }
@@ -1126,4 +1126,31 @@ class AppLocalizations {
); );
} }
String get marked_as_not_spam {
return Intl.message(
'Marked as not spam',
name: 'marked_as_not_spam',
);
}
String get star {
return Intl.message(
'Star',
name: 'star',
);
}
String get un_star {
return Intl.message(
'Unstar',
name: 'un_star',
);
}
String get un_spam {
return Intl.message(
'Unspam',
name: 'un_spam',
);
}
} }