TF-313 Apply new ui for AppBar EmailView

This commit is contained in:
dab246
2022-03-09 14:32:21 +07:00
committed by Dat H. Pham
parent 6dcf9f9ea7
commit 11735ed1d7
63 changed files with 312 additions and 244 deletions
@@ -134,7 +134,7 @@ class ComposerView extends GetWidget<ComposerController> {
Widget _buildDivider(){
return Padding(
padding: EdgeInsets.only(left: 16),
child: Divider(color: AppColor.coloDividerComposer, height: 1));
child: Divider(color: AppColor.colorDividerComposer, height: 1));
}
Widget _buildEmailAddress(BuildContext context) {
@@ -171,7 +171,7 @@ class ComposerView extends GetWidget<ComposerController> {
]
)
),
Divider(color: AppColor.coloDividerComposer, height: 1),
Divider(color: AppColor.colorDividerComposer, height: 1),
Obx(() => (EmailAddressInputBuilder(
context,
imagePaths,
@@ -187,7 +187,7 @@ class ComposerView extends GetWidget<ComposerController> {
.build()
),
Obx(() => controller.expandMode.value == ExpandMode.EXPAND
? Divider(color: AppColor.coloDividerComposer, height: 1)
? Divider(color: AppColor.colorDividerComposer, height: 1)
: SizedBox.shrink()),
Obx(() => controller.expandMode.value == ExpandMode.EXPAND
? (EmailAddressInputBuilder(
@@ -204,7 +204,7 @@ class ComposerView extends GetWidget<ComposerController> {
: SizedBox.shrink()
),
Obx(() => controller.expandMode.value == ExpandMode.EXPAND
? Divider(color: AppColor.coloDividerComposer, height: 1)
? Divider(color: AppColor.colorDividerComposer, height: 1)
: SizedBox.shrink()),
Obx(() => controller.expandMode.value == ExpandMode.EXPAND
? (EmailAddressInputBuilder(
@@ -2,6 +2,7 @@ import 'package:core/core.dart';
import 'package:dartz/dartz.dart';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
@@ -54,6 +55,10 @@ class EmailController extends BaseController {
final attachments = <Attachment>[].obs;
EmailId? _currentEmailId;
PresentationMailbox? get currentMailbox => mailboxDashBoardController.selectedMailbox.value;
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
EmailController(
this._getEmailContentInteractor,
this._markAsEmailReadInteractor,
@@ -310,7 +315,7 @@ class EmailController extends BaseController {
popBack();
}
void openDestinationPickerView(PresentationEmail email) async {
void moveToMailboxAction(PresentationEmail email) async {
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
final accountId = mailboxDashBoardController.accountId.value;
@@ -365,11 +370,10 @@ class EmailController extends BaseController {
}
}
void markAsStarEmail(PresentationEmail presentationEmail) async {
void markAsStarEmail(PresentationEmail presentationEmail, MarkStarAction markStarAction) async {
final accountId = mailboxDashBoardController.accountId.value;
final mailboxCurrent = mailboxDashBoardController.selectedMailbox.value;
if (accountId != null && mailboxCurrent != null) {
final markStarAction = presentationEmail.isFlaggedEmail() ? MarkStarAction.unMarkStar : MarkStarAction.markStar;
consumeState(_markAsStarEmailInteractor.execute(accountId, presentationEmail.toEmail(), markStarAction));
}
}
@@ -381,6 +385,48 @@ class EmailController extends BaseController {
mailboxDashBoardController.dispatchState(Right(success));
}
void handleEmailAction(PresentationEmail presentationEmail, EmailActionType actionType) {
switch(actionType) {
case EmailActionType.markAsUnread:
markAsEmailRead(presentationEmail, ReadActions.markAsUnread);
break;
case EmailActionType.markAsStar:
markAsStarEmail(presentationEmail, MarkStarAction.markStar);
break;
case EmailActionType.markAsUnStar:
markAsStarEmail(presentationEmail, MarkStarAction.unMarkStar);
break;
case EmailActionType.move:
moveToMailboxAction(presentationEmail);
break;
case EmailActionType.delete:
break;
default:
break;
}
}
void openMoreMenuEmailAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) {
(CupertinoActionSheetBuilder(context)
..addTiles(actionTiles)
..addCancelButton(cancelButton))
.show();
}
void openMoreMenuEmailActionForTablet(BuildContext context, RelativeRect? position, List<PopupMenuEntry> popupMenuItems) async {
await showMenu(
context: context,
position: position ?? RelativeRect.fromLTRB(16, 40, 16, 16),
color: Colors.white,
elevation: 5,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)),
items: popupMenuItems);
}
void closeMoreMenu() {
popBack();
}
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
&& mailboxDashBoardController.userProfile.value != null
&& mailboxDashBoardController.mapDefaultMailboxId.isNotEmpty
@@ -1,6 +1,7 @@
import 'dart:io';
import 'package:core/core.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -11,6 +12,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_w
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/attachments_place_holder_loading_widget.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_content_item_builder.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_content_place_holder_loading_widget.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart';
@@ -34,6 +36,7 @@ class EmailView extends GetView {
mainAxisAlignment: MainAxisAlignment.center,
children: [
_buildAppBar(context),
_buildDivider(),
Expanded(child: _buildEmailBody(context)),
_buildBottomBar(context),
]
@@ -41,21 +44,32 @@ class EmailView extends GetView {
));
}
Widget _buildDivider(){
return Padding(
padding: EdgeInsets.symmetric(horizontal: 16),
child: Divider(color: AppColor.colorDividerEmailView, height: 0.5));
}
Widget _buildAppBar(BuildContext context) {
return Obx(() => Padding(
padding: EdgeInsets.only(left: 6, top: 6, right: 6, bottom: 6),
padding: EdgeInsets.only(top: 6),
child: (AppBarMailWidgetBuilder(
context,
imagePaths,
responsiveUtils,
emailController.mailboxDashBoardController.selectedEmail.value)
emailController.currentEmail,
emailController.currentMailbox)
..onBackActionClick(() => emailController.backToThreadView())
..onUnreadEmailActionClick((presentationEmail) =>
emailController.markAsEmailRead(presentationEmail, ReadActions.markAsUnread))
..addOnMoveToMailboxActionClick((presentationEmail) =>
emailController.openDestinationPickerView(presentationEmail))
..addOnMarkAsStarActionClick((presentationEmail) =>
emailController.markAsStarEmail(presentationEmail)))
..addOnEmailActionClick((email, action) => emailController.handleEmailAction(email, action))
..addOnMoreActionClick((email, position) => responsiveUtils.isMobileDevice(context)
? emailController.openMoreMenuEmailAction(
context,
_emailActionMoreActionTile(context, email),
cancelButton: _buildCancelButton(context))
: emailController.openMoreMenuEmailActionForTablet(
context,
position,
_popupMenuEmailActionTile(context, email))))
.build()));
}
@@ -311,4 +325,41 @@ class EmailView extends GetView {
}
}));
}
List<Widget> _emailActionMoreActionTile(BuildContext context, PresentationEmail email) {
return <Widget>[
_unreadEmailAction(context, email),
];
}
Widget _buildCancelButton(BuildContext context) {
return CupertinoActionSheetAction(
child: Text(
AppLocalizations.of(context).cancel,
style: TextStyle(fontWeight: FontWeight.w500, fontSize: 20, color: AppColor.colorTextButton)),
onPressed: () => emailController.closeMoreMenu(),
);
}
Widget _unreadEmailAction(BuildContext context, PresentationEmail email) {
return (EmailActionCupertinoActionSheetActionBuilder(
Key('email_action_unread_action'),
SvgPicture.asset(imagePaths.icUnreadEmail, width: 28, height: 28, fit: BoxFit.fill, color: AppColor.colorTextButton),
AppLocalizations.of(context).mark_as_unread,
email,
iconLeftPadding: responsiveUtils.isMobile(context)
? EdgeInsets.only(left: 12, right: 16)
: EdgeInsets.only(right: 12),
iconRightPadding: responsiveUtils.isMobile(context)
? EdgeInsets.only(right: 12)
: EdgeInsets.zero)
..onActionClick((email) => emailController.handleEmailAction(email, EmailActionType.markAsUnread)))
.build();
}
List<PopupMenuEntry> _popupMenuEmailActionTile(BuildContext context, PresentationEmail email) {
return [
PopupMenuItem(padding: EdgeInsets.symmetric(horizontal: 8), child: _unreadEmailAction(context, email)),
];
}
}
@@ -5,42 +5,38 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:model/model.dart';
typedef OnBackActionClick = void Function();
typedef OnUnreadEmailActionClick = void Function(PresentationEmail presentationEmail);
typedef OnMoveToMailboxActionClick = void Function(PresentationEmail presentationEmail);
typedef OnMarkAsStarActionClick = void Function(PresentationEmail presentationEmail);
typedef OnEmailActionClick = void Function(PresentationEmail, EmailActionType);
typedef OnMoreActionClick = void Function(PresentationEmail, RelativeRect?);
class AppBarMailWidgetBuilder {
OnBackActionClick? _onBackActionClick;
OnUnreadEmailActionClick? _onUnreadEmailActionClick;
OnMoveToMailboxActionClick? _onMoveToMailboxActionClick;
OnMarkAsStarActionClick? _markAsStarActionClick;
OnEmailActionClick? _onEmailActionClick;
OnMoreActionClick? _onMoreActionClick;
final BuildContext _context;
final ImagePaths _imagePaths;
final ResponsiveUtils _responsiveUtils;
final PresentationEmail? _presentationEmail;
final PresentationMailbox? _currentMailbox;
AppBarMailWidgetBuilder(
this._context,
this._imagePaths,
this._responsiveUtils,
this._presentationEmail,
this._currentMailbox,
);
void onBackActionClick(OnBackActionClick onBackActionClick) {
_onBackActionClick = onBackActionClick;
}
void onUnreadEmailActionClick(OnUnreadEmailActionClick onUnreadEmailActionClick) {
_onUnreadEmailActionClick = onUnreadEmailActionClick;
void addOnEmailActionClick(OnEmailActionClick onEmailActionClick) {
_onEmailActionClick = onEmailActionClick;
}
void addOnMoveToMailboxActionClick(OnMoveToMailboxActionClick onMoveToMailboxActionClick) {
_onMoveToMailboxActionClick = onMoveToMailboxActionClick;
}
void addOnMarkAsStarActionClick(OnMarkAsStarActionClick onMarkAsStarActionClick) {
_markAsStarActionClick = onMarkAsStarActionClick;
void addOnMoreActionClick(OnMoreActionClick onMoreActionClick) {
_onMoreActionClick = onMoreActionClick;
}
Widget build() {
@@ -48,6 +44,7 @@ class AppBarMailWidgetBuilder {
key: Key('app_bar_messenger_widget'),
alignment: Alignment.center,
padding: EdgeInsets.zero,
margin: EdgeInsets.zero,
child: MediaQuery(
data: MediaQueryData(padding: EdgeInsets.zero),
child: Row(
@@ -55,10 +52,9 @@ class AppBarMailWidgetBuilder {
mainAxisAlignment: MainAxisAlignment.end,
children: [
if ((!_responsiveUtils.isDesktop(_context) && !_responsiveUtils.isTabletLarge(_context)))
Expanded(child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children:[_buildBackButton()])),
_buildBackButton(),
if ((!_responsiveUtils.isDesktop(_context) && !_responsiveUtils.isTabletLarge(_context)))
Expanded(child: _buildMailboxName()),
if (_presentationEmail != null) _buildListOptionButton(),
]
)
@@ -68,13 +64,19 @@ class AppBarMailWidgetBuilder {
Widget _buildBackButton() {
return IconButton(
color: AppColor.appColor,
icon: SvgPicture.asset(_imagePaths.icBack, color: AppColor.appColor, fit: BoxFit.fill),
onPressed: () {
if (_onBackActionClick != null) {
_onBackActionClick!();
}
}
icon: SvgPicture.asset(_imagePaths.icBack, width: 20, height: 20, color: AppColor.colorTextButton, fit: BoxFit.fill),
onPressed: () => _onBackActionClick?.call()
);
}
Widget _buildMailboxName() {
return Transform(
transform: Matrix4.translationValues(-10.0, 0.0, 0.0),
child: Text(
'${_currentMailbox?.name?.name.capitalizeFirstEach ?? ''}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 17, color: AppColor.colorTextButton))
);
}
@@ -83,37 +85,69 @@ class AppBarMailWidgetBuilder {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconButton(
key: Key('button_move_to_mailbox_email'),
icon: SvgPicture.asset(_imagePaths.icMoveEmail, color: AppColor.colorButton, fit: BoxFit.fill),
onPressed: () {
if (_presentationEmail != null) {
_onEmailActionClick?.call(_presentationEmail!, EmailActionType.move);
}
}),
IconButton(
key: Key('button_mark_as_star_email'),
icon: SvgPicture.asset(
(_presentationEmail != null && _presentationEmail!.isFlaggedEmail())
? _imagePaths.icStar
: _imagePaths.icUnStar,
color: AppColor.colorButton,
fit: BoxFit.fill),
onPressed: () {
if (_markAsStarActionClick != null && _presentationEmail != null) {
_markAsStarActionClick!(_presentationEmail!);
onPressed: () {
if (_presentationEmail != null) {
_onEmailActionClick?.call(_presentationEmail!,
_presentationEmail!.isFlaggedEmail() ? EmailActionType.markAsUnStar : EmailActionType.markAsStar);
}
}),
IconButton(
key: Key('button_mark_as_unread_email'),
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icUnreadEmail, fit: BoxFit.fill),
key: Key('button_delete_email'),
icon: SvgPicture.asset(_imagePaths.icDeleteEmail, color: AppColor.colorButton, fit: BoxFit.fill),
onPressed: () {
if (_onUnreadEmailActionClick != null && _presentationEmail != null && _presentationEmail!.isReadEmail()) {
_onUnreadEmailActionClick!(_presentationEmail!);
}
}),
IconButton(
key: Key('button_move_to_mailbox_email'),
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icMoveEmail, fit: BoxFit.fill),
onPressed: () {
if (_onMoveToMailboxActionClick != null && _presentationEmail != null) {
_onMoveToMailboxActionClick!(_presentationEmail!);
if (_presentationEmail != null) {
_onEmailActionClick?.call(_presentationEmail!, EmailActionType.delete);
}
}),
_buildMoreButton(),
]
);
}
Widget _buildMoreButton() {
return Material(
key: Key('button_more_email'),
borderRadius: BorderRadius.circular(12),
color: Colors.transparent,
child: Padding(
padding: EdgeInsets.only(left: 10, right: 16),
child: GestureDetector(
onTap: () {
if (_presentationEmail != null && _responsiveUtils.isMobileDevice(_context)) {
_onMoreActionClick?.call(_presentationEmail!, null);
}
},
child: SvgPicture.asset(_imagePaths.icMore, color: AppColor.colorButton, fit: BoxFit.fill),
onTapDown: (detail) {
if (_presentationEmail != null && !_responsiveUtils.isMobileDevice(_context)) {
final screenSize = MediaQuery.of(_context).size;
final offset = detail.globalPosition;
final position = RelativeRect.fromLTRB(
offset.dx,
offset.dy,
screenSize.width - offset.dx,
screenSize.height - offset.dy,
);
_onMoreActionClick?.call(_presentationEmail!, position);
}
})
)
);
}
}
@@ -43,7 +43,7 @@ class BottomBarMailWidgetBuilder {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
if (presentationEmail.numberOfAllEmailAddress() > 1)
(ButtonBuilder(_imagePaths.icReplyAllV2)
(ButtonBuilder(_imagePaths.icReplyAll)
..key(Key('button_reply_all_message'))
..size(20)
..paddingIcon(EdgeInsets.only(
@@ -60,7 +60,7 @@ class BottomBarMailWidgetBuilder {
}})
..text(AppLocalizations.of(_context).reply_all, isVertical: _responsiveUtils.isMobile(_context)))
.build(),
(ButtonBuilder(_imagePaths.icReplyV2)
(ButtonBuilder(_imagePaths.icReply)
..key(Key('button_reply_message'))
..size(20)
..paddingIcon(EdgeInsets.only(
@@ -77,7 +77,7 @@ class BottomBarMailWidgetBuilder {
}})
..text(AppLocalizations.of(_context).reply, isVertical: _responsiveUtils.isMobile(_context)))
.build(),
(ButtonBuilder(_imagePaths.icForwardV2)
(ButtonBuilder(_imagePaths.icForward)
..key(Key('button_forward_message'))
..size(20)
..paddingIcon(EdgeInsets.only(
@@ -0,0 +1,49 @@
import 'package:core/core.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:model/model.dart';
class EmailActionCupertinoActionSheetActionBuilder extends CupertinoActionSheetActionBuilder<PresentationEmail> {
final PresentationEmail presentationEmail;
final SvgPicture? actionSelected;
final Color? bgColor;
final EdgeInsets? iconLeftPadding;
final EdgeInsets? iconRightPadding;
EmailActionCupertinoActionSheetActionBuilder(
Key key,
SvgPicture actionIcon,
String actionName,
this.presentationEmail,
{
this.actionSelected,
this.bgColor,
this.iconLeftPadding,
this.iconRightPadding,
}
) : super(key, actionIcon, actionName);
@override
Widget build() {
return Container(
color: bgColor ?? Colors.white,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
Padding(
padding: iconLeftPadding ?? EdgeInsets.only(left: 12, right: 16),
child: actionIcon),
Expanded(child: Text(actionName, textAlign: TextAlign.left, style: actionTextStyle())),
]),
onPressed: () {
if (onCupertinoActionSheetActionClick != null) {
onCupertinoActionSheetActionClick!(presentationEmail);
}
},
),
);
}
}
@@ -59,7 +59,7 @@ class LoginView extends GetWidget<LoginController> {
.setSloganText(AppLocalizations.of(context).login_text_slogan)
.setSloganTextAlign(TextAlign.center)
.setSloganTextStyle(TextStyle(color: AppColor.primaryColor, fontSize: 16, fontWeight: FontWeight.w700))
.setLogo(imagePaths.icLogoTMailV2)
.setLogo(imagePaths.icLogoTMail)
.build();
}
@@ -7,17 +7,17 @@ extension PresentationMailboxExtension on PresentationMailbox {
if (hasRole()) {
switch(role!.value) {
case 'inbox':
return imagePaths.icMailboxInboxV2;
return imagePaths.icMailboxInbox;
case 'drafts':
return imagePaths.icMailboxDraftsV2;
return imagePaths.icMailboxDrafts;
case 'outbox':
return imagePaths.icMailboxArchivedV2;
return imagePaths.icMailboxArchived;
case 'sent':
return imagePaths.icMailboxSentV2;
return imagePaths.icMailboxSent;
case 'trash':
return imagePaths.icMailboxTrashV2;
return imagePaths.icMailboxTrash;
case 'spam':
return imagePaths.icMailboxSpamV2;
return imagePaths.icMailboxSpam;
case 'templates':
return imagePaths.icMailboxTemplate;
case 'all_mail':
@@ -539,7 +539,7 @@ class MailboxController extends BaseController {
_appToast.showToastWithIcon(
Get.overlayContext!,
message: AppLocalizations.of(Get.context!).delete_mailboxes_successfully,
icon: _imagePaths.icSelectedV2);
icon: _imagePaths.icSelected);
}
refreshMailboxChanges();
}
@@ -41,7 +41,7 @@ class BottomBarSelectionMailboxWidget {
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
(ButtonBuilder(_imagePaths.icMoveV2)
(ButtonBuilder(_imagePaths.icMove)
..key(Key('button_move_all_mailbox'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton.withOpacity(0.3)))
@@ -63,7 +63,7 @@ class BottomBarSelectionMailboxWidget {
})
..text(AppLocalizations.of(_context).rename, isVertical: true))
.build(),
(ButtonBuilder(_imagePaths.icReadV2)
(ButtonBuilder(_imagePaths.icRead)
..key(Key('button_mark_read_all_mailbox'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton.withOpacity(0.3)))
@@ -71,7 +71,7 @@ class BottomBarSelectionMailboxWidget {
..onPressActionClick(() => {})
..text(AppLocalizations.of(_context).mark_as_read, isVertical: true))
.build(),
(ButtonBuilder(_imagePaths.icDeleteV2)
(ButtonBuilder(_imagePaths.icDelete)
..key(Key('button_delete_all_mailbox'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(
@@ -154,7 +154,7 @@ class MailBoxFolderTileBuilder {
child: IconButton(
padding: EdgeInsets.zero,
icon: SvgPicture.asset(
_mailboxNode.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelectedV2 : _imagePaths.icUnSelectedV2,
_mailboxNode.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelected : _imagePaths.icUnSelected,
width: 20,
height: 20,
fit: BoxFit.fill),
@@ -136,7 +136,7 @@ class MailboxTileBuilder {
child: IconButton(
padding: EdgeInsets.zero,
icon: SvgPicture.asset(
_presentationMailbox.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelectedV2 : _imagePaths.icUnSelectedV2,
_presentationMailbox.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelected : _imagePaths.icUnSelected,
width: 20,
height: 20,
fit: BoxFit.fill),
@@ -205,7 +205,7 @@ class ThreadView extends GetWidget<ThreadController> {
Widget _filterMessagesUnreadAction(BuildContext context, FilterMessageOption optionCurrent) {
return (FilterMessageCupertinoActionSheetActionBuilder(
Key('filter_unread_action'),
SvgPicture.asset(imagePaths.icUnreadV2, width: 28, height: 28, fit: BoxFit.fill),
SvgPicture.asset(imagePaths.icUnread, width: 28, height: 28, fit: BoxFit.fill),
AppLocalizations.of(context).unread,
FilterMessageOption.unread,
optionCurrent: optionCurrent,
@@ -42,7 +42,7 @@ class BottomBarThreadSelectionWidget {
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
(ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnreadV2 : _imagePaths.icReadV2)
(ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead)
..key(Key('button_mark_read_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
@@ -56,7 +56,7 @@ class BottomBarThreadSelectionWidget {
_listSelectionEmail.isAllEmailRead ? AppLocalizations.of(_context).unread : AppLocalizations.of(_context).read,
isVertical: _responsiveUtils.isMobile(_context)))
.build(),
(ButtonBuilder(_imagePaths.icFlagV2)
(ButtonBuilder(_imagePaths.icFlag)
..key(Key('button_flag_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
@@ -66,7 +66,7 @@ class BottomBarThreadSelectionWidget {
}})
..text(AppLocalizations.of(_context).flag, isVertical: _responsiveUtils.isMobile(_context)))
.build(),
(ButtonBuilder(_imagePaths.icMoveV2)
(ButtonBuilder(_imagePaths.icMove)
..key(Key('button_move_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
@@ -77,7 +77,7 @@ class BottomBarThreadSelectionWidget {
..text(AppLocalizations.of(_context).move, isVertical: _responsiveUtils.isMobile(_context)))
.build(),
if (!_responsiveUtils.isDesktop(_context) && !_responsiveUtils.isTabletLarge(_context))
(ButtonBuilder(_imagePaths.icSpamV2)
(ButtonBuilder(_imagePaths.icSpam)
..key(Key('button_spam_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
@@ -88,7 +88,7 @@ class BottomBarThreadSelectionWidget {
..text(AppLocalizations.of(_context).spam, isVertical: _responsiveUtils.isMobile(_context)))
.build(),
if (!_responsiveUtils.isDesktop(_context) && !_responsiveUtils.isTabletLarge(_context))
(ButtonBuilder(_imagePaths.icDeleteV2)
(ButtonBuilder(_imagePaths.icDelete)
..key(Key('button_delete_email'))
..paddingIcon(EdgeInsets.all(8))
..textStyle(TextStyle(fontSize: 12, color: AppColor.colorTextButton))
@@ -196,7 +196,7 @@ class EmailTileBuilder {
return AnimatedSwitcher(
duration: Duration(milliseconds: 600),
transitionBuilder: _transitionBuilder,
child: (IconBuilder(_presentationEmail.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelectedV2 : _imagePaths.icUnSelectedV2)
child: (IconBuilder(_presentationEmail.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelected : _imagePaths.icUnSelected)
..padding(EdgeInsets.all(14))
..size(GetPlatform.isWeb ? 48 : 56)
..addOnTapActionClick(() {