TF-1708 Sync use mailbox display name to show all mailbox name by in toast, dialog, label, path..
(cherry picked from commit 62137b655383199005c31d21fce46906fab451dc)
This commit is contained in:
@@ -412,7 +412,7 @@ abstract class BaseMailboxController extends BaseController {
|
|||||||
}) {
|
}) {
|
||||||
if (responsiveUtils.isLandscapeMobile(context) || responsiveUtils.isPortraitMobile(context)) {
|
if (responsiveUtils.isLandscapeMobile(context) || responsiveUtils.isPortraitMobile(context)) {
|
||||||
(ConfirmationDialogActionSheetBuilder(context)
|
(ConfirmationDialogActionSheetBuilder(context)
|
||||||
..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? ''))
|
..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context)))
|
||||||
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
||||||
..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
||||||
).show();
|
).show();
|
||||||
@@ -424,7 +424,7 @@ abstract class BaseMailboxController extends BaseController {
|
|||||||
child: (ConfirmDialogBuilder(imagePaths)
|
child: (ConfirmDialogBuilder(imagePaths)
|
||||||
..key(const Key('confirm_dialog_delete_mailbox'))
|
..key(const Key('confirm_dialog_delete_mailbox'))
|
||||||
..title(AppLocalizations.of(context).delete_mailboxes)
|
..title(AppLocalizations.of(context).delete_mailboxes)
|
||||||
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? ''))
|
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context)))
|
||||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
..styleTextConfirmButton(const TextStyle(
|
..styleTextConfirmButton(const TextStyle(
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
@@ -28,14 +29,13 @@ mixin MailboxActionHandlerMixin {
|
|||||||
final session = dashboardController.sessionCurrent;
|
final session = dashboardController.sessionCurrent;
|
||||||
final accountId = dashboardController.accountId.value;
|
final accountId = dashboardController.accountId.value;
|
||||||
final mailboxId = presentationMailbox.id;
|
final mailboxId = presentationMailbox.id;
|
||||||
final mailboxName = presentationMailbox.name;
|
|
||||||
final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0;
|
final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0;
|
||||||
if (session != null && accountId != null && mailboxName != null) {
|
if (session != null && accountId != null) {
|
||||||
dashboardController.markAsReadMailbox(
|
dashboardController.markAsReadMailbox(
|
||||||
session,
|
session,
|
||||||
accountId,
|
accountId,
|
||||||
mailboxId,
|
mailboxId,
|
||||||
mailboxName,
|
presentationMailbox.getDisplayName(context),
|
||||||
countEmailsUnread.toInt()
|
countEmailsUnread.toInt()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ class AppBarMailWidgetBuilder extends StatelessWidget {
|
|||||||
constraints: BoxConstraints(
|
constraints: BoxConstraints(
|
||||||
maxWidth: _responsiveUtils.getSizeScreenWidth(context) - 250),
|
maxWidth: _responsiveUtils.getSizeScreenWidth(context) - 250),
|
||||||
child: Text(
|
child: Text(
|
||||||
mailboxContain?.name?.name.capitalizeFirstEach ?? '',
|
mailboxContain?.getDisplayName(context) ?? '',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||||
@@ -9,21 +9,21 @@ extension PresentationMailboxExtension on PresentationMailbox {
|
|||||||
String getMailboxIcon(ImagePaths imagePaths) {
|
String getMailboxIcon(ImagePaths imagePaths) {
|
||||||
if (hasRole()) {
|
if (hasRole()) {
|
||||||
switch(role!.value) {
|
switch(role!.value) {
|
||||||
case 'inbox':
|
case PresentationMailbox.inboxRole:
|
||||||
return imagePaths.icMailboxInbox;
|
return imagePaths.icMailboxInbox;
|
||||||
case 'drafts':
|
case PresentationMailbox.draftsRole:
|
||||||
return imagePaths.icMailboxDrafts;
|
return imagePaths.icMailboxDrafts;
|
||||||
case 'outbox':
|
case PresentationMailbox.outboxRole:
|
||||||
return imagePaths.icMailboxOutbox;
|
return imagePaths.icMailboxOutbox;
|
||||||
case 'archive':
|
case PresentationMailbox.archiveRole:
|
||||||
return imagePaths.icMailboxArchived;
|
return imagePaths.icMailboxArchived;
|
||||||
case 'sent':
|
case PresentationMailbox.sentRole:
|
||||||
return imagePaths.icMailboxSent;
|
return imagePaths.icMailboxSent;
|
||||||
case 'trash':
|
case PresentationMailbox.trashRole:
|
||||||
return imagePaths.icMailboxTrash;
|
return imagePaths.icMailboxTrash;
|
||||||
case 'spam':
|
case PresentationMailbox.spamRole:
|
||||||
return imagePaths.icMailboxSpam;
|
return imagePaths.icMailboxSpam;
|
||||||
case 'templates':
|
case PresentationMailbox.templatesRole:
|
||||||
return imagePaths.icMailboxTemplate;
|
return imagePaths.icMailboxTemplate;
|
||||||
case 'all_mail':
|
case 'all_mail':
|
||||||
return imagePaths.icMailboxAllMail;
|
return imagePaths.icMailboxAllMail;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
|||||||
class MoveMailboxRequest with EquatableMixin {
|
class MoveMailboxRequest with EquatableMixin {
|
||||||
|
|
||||||
final MailboxId? destinationMailboxId;
|
final MailboxId? destinationMailboxId;
|
||||||
final MailboxName? destinationMailboxName;
|
final String? destinationMailboxDisplayName;
|
||||||
final MailboxId? parentId;
|
final MailboxId? parentId;
|
||||||
final MailboxId mailboxId;
|
final MailboxId mailboxId;
|
||||||
final MoveAction moveAction;
|
final MoveAction moveAction;
|
||||||
@@ -17,7 +17,7 @@ class MoveMailboxRequest with EquatableMixin {
|
|||||||
{
|
{
|
||||||
this.parentId,
|
this.parentId,
|
||||||
this.destinationMailboxId,
|
this.destinationMailboxId,
|
||||||
this.destinationMailboxName
|
this.destinationMailboxDisplayName
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -27,6 +27,6 @@ class MoveMailboxRequest with EquatableMixin {
|
|||||||
moveAction,
|
moveAction,
|
||||||
parentId,
|
parentId,
|
||||||
destinationMailboxId,
|
destinationMailboxId,
|
||||||
destinationMailboxName
|
destinationMailboxDisplayName
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -28,9 +28,9 @@ class UpdatingMarkAsMailboxReadState extends UIState {
|
|||||||
|
|
||||||
class MarkAsMailboxReadAllSuccess extends UIActionState {
|
class MarkAsMailboxReadAllSuccess extends UIActionState {
|
||||||
|
|
||||||
final MailboxName mailboxName;
|
final String mailboxDisplayName;
|
||||||
|
|
||||||
MarkAsMailboxReadAllSuccess(this.mailboxName,
|
MarkAsMailboxReadAllSuccess(this.mailboxDisplayName,
|
||||||
{
|
{
|
||||||
jmap.State? currentEmailState,
|
jmap.State? currentEmailState,
|
||||||
jmap.State? currentMailboxState,
|
jmap.State? currentMailboxState,
|
||||||
@@ -38,16 +38,16 @@ class MarkAsMailboxReadAllSuccess extends UIActionState {
|
|||||||
) : super(currentMailboxState, currentEmailState);
|
) : super(currentMailboxState, currentEmailState);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [mailboxName];
|
List<Object?> get props => [mailboxDisplayName];
|
||||||
}
|
}
|
||||||
|
|
||||||
class MarkAsMailboxReadHasSomeEmailFailure extends UIActionState {
|
class MarkAsMailboxReadHasSomeEmailFailure extends UIActionState {
|
||||||
|
|
||||||
final MailboxName mailboxName;
|
final String mailboxDisplayName;
|
||||||
final int countEmailsRead;
|
final int countEmailsRead;
|
||||||
|
|
||||||
MarkAsMailboxReadHasSomeEmailFailure(
|
MarkAsMailboxReadHasSomeEmailFailure(
|
||||||
this.mailboxName,
|
this.mailboxDisplayName,
|
||||||
this.countEmailsRead,
|
this.countEmailsRead,
|
||||||
{
|
{
|
||||||
jmap.State? currentEmailState,
|
jmap.State? currentEmailState,
|
||||||
@@ -56,7 +56,7 @@ class MarkAsMailboxReadHasSomeEmailFailure extends UIActionState {
|
|||||||
) : super(currentMailboxState, currentEmailState);
|
) : super(currentMailboxState, currentEmailState);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [mailboxName, countEmailsRead];
|
List<Object?> get props => [mailboxDisplayName, countEmailsRead];
|
||||||
}
|
}
|
||||||
|
|
||||||
class MarkAsMailboxReadAllFailure extends FeatureFailure {
|
class MarkAsMailboxReadAllFailure extends FeatureFailure {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class MoveMailboxSuccess extends UIActionState {
|
|||||||
final MoveAction moveAction;
|
final MoveAction moveAction;
|
||||||
final MailboxId? parentId;
|
final MailboxId? parentId;
|
||||||
final MailboxId? destinationMailboxId;
|
final MailboxId? destinationMailboxId;
|
||||||
final MailboxName? destinationMailboxName;
|
final String? destinationMailboxDisplayName;
|
||||||
|
|
||||||
MoveMailboxSuccess(
|
MoveMailboxSuccess(
|
||||||
this.mailboxIdSelected,
|
this.mailboxIdSelected,
|
||||||
@@ -20,7 +20,7 @@ class MoveMailboxSuccess extends UIActionState {
|
|||||||
{
|
{
|
||||||
this.parentId,
|
this.parentId,
|
||||||
this.destinationMailboxId,
|
this.destinationMailboxId,
|
||||||
this.destinationMailboxName,
|
this.destinationMailboxDisplayName,
|
||||||
jmap.State? currentEmailState,
|
jmap.State? currentEmailState,
|
||||||
jmap.State? currentMailboxState,
|
jmap.State? currentMailboxState,
|
||||||
}
|
}
|
||||||
@@ -29,14 +29,17 @@ class MoveMailboxSuccess extends UIActionState {
|
|||||||
@override
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
mailboxIdSelected,
|
mailboxIdSelected,
|
||||||
|
moveAction,
|
||||||
parentId,
|
parentId,
|
||||||
destinationMailboxId];
|
destinationMailboxId,
|
||||||
|
destinationMailboxDisplayName,
|
||||||
|
...super.props
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
class MoveMailboxFailure extends FeatureFailure {
|
class MoveMailboxFailure extends FeatureFailure {
|
||||||
final dynamic exception;
|
|
||||||
|
|
||||||
MoveMailboxFailure(this.exception);
|
MoveMailboxFailure(dynamic exception) : super(exception: exception);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [exception];
|
List<Object?> get props => [exception];
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class MarkAsMailboxReadInteractor {
|
|||||||
Session session,
|
Session session,
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MailboxId mailboxId,
|
MailboxId mailboxId,
|
||||||
MailboxName mailboxName,
|
String mailboxDisplayName,
|
||||||
int totalEmailUnread,
|
int totalEmailUnread,
|
||||||
StreamController<Either<Failure, Success>> onProgressController
|
StreamController<Either<Failure, Success>> onProgressController
|
||||||
) async* {
|
) async* {
|
||||||
@@ -44,15 +44,15 @@ class MarkAsMailboxReadInteractor {
|
|||||||
|
|
||||||
if (totalEmailUnread == listEmails.length) {
|
if (totalEmailUnread == listEmails.length) {
|
||||||
yield Right(MarkAsMailboxReadAllSuccess(
|
yield Right(MarkAsMailboxReadAllSuccess(
|
||||||
mailboxName,
|
mailboxDisplayName,
|
||||||
currentEmailState: currentEmailState,
|
currentEmailState: currentEmailState,
|
||||||
currentMailboxState: currentMailboxState));
|
currentMailboxState: currentMailboxState));
|
||||||
} else if (listEmails.isNotEmpty) {
|
} else if (listEmails.isNotEmpty) {
|
||||||
yield Right(MarkAsMailboxReadHasSomeEmailFailure(
|
yield Right(MarkAsMailboxReadHasSomeEmailFailure(
|
||||||
mailboxName,
|
mailboxDisplayName,
|
||||||
listEmails.length,
|
listEmails.length,
|
||||||
currentEmailState: currentEmailState,
|
currentEmailState: currentEmailState,
|
||||||
currentMailboxState: currentMailboxState));
|
currentMailboxState: currentMailboxState));
|
||||||
} else {
|
} else {
|
||||||
yield Left(MarkAsMailboxReadAllFailure());
|
yield Left(MarkAsMailboxReadAllFailure());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class MoveMailboxInteractor {
|
|||||||
request.moveAction,
|
request.moveAction,
|
||||||
parentId: request.parentId,
|
parentId: request.parentId,
|
||||||
destinationMailboxId: request.destinationMailboxId,
|
destinationMailboxId: request.destinationMailboxId,
|
||||||
destinationMailboxName: request.destinationMailboxName,
|
destinationMailboxDisplayName: request.destinationMailboxDisplayName,
|
||||||
currentMailboxState: currentMailboxState));
|
currentMailboxState: currentMailboxState));
|
||||||
} else {
|
} else {
|
||||||
yield Left<Failure, Success>(MoveMailboxFailure(null));
|
yield Left<Failure, Success>(MoveMailboxFailure(null));
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/rename_mailbox_in
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories_expand_mode.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories_expand_mode.dart';
|
||||||
@@ -615,7 +616,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
context,
|
context,
|
||||||
selectedMailboxList.first,
|
selectedMailboxList.first,
|
||||||
mailboxDashBoardController,
|
mailboxDashBoardController,
|
||||||
onMovingMailboxAction: _invokeMovingMailboxAction
|
onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -769,6 +770,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _handleMovingMailbox(
|
void _handleMovingMailbox(
|
||||||
|
BuildContext context,
|
||||||
Session session,
|
Session session,
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MoveAction moveAction,
|
MoveAction moveAction,
|
||||||
@@ -782,7 +784,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
mailboxSelected.id,
|
mailboxSelected.id,
|
||||||
moveAction,
|
moveAction,
|
||||||
destinationMailboxId: destinationMailbox?.id,
|
destinationMailboxId: destinationMailbox?.id,
|
||||||
destinationMailboxName: destinationMailbox?.name,
|
destinationMailboxDisplayName: destinationMailbox?.getDisplayName(context),
|
||||||
parentId: mailboxSelected.parentId)));
|
parentId: mailboxSelected.parentId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -793,7 +795,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
_appToast.showToastMessage(
|
_appToast.showToastMessage(
|
||||||
currentOverlayContext!,
|
currentOverlayContext!,
|
||||||
AppLocalizations.of(currentContext!).moved_to_mailbox(
|
AppLocalizations.of(currentContext!).moved_to_mailbox(
|
||||||
success.destinationMailboxName?.name ?? AppLocalizations.of(currentContext!).allMailboxes),
|
success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes),
|
||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () {
|
onActionClick: () {
|
||||||
_undoMovingMailbox(MoveMailboxRequest(
|
_undoMovingMailbox(MoveMailboxRequest(
|
||||||
@@ -905,7 +907,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
context,
|
context,
|
||||||
mailbox,
|
mailbox,
|
||||||
mailboxDashBoardController,
|
mailboxDashBoardController,
|
||||||
onMovingMailboxAction: _invokeMovingMailboxAction
|
onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case MailboxActions.markAsRead:
|
case MailboxActions.markAsRead:
|
||||||
@@ -934,11 +936,16 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _invokeMovingMailboxAction(PresentationMailbox mailboxSelected, PresentationMailbox? destinationMailbox) {
|
void _invokeMovingMailboxAction(
|
||||||
|
BuildContext context,
|
||||||
|
PresentationMailbox mailboxSelected,
|
||||||
|
PresentationMailbox? destinationMailbox
|
||||||
|
) {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final session = mailboxDashBoardController.sessionCurrent;
|
final session = mailboxDashBoardController.sessionCurrent;
|
||||||
if (session != null && accountId != null) {
|
if (session != null && accountId != null) {
|
||||||
_handleMovingMailbox(
|
_handleMovingMailbox(
|
||||||
|
context,
|
||||||
session,
|
session,
|
||||||
accountId,
|
accountId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/app_bar_mailbox_creator_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/app_bar_mailbox_creator_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/create_mailbox_name_input_decoration_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/create_mailbox_name_input_decoration_builder.dart';
|
||||||
@@ -154,7 +155,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
|
|||||||
fit: BoxFit.fill)),
|
fit: BoxFit.fill)),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Expanded(child: Obx(() => Text(
|
Expanded(child: Obx(() => Text(
|
||||||
controller.selectedMailbox.value?.name?.name ?? AppLocalizations.of(context).allMailboxes,
|
controller.selectedMailbox.value?.getDisplayName(context) ?? AppLocalizations.of(context).allMailboxes,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
|
|||||||
+8
-2
@@ -14,6 +14,7 @@ import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_st
|
|||||||
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
|
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
|
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/input_field_focus_manager.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/input_field_focus_manager.dart';
|
||||||
@@ -143,7 +144,12 @@ class AdvancedFilterController extends BaseController {
|
|||||||
|
|
||||||
if (destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox is PresentationMailbox) {
|
||||||
_destinationMailboxSelected = destinationMailbox;
|
_destinationMailboxSelected = destinationMailbox;
|
||||||
final mailboxName = destinationMailbox.name?.name;
|
String? mailboxName;
|
||||||
|
if (context.mounted) {
|
||||||
|
mailboxName = _destinationMailboxSelected?.getDisplayName(context);
|
||||||
|
} else {
|
||||||
|
mailboxName = _destinationMailboxSelected?.name?.name;
|
||||||
|
}
|
||||||
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName);
|
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -246,7 +252,7 @@ class AdvancedFilterController extends BaseController {
|
|||||||
if (searchEmailFilter.mailbox == null) {
|
if (searchEmailFilter.mailbox == null) {
|
||||||
mailBoxFilterInputController.text = AppLocalizations.of(context).allMailboxes;
|
mailBoxFilterInputController.text = AppLocalizations.of(context).allMailboxes;
|
||||||
} else {
|
} else {
|
||||||
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(searchEmailFilter.mailbox?.name?.name);
|
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(searchEmailFilter.mailbox?.getDisplayName(context));
|
||||||
}
|
}
|
||||||
hasAttachment.value = searchEmailFilter.hasAttachment;
|
hasAttachment.value = searchEmailFilter.hasAttachment;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-10
@@ -53,6 +53,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_r
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_app_dashboard_configuration_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_app_dashboard_configuration_state.dart';
|
||||||
@@ -1062,7 +1063,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
..messageText(actionType.getContentDialog(
|
..messageText(actionType.getContentDialog(
|
||||||
context,
|
context,
|
||||||
count: listEmails?.length,
|
count: listEmails?.length,
|
||||||
mailboxName: mailboxCurrent?.name?.name))
|
mailboxName: mailboxCurrent?.getDisplayName(context)))
|
||||||
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
||||||
..onConfirmAction(
|
..onConfirmAction(
|
||||||
actionType.getConfirmActionName(context),
|
actionType.getConfirmActionName(context),
|
||||||
@@ -1081,7 +1082,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
..content(actionType.getContentDialog(
|
..content(actionType.getContentDialog(
|
||||||
context,
|
context,
|
||||||
count: listEmails?.length,
|
count: listEmails?.length,
|
||||||
mailboxName: mailboxCurrent?.name?.name))
|
mailboxName: mailboxCurrent?.getDisplayName(context)))
|
||||||
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||||
..styleTextConfirmButton(const TextStyle(
|
..styleTextConfirmButton(const TextStyle(
|
||||||
@@ -1253,14 +1254,19 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
filterMessageOption.value = FilterMessageOption.all;
|
filterMessageOption.value = FilterMessageOption.all;
|
||||||
}
|
}
|
||||||
|
|
||||||
void markAsReadMailboxAction() {
|
void markAsReadMailboxAction(BuildContext context) {
|
||||||
final session = sessionCurrent;
|
final session = sessionCurrent;
|
||||||
final currentAccountId = accountId.value;
|
final currentAccountId = accountId.value;
|
||||||
final mailboxId = selectedMailbox.value?.id;
|
final mailboxId = selectedMailbox.value?.id;
|
||||||
final mailboxName = selectedMailbox.value?.name;
|
|
||||||
final countEmailsUnread = selectedMailbox.value?.unreadEmails?.value.value ?? 0;
|
final countEmailsUnread = selectedMailbox.value?.unreadEmails?.value.value ?? 0;
|
||||||
if (session != null && currentAccountId != null && mailboxId != null && mailboxName != null) {
|
if (session != null && currentAccountId != null && mailboxId != null) {
|
||||||
markAsReadMailbox(session, currentAccountId, mailboxId, mailboxName, countEmailsUnread.toInt());
|
markAsReadMailbox(
|
||||||
|
session,
|
||||||
|
currentAccountId,
|
||||||
|
mailboxId,
|
||||||
|
selectedMailbox.value?.getDisplayName(context) ?? '',
|
||||||
|
countEmailsUnread.toInt()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1268,14 +1274,14 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
Session session,
|
Session session,
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MailboxId mailboxId,
|
MailboxId mailboxId,
|
||||||
MailboxName mailboxName,
|
String mailboxDisplayName,
|
||||||
int totalEmailsUnread
|
int totalEmailsUnread
|
||||||
) {
|
) {
|
||||||
consumeState(_markAsMailboxReadInteractor.execute(
|
consumeState(_markAsMailboxReadInteractor.execute(
|
||||||
session,
|
session,
|
||||||
accountId,
|
accountId,
|
||||||
mailboxId,
|
mailboxId,
|
||||||
mailboxName,
|
mailboxDisplayName,
|
||||||
totalEmailsUnread,
|
totalEmailsUnread,
|
||||||
_progressStateController));
|
_progressStateController));
|
||||||
}
|
}
|
||||||
@@ -1287,14 +1293,14 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
if (currentContext != null && currentOverlayContext != null) {
|
if (currentContext != null && currentOverlayContext != null) {
|
||||||
_appToast.showToastSuccessMessage(
|
_appToast.showToastSuccessMessage(
|
||||||
currentOverlayContext!,
|
currentOverlayContext!,
|
||||||
AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadSuccess(success.mailboxName.name),
|
AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadSuccess(success.mailboxDisplayName),
|
||||||
leadingSVGIcon: _imagePaths.icReadToast);
|
leadingSVGIcon: _imagePaths.icReadToast);
|
||||||
}
|
}
|
||||||
} else if (success is MarkAsMailboxReadHasSomeEmailFailure) {
|
} else if (success is MarkAsMailboxReadHasSomeEmailFailure) {
|
||||||
if (currentContext != null && currentOverlayContext != null) {
|
if (currentContext != null && currentOverlayContext != null) {
|
||||||
_appToast.showToastSuccessMessage(
|
_appToast.showToastSuccessMessage(
|
||||||
currentOverlayContext!,
|
currentOverlayContext!,
|
||||||
AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadHasSomeEmailFailure(success.mailboxName.name, success.countEmailsRead),
|
AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadHasSomeEmailFailure(success.mailboxDisplayName, success.countEmailsRead),
|
||||||
leadingSVGIcon: _imagePaths.icReadToast);
|
leadingSVGIcon: _imagePaths.icReadToast);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.dart';
|
import 'package:core/presentation/state/success.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
@@ -9,6 +10,7 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart
|
|||||||
import 'package:model/extensions/mailbox_extension.dart';
|
import 'package:model/extensions/mailbox_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart';
|
||||||
@@ -64,7 +66,7 @@ class SpamReportController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dismissSpamReportAction() {
|
void dismissSpamReportAction(BuildContext context) {
|
||||||
if (Get.isRegistered<MailboxDashBoardController>()) {
|
if (Get.isRegistered<MailboxDashBoardController>()) {
|
||||||
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||||
final spamMailbox = _presentationSpamMailbox.value;
|
final spamMailbox = _presentationSpamMailbox.value;
|
||||||
@@ -78,7 +80,7 @@ class SpamReportController extends BaseController {
|
|||||||
session,
|
session,
|
||||||
accountId,
|
accountId,
|
||||||
spamMailbox.id,
|
spamMailbox.id,
|
||||||
spamMailbox.name ?? MailboxName(''),
|
spamMailbox.getDisplayName(context),
|
||||||
spamMailbox.unreadEmails?.value.value.toInt() ?? 0
|
spamMailbox.unreadEmails?.value.value.toInt() ?? 0
|
||||||
);
|
);
|
||||||
_presentationSpamMailbox.value = null;
|
_presentationSpamMailbox.value = null;
|
||||||
|
|||||||
@@ -393,7 +393,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
..textStyle(const TextStyle(
|
..textStyle(const TextStyle(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: AppColor.colorTextButtonHeaderThread))
|
color: AppColor.colorTextButtonHeaderThread))
|
||||||
..onPressActionClick(() => controller.markAsReadMailboxAction())
|
..onPressActionClick(() => controller.markAsReadMailboxAction(context))
|
||||||
..text(AppLocalizations.of(context).mark_all_as_read, isVertical: false))
|
..text(AppLocalizations.of(context).mark_all_as_read, isVertical: false))
|
||||||
.build(),
|
.build(),
|
||||||
),
|
),
|
||||||
|
|||||||
+2
-2
@@ -83,7 +83,7 @@ class SpamReportBannerWebWidget extends StatelessWidget {
|
|||||||
left: 16,
|
left: 16,
|
||||||
child: buildSVGIconButton(
|
child: buildSVGIconButton(
|
||||||
icon: imagePaths.icCloseComposer,
|
icon: imagePaths.icCloseComposer,
|
||||||
onTap: spamReportController.dismissSpamReportAction,
|
onTap: () => spamReportController.dismissSpamReportAction(context),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
@@ -92,7 +92,7 @@ class SpamReportBannerWebWidget extends StatelessWidget {
|
|||||||
right: 16,
|
right: 16,
|
||||||
child: buildSVGIconButton(
|
child: buildSVGIconButton(
|
||||||
icon: imagePaths.icCloseComposer,
|
icon: imagePaths.icCloseComposer,
|
||||||
onTap: spamReportController.dismissSpamReportAction,
|
onTap: () => spamReportController.dismissSpamReportAction(context),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart';
|
|||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/get_all_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/get_all_mailbox_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/empty_name_validator.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/empty_name_validator.dart';
|
||||||
@@ -234,7 +235,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
|
|||||||
mailboxSelected.value = destinationMailbox;
|
mailboxSelected.value = destinationMailbox;
|
||||||
errorRuleActionValue.value = _getErrorStringByInputValue(
|
errorRuleActionValue.value = _getErrorStringByInputValue(
|
||||||
context,
|
context,
|
||||||
mailboxSelected.value?.name?.name);
|
mailboxSelected.value?.getDisplayName(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -256,7 +257,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final errorAction = _getErrorStringByInputValue(context, mailboxSelected.value?.name?.name);
|
final errorAction = _getErrorStringByInputValue(context, mailboxSelected.value?.getDisplayName(context));
|
||||||
if (errorAction?.isNotEmpty == true) {
|
if (errorAction?.isNotEmpty == true) {
|
||||||
errorRuleActionValue.value = errorAction;
|
errorRuleActionValue.value = errorAction;
|
||||||
if (currentOverlayContext != null && currentContext != null) {
|
if (currentOverlayContext != null && currentContext != null) {
|
||||||
|
|||||||
+2
-1
@@ -7,6 +7,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition;
|
import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition;
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart';
|
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart';
|
||||||
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart';
|
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart';
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ class RuleFilterButtonField<T> extends StatelessWidget {
|
|||||||
|
|
||||||
String _getName(BuildContext context, T? value) {
|
String _getName(BuildContext context, T? value) {
|
||||||
if (value is PresentationMailbox) {
|
if (value is PresentationMailbox) {
|
||||||
return value.name?.name ?? '';
|
return value.getDisplayName(context);
|
||||||
}
|
}
|
||||||
if (value is rule_condition.Field) {
|
if (value is rule_condition.Field) {
|
||||||
return value.getTitle(context);
|
return value.getTitle(context);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
|
|||||||
import 'package:model/email/prefix_email_address.dart';
|
import 'package:model/email/prefix_email_address.dart';
|
||||||
import 'package:model/extensions/email_filter_condition_extension.dart';
|
import 'package:model/extensions/email_filter_condition_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -165,5 +166,5 @@ extension SearchEmailFilterExtension on SimpleSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String get mailboxName => mailbox?.name?.name ?? '';
|
String getMailboxName(BuildContext context) => mailbox?.getDisplayName(context) ?? '';
|
||||||
}
|
}
|
||||||
@@ -537,8 +537,8 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
|||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filterSelected
|
filterSelected
|
||||||
? controller.simpleSearchFilter.value.mailboxName
|
? controller.simpleSearchFilter.value.getMailboxName(context)
|
||||||
: AppLocalizations.of(context).mailbox,
|
: AppLocalizations.of(context).mailbox,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/search_mailbox_in
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
||||||
@@ -264,7 +265,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
|||||||
context,
|
context,
|
||||||
mailbox,
|
mailbox,
|
||||||
dashboardController,
|
dashboardController,
|
||||||
onMovingMailboxAction: _invokeMovingMailboxAction
|
onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case MailboxActions.delete:
|
case MailboxActions.delete:
|
||||||
@@ -310,11 +311,16 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _invokeMovingMailboxAction(PresentationMailbox mailboxSelected, PresentationMailbox? destinationMailbox) {
|
void _invokeMovingMailboxAction(
|
||||||
|
BuildContext context,
|
||||||
|
PresentationMailbox mailboxSelected,
|
||||||
|
PresentationMailbox? destinationMailbox
|
||||||
|
) {
|
||||||
final accountId = dashboardController.accountId.value;
|
final accountId = dashboardController.accountId.value;
|
||||||
final session = dashboardController.sessionCurrent;
|
final session = dashboardController.sessionCurrent;
|
||||||
if (session != null && accountId != null) {
|
if (session != null && accountId != null) {
|
||||||
_handleMovingMailbox(
|
_handleMovingMailbox(
|
||||||
|
context,
|
||||||
session,
|
session,
|
||||||
accountId,
|
accountId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
@@ -325,6 +331,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _handleMovingMailbox(
|
void _handleMovingMailbox(
|
||||||
|
BuildContext context,
|
||||||
Session session,
|
Session session,
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MoveAction moveAction,
|
MoveAction moveAction,
|
||||||
@@ -338,7 +345,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
|||||||
mailboxSelected.id,
|
mailboxSelected.id,
|
||||||
moveAction,
|
moveAction,
|
||||||
destinationMailboxId: destinationMailbox?.id,
|
destinationMailboxId: destinationMailbox?.id,
|
||||||
destinationMailboxName: destinationMailbox?.name,
|
destinationMailboxDisplayName: destinationMailbox?.getDisplayName(context),
|
||||||
parentId: mailboxSelected.parentId
|
parentId: mailboxSelected.parentId
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
@@ -348,7 +355,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
|||||||
if (success.moveAction == MoveAction.moving && currentOverlayContext != null && currentContext != null) {
|
if (success.moveAction == MoveAction.moving && currentOverlayContext != null && currentContext != null) {
|
||||||
_appToast.showToastMessage(
|
_appToast.showToastMessage(
|
||||||
currentOverlayContext!,
|
currentOverlayContext!,
|
||||||
AppLocalizations.of(currentContext!).moved_to_mailbox(success.destinationMailboxName?.name ?? AppLocalizations.of(currentContext!).allMailboxes),
|
AppLocalizations.of(currentContext!).moved_to_mailbox(success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes),
|
||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () {
|
onActionClick: () {
|
||||||
_undoMovingMailbox(MoveMailboxRequest(
|
_undoMovingMailbox(MoveMailboxRequest(
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import 'package:model/email/presentation_email.dart';
|
|||||||
import 'package:model/extensions/presentation_email_extension.dart';
|
import 'package:model/extensions/presentation_email_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:model/mailbox/select_mode.dart';
|
import 'package:model/mailbox/select_mode.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ mixin BaseEmailItemTile {
|
|||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
Widget buildMailboxContain(
|
Widget buildMailboxContain(
|
||||||
|
BuildContext context,
|
||||||
bool isSearchEmailRunning,
|
bool isSearchEmailRunning,
|
||||||
PresentationEmail email
|
PresentationEmail email
|
||||||
) {
|
) {
|
||||||
@@ -41,7 +43,7 @@ mixin BaseEmailItemTile {
|
|||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: AppColor.backgroundCounterMailboxColor),
|
color: AppColor.backgroundCounterMailboxColor),
|
||||||
child: TextOverflowBuilder(
|
child: TextOverflowBuilder(
|
||||||
email.mailboxName,
|
email.mailboxContain?.getDisplayName(context) ?? '',
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
color: AppColor.mailboxTextColor,
|
color: AppColor.mailboxTextColor,
|
||||||
@@ -64,7 +66,7 @@ mixin BaseEmailItemTile {
|
|||||||
email.hasRead ? AppColor.colorContentEmail : AppColor.colorNameEmail;
|
email.hasRead ? AppColor.colorContentEmail : AppColor.colorNameEmail;
|
||||||
|
|
||||||
bool hasMailboxLabel(bool isSearchEmailRunning, PresentationEmail email) {
|
bool hasMailboxLabel(bool isSearchEmailRunning, PresentationEmail email) {
|
||||||
return isSearchEmailRunning && email.mailboxName.isNotEmpty;
|
return isSearchEmailRunning && email.mailboxContain != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String informationSender(PresentationEmail email, PresentationMailbox? mailbox) {
|
String informationSender(PresentationEmail email, PresentationMailbox? mailbox) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
|
|||||||
child: _buildMenuButton(),
|
child: _buildMenuButton(),
|
||||||
),
|
),
|
||||||
Expanded(child: Text(
|
Expanded(child: Text(
|
||||||
_currentMailbox?.name?.name.capitalizeFirstEach ?? '',
|
_currentMailbox?.getDisplayName(context) ?? '',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||||
@@ -380,7 +381,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
|
|||||||
Container(
|
Container(
|
||||||
constraints: BoxConstraints(maxWidth: constraints.maxWidth - 220),
|
constraints: BoxConstraints(maxWidth: constraints.maxWidth - 220),
|
||||||
child: Text(
|
child: Text(
|
||||||
_currentMailbox?.name?.name.capitalizeFirstEach ?? '',
|
_currentMailbox?.getDisplayName(context) ?? '',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ class EmailTileBuilder with BaseEmailItemTile {
|
|||||||
isSearchEmailRunning,
|
isSearchEmailRunning,
|
||||||
_searchQuery)),
|
_searchQuery)),
|
||||||
buildMailboxContain(
|
buildMailboxContain(
|
||||||
|
_context,
|
||||||
isSearchEmailRunning,
|
isSearchEmailRunning,
|
||||||
_presentationEmail),
|
_presentationEmail),
|
||||||
if (_presentationEmail.hasStarred)
|
if (_presentationEmail.hasStarred)
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ class EmailTileBuilder with BaseEmailItemTile {
|
|||||||
_searchQuery
|
_searchQuery
|
||||||
)),
|
)),
|
||||||
buildMailboxContain(
|
buildMailboxContain(
|
||||||
|
_context,
|
||||||
isSearchEmailRunning,
|
isSearchEmailRunning,
|
||||||
_presentationEmail
|
_presentationEmail
|
||||||
),
|
),
|
||||||
@@ -265,6 +266,7 @@ class EmailTileBuilder with BaseEmailItemTile {
|
|||||||
_searchQuery
|
_searchQuery
|
||||||
)),
|
)),
|
||||||
buildMailboxContain(
|
buildMailboxContain(
|
||||||
|
_context,
|
||||||
isSearchEmailRunning,
|
isSearchEmailRunning,
|
||||||
_presentationEmail
|
_presentationEmail
|
||||||
),
|
),
|
||||||
@@ -488,6 +490,7 @@ class EmailTileBuilder with BaseEmailItemTile {
|
|||||||
Widget _buildDateTimeForDesktopScreen() {
|
Widget _buildDateTimeForDesktopScreen() {
|
||||||
return Row(children: [
|
return Row(children: [
|
||||||
buildMailboxContain(
|
buildMailboxContain(
|
||||||
|
_context,
|
||||||
isSearchEmailRunning,
|
isSearchEmailRunning,
|
||||||
_presentationEmail
|
_presentationEmail
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -74,8 +74,7 @@ class SpamReportBannerWidget extends StatelessWidget {
|
|||||||
context,
|
context,
|
||||||
AppLocalizations.of(context).dismiss,
|
AppLocalizations.of(context).dismiss,
|
||||||
AppColor.textFieldErrorBorderColor,
|
AppColor.textFieldErrorBorderColor,
|
||||||
() => spamReportController
|
() => spamReportController.dismissSpamReportAction(context)),
|
||||||
.dismissSpamReportAction()),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ class PresentationEmail with EquatableMixin {
|
|||||||
final Set<EmailAddress>? bcc;
|
final Set<EmailAddress>? bcc;
|
||||||
final Set<EmailAddress>? replyTo;
|
final Set<EmailAddress>? replyTo;
|
||||||
final Map<MailboxId, bool>? mailboxIds;
|
final Map<MailboxId, bool>? mailboxIds;
|
||||||
final List<MailboxName?>? mailboxNames;
|
|
||||||
final SelectMode selectMode;
|
final SelectMode selectMode;
|
||||||
final Uri? routeWeb;
|
final Uri? routeWeb;
|
||||||
final PresentationMailbox? mailboxContain;
|
final PresentationMailbox? mailboxContain;
|
||||||
@@ -55,7 +54,6 @@ class PresentationEmail with EquatableMixin {
|
|||||||
this.bcc,
|
this.bcc,
|
||||||
this.replyTo,
|
this.replyTo,
|
||||||
this.mailboxIds,
|
this.mailboxIds,
|
||||||
this.mailboxNames,
|
|
||||||
this.selectMode = SelectMode.INACTIVE,
|
this.selectMode = SelectMode.INACTIVE,
|
||||||
this.routeWeb,
|
this.routeWeb,
|
||||||
this.mailboxContain,
|
this.mailboxContain,
|
||||||
@@ -97,14 +95,6 @@ class PresentationEmail with EquatableMixin {
|
|||||||
|
|
||||||
bool get withAttachments => hasAttachment == true;
|
bool get withAttachments => hasAttachment == true;
|
||||||
|
|
||||||
String get mailboxName {
|
|
||||||
if (mailboxNames?.isNotEmpty == true) {
|
|
||||||
return mailboxNames?.first?.name ?? '';
|
|
||||||
} else {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String get routeWebAsString => routeWeb.toString();
|
String get routeWebAsString => routeWeb.toString();
|
||||||
|
|
||||||
bool get pushNotificationActivated => !isDraft && !hasRead;
|
bool get pushNotificationActivated => !isDraft && !hasRead;
|
||||||
@@ -139,7 +129,6 @@ class PresentationEmail with EquatableMixin {
|
|||||||
preview,
|
preview,
|
||||||
hasAttachment,
|
hasAttachment,
|
||||||
mailboxIds,
|
mailboxIds,
|
||||||
mailboxNames,
|
|
||||||
selectMode,
|
selectMode,
|
||||||
routeWeb,
|
routeWeb,
|
||||||
mailboxContain,
|
mailboxContain,
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: mailboxNames,
|
|
||||||
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE,
|
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: mailboxContain
|
||||||
@@ -73,7 +72,6 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: mailboxNames,
|
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: mailboxContain
|
||||||
@@ -133,15 +131,7 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
PresentationEmail toSearchPresentationEmail(Map<MailboxId, PresentationMailbox> mapMailboxes) {
|
PresentationEmail toSearchPresentationEmail(Map<MailboxId, PresentationMailbox> mapMailboxes) {
|
||||||
mailboxIds?.removeWhere((key, value) => !value);
|
mailboxIds?.removeWhere((key, value) => !value);
|
||||||
|
|
||||||
final listMailboxId = mailboxIds?.entries
|
final matchedMailbox = findMailboxContain(mapMailboxes);
|
||||||
.where((entry) => entry.value)
|
|
||||||
.map((entry) => entry.key)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
final listMailboxName = listMailboxId
|
|
||||||
?.map((mailboxId) => mapMailboxes.containsKey(mailboxId) ? mapMailboxes[mailboxId]?.name : null)
|
|
||||||
.where((mailboxName) => mailboxName != null)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
return PresentationEmail(
|
return PresentationEmail(
|
||||||
id: this.id,
|
id: this.id,
|
||||||
@@ -158,10 +148,9 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: listMailboxName,
|
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: matchedMailbox
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,7 +183,6 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: mailboxNames,
|
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: mailboxContain
|
||||||
@@ -217,7 +205,6 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: mailboxNames,
|
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: mailboxContain
|
||||||
@@ -240,7 +227,6 @@ extension PresentationEmailExtension on PresentationEmail {
|
|||||||
bcc: bcc,
|
bcc: bcc,
|
||||||
replyTo: replyTo,
|
replyTo: replyTo,
|
||||||
mailboxIds: mailboxIds,
|
mailboxIds: mailboxIds,
|
||||||
mailboxNames: mailboxNames,
|
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
routeWeb: routeWeb,
|
routeWeb: routeWeb,
|
||||||
mailboxContain: mailboxContain
|
mailboxContain: mailboxContain
|
||||||
|
|||||||
Reference in New Issue
Block a user