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
@@ -24,7 +24,7 @@ class AppBarThreadWidgetBuilder {
final BuildContext _context;
final ImagePaths _imagePaths;
final ResponsiveUtils _responsiveUtils;
final PresentationMailbox? _presentationMailbox;
final PresentationMailbox? _currentMailbox;
final List<PresentationEmail> _listSelectionEmail;
final SelectMode _selectMode;
final FilterMessageOption _filterMessageOption;
@@ -33,7 +33,7 @@ class AppBarThreadWidgetBuilder {
this._context,
this._imagePaths,
this._responsiveUtils,
this._presentationMailbox,
this._currentMailbox,
this._listSelectionEmail,
this._selectMode,
this._filterMessageOption,
@@ -80,7 +80,7 @@ class AppBarThreadWidgetBuilder {
if (!_responsiveUtils.isTabletLarge(_context)) _buildMenuButton(),
if (_responsiveUtils.isTabletLarge(_context)) SizedBox(width: 16),
Expanded(child: Text(
'${_presentationMailbox?.name?.name.capitalizeFirstEach ?? ''}',
'${_currentMailbox?.name?.name.capitalizeFirstEach ?? ''}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 21, color: Colors.black, fontWeight: FontWeight.bold))),
@@ -109,18 +109,28 @@ class AppBarThreadWidgetBuilder {
onTap: () => _onEmailSelectionAction?.call(
_listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred,
_listSelectionEmail)),
buildIconWeb(
icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill),
tooltip: AppLocalizations.of(_context).move,
onTap: () => _onEmailSelectionAction?.call(EmailActionType.moveToMailbox, _listSelectionEmail)),
if (_currentMailbox?.isDrafts == false)
buildIconWeb(
icon: SvgPicture.asset(_imagePaths.icMove, fit: BoxFit.fill),
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(
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).delete_permanently,
onTap: () => _presentationMailbox?.role != PresentationMailbox.roleTrash
? _onEmailSelectionAction?.call(EmailActionType.moveToTrash, _listSelectionEmail)
: _onEmailSelectionAction?.call(EmailActionType.deletePermanently, _listSelectionEmail)),
onTap: () => _currentMailbox?.isTrash == true
? _onEmailSelectionAction?.call(EmailActionType.deletePermanently, _listSelectionEmail)
: _onEmailSelectionAction?.call(EmailActionType.moveToTrash, _listSelectionEmail)),
]);
}
@@ -265,7 +275,7 @@ class AppBarThreadWidgetBuilder {
margin: EdgeInsets.zero,
constraints: BoxConstraints(maxWidth: _getMaxWidthAppBarTitle()),
child: Text(
'${_presentationMailbox?.name?.name.capitalizeFirstEach ?? ''}',
'${_currentMailbox?.name?.name.capitalizeFirstEach ?? ''}',
maxLines: 1,
overflow: GetPlatform.isWeb ? TextOverflow.clip : TextOverflow.ellipsis,
style: TextStyle(fontSize: 21, color: AppColor.colorNameEmail, fontWeight: FontWeight.w700))
@@ -68,28 +68,46 @@ class BottomBarThreadSelectionWidget {
_listSelectionEmail.isAllEmailStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred,
_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)))
.build()),
Expanded(child: (ButtonBuilder(_imagePaths.icMove)
..key(Key('button_move_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_onPressEmailSelectionActionClick != null) {
_onPressEmailSelectionActionClick!(EmailActionType.moveToMailbox, _listSelectionEmail);
}})
..text(AppLocalizations.of(_context).move, isVertical: _responsiveUtils.isMobile(_context)))
.build()),
if (_currentMailbox?.isDrafts == false)
Expanded(child: (ButtonBuilder(_imagePaths.icMove)
..key(Key('button_move_to_mailbox'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_onPressEmailSelectionActionClick != null) {
_onPressEmailSelectionActionClick!(EmailActionType.moveToMailbox, _listSelectionEmail);
}})
..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)
..key(Key('button_delete_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_currentMailbox?.role != PresentationMailbox.roleTrash) {
_onPressEmailSelectionActionClick?.call(EmailActionType.moveToTrash, _listSelectionEmail);
} else {
if (_currentMailbox?.isTrash == true) {
_onPressEmailSelectionActionClick?.call(EmailActionType.deletePermanently, _listSelectionEmail);
} else {
_onPressEmailSelectionActionClick?.call(EmailActionType.moveToTrash, _listSelectionEmail);
}
})
..text(AppLocalizations.of(_context).delete, isVertical: _responsiveUtils.isMobile(_context)))