TF-313 Apply new ui for AppBar EmailView
This commit is contained in:
@@ -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(
|
||||
|
||||
+49
@@ -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(() {
|
||||
|
||||
Reference in New Issue
Block a user