TF-153 Mark as spam when selection email
This commit is contained in:
@@ -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)))
|
||||||
|
|||||||
@@ -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',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user