Change from mailbox to folder (#2156)
(cherry picked from commit 1bdaa417a25648bbe5e9c3637c413c246da3d7ef)
This commit is contained in:
committed by
Dat H. Pham
parent
60425888b3
commit
e17f9ab4b1
@@ -5,12 +5,14 @@ import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_
|
||||
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
|
||||
import 'package:core/presentation/views/dialog/edit_text_dialog_builder.dart';
|
||||
import 'package:core/presentation/views/modal_sheets/edit_text_modal_sheet_builder.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.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/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:model/mailbox/expand_mode.dart';
|
||||
@@ -33,18 +35,16 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_catego
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/duplicate_name_validator.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/empty_name_validator.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/validator_failure_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/state/verify_name_view_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/validator_failure_extension.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/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
|
||||
abstract class BaseMailboxController extends BaseController {
|
||||
final TreeBuilder _treeBuilder;
|
||||
@@ -310,7 +310,7 @@ abstract class BaseMailboxController extends BaseController {
|
||||
if (responsiveUtils.isMobile(context)) {
|
||||
(EditTextModalSheetBuilder()
|
||||
..key(const Key('rename_mailbox_dialog'))
|
||||
..title(AppLocalizations.of(context).rename_mailbox)
|
||||
..title(AppLocalizations.of(context).renameFolder)
|
||||
..cancelText(AppLocalizations.of(context).cancel)
|
||||
..boxConstraints(responsiveUtils.isLandscapeMobile(context)
|
||||
? const BoxConstraints(maxWidth: 400)
|
||||
@@ -343,7 +343,7 @@ abstract class BaseMailboxController extends BaseController {
|
||||
builder: (context) =>
|
||||
PointerInterceptor(child: (EditTextDialogBuilder()
|
||||
..key(const Key('rename_mailbox_dialog'))
|
||||
..title(AppLocalizations.of(context).rename_mailbox)
|
||||
..title(AppLocalizations.of(context).renameFolder)
|
||||
..cancelText(AppLocalizations.of(context).cancel)
|
||||
..setErrorString((value) {
|
||||
return verifyMailboxNameAction(
|
||||
@@ -412,7 +412,7 @@ abstract class BaseMailboxController extends BaseController {
|
||||
}) {
|
||||
if (responsiveUtils.isLandscapeMobile(context) || responsiveUtils.isPortraitMobile(context)) {
|
||||
(ConfirmationDialogActionSheetBuilder(context)
|
||||
..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context)))
|
||||
..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_folder(presentationMailbox.getDisplayName(context)))
|
||||
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack())
|
||||
..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
|
||||
).show();
|
||||
@@ -423,8 +423,8 @@ abstract class BaseMailboxController extends BaseController {
|
||||
builder: (context) => PointerInterceptor(
|
||||
child: (ConfirmDialogBuilder(imagePaths)
|
||||
..key(const Key('confirm_dialog_delete_mailbox'))
|
||||
..title(AppLocalizations.of(context).delete_mailboxes)
|
||||
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context)))
|
||||
..title(AppLocalizations.of(context).deleteFolders)
|
||||
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_folder(presentationMailbox.getDisplayName(context)))
|
||||
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||
..styleTextConfirmButton(const TextStyle(
|
||||
|
||||
@@ -68,7 +68,7 @@ mixin MailboxActionHandlerMixin {
|
||||
} else {
|
||||
appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
}))
|
||||
@@ -95,7 +95,7 @@ mixin MailboxActionHandlerMixin {
|
||||
} else {
|
||||
appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
})
|
||||
@@ -128,7 +128,7 @@ mixin MailboxActionHandlerMixin {
|
||||
} else {
|
||||
appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
}))
|
||||
@@ -155,7 +155,7 @@ mixin MailboxActionHandlerMixin {
|
||||
} else {
|
||||
appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
@@ -39,7 +39,7 @@ extension EmailActionTypeExtension on EmailActionType {
|
||||
String getToastMessageMoveToMailboxSuccess(BuildContext context, {String? destinationPath}) {
|
||||
switch(this) {
|
||||
case EmailActionType.moveToMailbox:
|
||||
return AppLocalizations.of(context).moved_to_mailbox(destinationPath ?? '');
|
||||
return AppLocalizations.of(context).movedToFolder(destinationPath ?? '');
|
||||
case EmailActionType.moveToTrash:
|
||||
return AppLocalizations.of(context).moved_to_trash;
|
||||
case EmailActionType.moveToSpam:
|
||||
|
||||
@@ -10,8 +10,8 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/method/error_method_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/model.dart';
|
||||
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';
|
||||
@@ -342,9 +342,9 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
void _createNewMailboxFailure(CreateNewMailboxFailure failure) {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
final exception = failure.exception;
|
||||
var messageError = AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
var messageError = AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
if (exception is ErrorMethodResponse) {
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
}
|
||||
_appToast.showToastErrorMessage(currentOverlayContext!, messageError);
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||
import 'package:core/presentation/views/list/tree_view.dart';
|
||||
import 'package:core/presentation/views/search/search_bar_view.dart';
|
||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -172,7 +172,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
overflow: CommonTextStyle.defaultTextOverFlow),
|
||||
focusNode: controller.nameInputFocusNode,
|
||||
decoration: (CreateMailboxNameInputDecorationBuilder()
|
||||
..setHintText(AppLocalizations.of(context).hint_input_create_new_mailbox)
|
||||
..setHintText(AppLocalizations.of(context).hintInputCreateNewFolder)
|
||||
..setErrorText(controller.getErrorInputNameString(context)))
|
||||
.build(),
|
||||
))
|
||||
@@ -203,7 +203,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
SearchBarView(
|
||||
_imagePaths,
|
||||
margin: const EdgeInsets.all(16),
|
||||
hintTextSearch: AppLocalizations.of(context).hint_search_mailboxes,
|
||||
hintTextSearch: AppLocalizations.of(context).hintSearchFolders,
|
||||
onOpenSearchViewAction: controller.enableSearch
|
||||
),
|
||||
_buildLoadingView(),
|
||||
@@ -450,7 +450,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Expanded(child: Text(
|
||||
AppLocalizations.of(context).allMailboxes,
|
||||
AppLocalizations.of(context).allFolders,
|
||||
maxLines: 1,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
@@ -502,7 +502,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
PresentationMailbox newPresentationMailbox;
|
||||
if (presentationMailbox.id == PresentationMailbox.unifiedMailbox.id) {
|
||||
newPresentationMailbox = presentationMailbox
|
||||
.toPresentationMailboxWithMailboxPath(AppLocalizations.of(context).allMailboxes);
|
||||
.toPresentationMailboxWithMailboxPath(AppLocalizations.of(context).allFolders);
|
||||
} else {
|
||||
final path = controller.findNodePath(presentationMailbox.id)
|
||||
?? presentationMailbox.name?.name;
|
||||
@@ -551,7 +551,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
width: 18,
|
||||
height: 18,
|
||||
fit: BoxFit.fill),
|
||||
hintText: AppLocalizations.of(context).hint_search_mailboxes,
|
||||
hintText: AppLocalizations.of(context).hintSearchFolders,
|
||||
onClearTextSearchAction: controller.clearSearchText,
|
||||
onTextChangeSearchAction: (query) => controller.searchMailbox(context, query),
|
||||
onSearchTextAction: (query) => controller.searchMailbox(context, query),
|
||||
|
||||
@@ -11,7 +11,7 @@ enum DestinationScreenType {
|
||||
case DestinationScreenType.destinationPicker:
|
||||
return mailboxActionTitle;
|
||||
case DestinationScreenType.createNewMailbox:
|
||||
return AppLocalizations.of(context).createNewMailbox;
|
||||
return AppLocalizations.of(context).createNewFolder;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,9 +9,9 @@ enum MailboxSubscribeAction {
|
||||
String getToastMessageSuccess(BuildContext context) {
|
||||
switch(this) {
|
||||
case MailboxSubscribeAction.subscribe:
|
||||
return AppLocalizations.of(context).toastMessageShowMailboxSuccess;
|
||||
return AppLocalizations.of(context).toastMessageShowFolderSuccess;
|
||||
case MailboxSubscribeAction.unSubscribe:
|
||||
return AppLocalizations.of(context).toastMsgHideMailboxSuccess;
|
||||
return AppLocalizations.of(context).toastMsgHideFolderSuccess;
|
||||
case MailboxSubscribeAction.undo:
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -539,9 +539,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
void _createNewMailboxFailure(CreateNewMailboxFailure failure) {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
final exception = failure.exception;
|
||||
var messageError = AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
var messageError = AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
if (exception is ErrorMethodResponse) {
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
}
|
||||
_appToast.showToastErrorMessage(currentOverlayContext!, messageError);
|
||||
}
|
||||
@@ -683,7 +683,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).delete_mailboxes_successfully);
|
||||
AppLocalizations.of(currentContext!).deleteFoldersSuccessfully);
|
||||
}
|
||||
|
||||
if (listMailboxIdDeleted.contains(selectedMailbox?.id)) {
|
||||
@@ -701,7 +701,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
_responsiveUtils.isPortraitMobile(context)) {
|
||||
(ConfirmationDialogActionSheetBuilder(context)
|
||||
..messageText(AppLocalizations.of(context)
|
||||
.messageConfirmationDialogDeleteMultipleMailbox(selectedMailboxList.length))
|
||||
.messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length))
|
||||
..onCancelAction(AppLocalizations.of(context).cancel, () =>
|
||||
popBack())
|
||||
..onConfirmAction(AppLocalizations.of(context).delete, () =>
|
||||
@@ -713,9 +713,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths)
|
||||
..key(const Key('confirm_dialog_delete_multiple_mailbox'))
|
||||
..title(AppLocalizations.of(context).delete_mailboxes)
|
||||
..title(AppLocalizations.of(context).deleteFolders)
|
||||
..content(AppLocalizations.of(context)
|
||||
.messageConfirmationDialogDeleteMultipleMailbox(selectedMailboxList.length))
|
||||
.messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length))
|
||||
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog,
|
||||
fit: BoxFit.fill))
|
||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||
@@ -767,7 +767,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastErrorMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).delete_mailboxes_failure,
|
||||
AppLocalizations.of(currentContext!).deleteFoldersFailure,
|
||||
leadingSVGIcon: _imagePaths.icDeleteToast
|
||||
);
|
||||
}
|
||||
@@ -813,8 +813,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
&& currentContext != null) {
|
||||
_appToast.showToastMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).moved_to_mailbox(
|
||||
success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes),
|
||||
AppLocalizations.of(currentContext!).movedToFolder(
|
||||
success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allFolders),
|
||||
actionName: AppLocalizations.of(currentContext!).undo,
|
||||
onActionClick: () {
|
||||
_undoMovingMailbox(MoveMailboxRequest(
|
||||
@@ -1126,7 +1126,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).toastMsgHideMailboxSuccess,
|
||||
AppLocalizations.of(currentContext!).toastMsgHideFolderSuccess,
|
||||
actionName: AppLocalizations.of(currentContext!).undo,
|
||||
onActionClick: () => _undoUnsubscribeMailboxAction(
|
||||
mailboxIdSubscribed,
|
||||
|
||||
@@ -219,7 +219,7 @@ class MailboxView extends BaseMailboxView {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context).mailBoxes,
|
||||
AppLocalizations.of(context).folders,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
color: Colors.black,
|
||||
@@ -236,7 +236,7 @@ class MailboxView extends BaseMailboxView {
|
||||
colorFilter: AppColor.colorTextButton.asFilter(),
|
||||
fit: BoxFit.fill
|
||||
),
|
||||
tooltip: AppLocalizations.of(context).searchForMailboxes,
|
||||
tooltip: AppLocalizations.of(context).searchForFolders,
|
||||
onTap: () => controller.openSearchViewAction(context)
|
||||
),
|
||||
buildIconWeb(
|
||||
@@ -248,7 +248,7 @@ class MailboxView extends BaseMailboxView {
|
||||
imagePaths.icAddNewFolder,
|
||||
colorFilter: AppColor.colorTextButton.asFilter(),
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).new_mailbox,
|
||||
tooltip: AppLocalizations.of(context).newFolder,
|
||||
onTap: () => controller.goToCreateNewMailboxView(context)),
|
||||
]),
|
||||
]),
|
||||
|
||||
@@ -170,7 +170,7 @@ class MailboxView extends BaseMailboxView {
|
||||
imagePaths.icAddNewFolder,
|
||||
colorFilter: AppColor.colorTextButton.asFilter(),
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).new_mailbox,
|
||||
tooltip: AppLocalizations.of(context).newFolder,
|
||||
onTap: () => controller.goToCreateNewMailboxView(context)),
|
||||
],
|
||||
)),
|
||||
|
||||
@@ -36,7 +36,7 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
return AppLocalizations.of(context).moveTo;
|
||||
case MailboxActions.select:
|
||||
case MailboxActions.selectForRuleAction:
|
||||
return AppLocalizations.of(context).selectMailbox;
|
||||
return AppLocalizations.of(context).selectFolder;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
@@ -55,15 +55,15 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
case MailboxActions.markAsRead:
|
||||
return AppLocalizations.of(context).mark_as_read;
|
||||
case MailboxActions.move:
|
||||
return AppLocalizations.of(context).moveMailbox;
|
||||
return AppLocalizations.of(context).moveFolder;
|
||||
case MailboxActions.rename:
|
||||
return AppLocalizations.of(context).rename_mailbox;
|
||||
return AppLocalizations.of(context).renameFolder;
|
||||
case MailboxActions.delete:
|
||||
return AppLocalizations.of(context).deleteMailbox;
|
||||
return AppLocalizations.of(context).deleteFolder;
|
||||
case MailboxActions.disableMailbox:
|
||||
return AppLocalizations.of(context).hideMailBoxes;
|
||||
return AppLocalizations.of(context).hideFolder;
|
||||
case MailboxActions.enableMailbox:
|
||||
return AppLocalizations.of(context).showMailbox;
|
||||
return AppLocalizations.of(context).showFolder;
|
||||
case MailboxActions.emptyTrash:
|
||||
return AppLocalizations.of(context).emptyTrash;
|
||||
case MailboxActions.emptySpam:
|
||||
|
||||
+2
-2
@@ -12,14 +12,14 @@ extension ValicatorFailureExtension on VerifyNameFailure {
|
||||
if (actions == MailboxActions.rename) {
|
||||
return AppLocalizations.of(context).this_field_cannot_be_blank;
|
||||
}
|
||||
return AppLocalizations.of(context).name_of_mailbox_is_required;
|
||||
return AppLocalizations.of(context).nameOfFolderIsRequired;
|
||||
} else if (exception is DuplicatedNameException) {
|
||||
if (actions == MailboxActions.rename) {
|
||||
return AppLocalizations.of(context).there_is_already_folder_with_the_same_name;
|
||||
}
|
||||
return AppLocalizations.of(context).this_folder_name_is_already_taken;
|
||||
} else if (exception is SpecialCharacterException) {
|
||||
return AppLocalizations.of(context).mailbox_name_cannot_contain_special_characters;
|
||||
return AppLocalizations.of(context).folderNameCannotContainSpecialCharacters;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/utils/style_utils.dart';
|
||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -91,7 +91,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
|
||||
Widget _buildAppBar(BuildContext context) {
|
||||
return (AppBarMailboxCreatorBuilder(
|
||||
context,
|
||||
title: AppLocalizations.of(context).new_mailbox,
|
||||
title: AppLocalizations.of(context).newFolder,
|
||||
isValidated: true)
|
||||
..addOnCancelActionClick(() => controller.closeMailboxCreator(context))
|
||||
..addOnDoneActionClick(() => controller.createNewMailbox(context)))
|
||||
@@ -114,7 +114,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
|
||||
overflow: CommonTextStyle.defaultTextOverFlow),
|
||||
focusNode: controller.nameInputFocusNode,
|
||||
decoration: (CreateMailboxNameInputDecorationBuilder()
|
||||
..setHintText(AppLocalizations.of(context).hint_input_create_new_mailbox)
|
||||
..setHintText(AppLocalizations.of(context).hintInputCreateNewFolder)
|
||||
..setErrorText(controller.getErrorInputNameString(context)))
|
||||
.build(),
|
||||
))
|
||||
@@ -154,7 +154,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
|
||||
fit: BoxFit.fill)),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(child: Obx(() => Text(
|
||||
controller.selectedMailbox.value?.getDisplayName(context) ?? AppLocalizations.of(context).allMailboxes,
|
||||
controller.selectedMailbox.value?.getDisplayName(context) ?? AppLocalizations.of(context).allFolders,
|
||||
maxLines: 1,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
|
||||
+1
-1
@@ -251,7 +251,7 @@ class AdvancedFilterController extends BaseController {
|
||||
dateFilterSelectedFormAdvancedSearch.value = searchEmailFilter.emailReceiveTimeType;
|
||||
_destinationMailboxSelected = searchEmailFilter.mailbox;
|
||||
if (searchEmailFilter.mailbox == null) {
|
||||
mailBoxFilterInputController.text = AppLocalizations.of(context).allMailboxes;
|
||||
mailBoxFilterInputController.text = AppLocalizations.of(context).allFolders;
|
||||
} else {
|
||||
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(searchEmailFilter.mailbox?.getDisplayName(context));
|
||||
}
|
||||
|
||||
+9
-9
@@ -12,6 +12,7 @@ import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart
|
||||
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
@@ -31,20 +32,20 @@ import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts
|
||||
import 'package:tmail_ui_user/features/composer/domain/usecases/save_email_as_drafts_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/usecases/update_email_drafts_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/compose_action_mode.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/save_to_draft_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/delete_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/store_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/compose_action_mode.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/save_to_draft_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/delete_multiple_emails_permanently_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/delete_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/store_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/delete_email_permanently_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart';
|
||||
@@ -138,7 +139,6 @@ import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:workmanager/workmanager.dart' as work_manager;
|
||||
|
||||
@@ -2018,7 +2018,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
} else {
|
||||
_appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
}))
|
||||
@@ -2045,7 +2045,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
} else {
|
||||
_appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
AppLocalizations.of(context).noEmailInYourCurrentFolder
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ enum AdvancedSearchFilterField {
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).doesNotHave;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).mailbox;
|
||||
return AppLocalizations.of(context).folder;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).date;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
@@ -44,7 +44,7 @@ enum AdvancedSearchFilterField {
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).enterSomeSuggestions;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).allMailboxes;
|
||||
return AppLocalizations.of(context).allFolders;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).allTime;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ class MailboxVisibilityController extends BaseMailboxController {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).toastMsgHideMailboxSuccess,
|
||||
AppLocalizations.of(currentContext!).toastMsgHideFolderSuccess,
|
||||
actionName: AppLocalizations.of(currentContext!).undo,
|
||||
onActionClick: () => _subscribeMailboxAction(
|
||||
SubscribeMailboxRequest(
|
||||
|
||||
+2
-2
@@ -17,13 +17,13 @@ class MailboxVisibilityHeaderWidget extends StatelessWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(AppLocalizations.of(context).mailboxVisibility,
|
||||
Text(AppLocalizations.of(context).folderVisibility,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black)),
|
||||
const SizedBox(height: 4),
|
||||
Text(AppLocalizations.of(context).mailboxVisibilitySubtitle,
|
||||
Text(AppLocalizations.of(context).folderVisibilitySubtitle,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w500,
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
SettingFirstLevelTileBuilder(
|
||||
AccountMenuItem.mailboxVisibility.getName(context),
|
||||
AccountMenuItem.mailboxVisibility.getIcon(_imagePaths),
|
||||
subtitle: AppLocalizations.of(context).mailboxVisibilitySubtitle,
|
||||
subtitle: AppLocalizations.of(context).folderVisibilitySubtitle,
|
||||
() => controller.selectSettings(AccountMenuItem.mailboxVisibility)
|
||||
),
|
||||
Divider(
|
||||
|
||||
@@ -44,7 +44,7 @@ enum AccountMenuItem {
|
||||
case AccountMenuItem.vacation:
|
||||
return AppLocalizations.of(context).vacation;
|
||||
case AccountMenuItem.mailboxVisibility:
|
||||
return AppLocalizations.of(context).mailboxVisibility;
|
||||
return AppLocalizations.of(context).folderVisibility;
|
||||
case AccountMenuItem.none:
|
||||
return AppLocalizations.of(context).profiles;
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Text(
|
||||
AppLocalizations.of(context).toMailbox,
|
||||
AppLocalizations.of(context).toFolder,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
maxLines: 1,
|
||||
@@ -349,7 +349,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
|
||||
alignment: Alignment.centerLeft,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Text(
|
||||
AppLocalizations.of(context).toMailbox,
|
||||
AppLocalizations.of(context).toFolder,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
maxLines: 1,
|
||||
@@ -519,7 +519,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
|
||||
alignment: Alignment.centerLeft,
|
||||
padding: const EdgeInsets.symmetric(vertical: 12),
|
||||
child: Text(
|
||||
AppLocalizations.of(context).toMailbox,
|
||||
AppLocalizations.of(context).toFolder,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
maxLines: 1,
|
||||
|
||||
@@ -5,8 +5,8 @@ import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/utils/style_utils.dart';
|
||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -27,10 +27,10 @@ import 'package:tmail_ui_user/features/search/email/presentation/widgets/email_r
|
||||
import 'package:tmail_ui_user/features/search/email/presentation/widgets/email_receive_time_cupertino_action_sheet_action_builder.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/empty_emails_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart'
|
||||
if (dart.library.html) 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_web_builder.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/empty_emails_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
with AppLoaderMixin {
|
||||
@@ -539,7 +539,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
Text(
|
||||
filterSelected
|
||||
? controller.simpleSearchFilter.value.getMailboxName(context)
|
||||
: AppLocalizations.of(context).mailbox,
|
||||
: AppLocalizations.of(context).folder,
|
||||
maxLines: 1,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:core/presentation/utils/keyboard_utils.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:debounce_throttle/debounce_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -15,12 +16,12 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/method/error_method_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/presentation_email_extension.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart';
|
||||
import 'package:debounce_throttle/debounce_throttle.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/mailbox_action_handler_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||
@@ -66,7 +67,6 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class SearchMailboxController extends BaseMailboxController with MailboxActionHandlerMixin {
|
||||
@@ -378,7 +378,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
if (success.moveAction == MoveAction.moving && currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).moved_to_mailbox(success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes),
|
||||
AppLocalizations.of(currentContext!).movedToFolder(success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allFolders),
|
||||
actionName: AppLocalizations.of(currentContext!).undo,
|
||||
onActionClick: () {
|
||||
_undoMovingMailbox(MoveMailboxRequest(
|
||||
@@ -437,7 +437,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).delete_mailboxes_successfully);
|
||||
AppLocalizations.of(currentContext!).deleteFoldersSuccessfully);
|
||||
}
|
||||
|
||||
if (listMailboxIdDeleted.contains(dashboardController.selectedMailbox.value?.id)) {
|
||||
@@ -452,7 +452,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastErrorMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).delete_mailboxes_failure);
|
||||
AppLocalizations.of(currentContext!).deleteFoldersFailure);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -688,9 +688,9 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
void _createNewMailboxFailure(CreateNewMailboxFailure failure) {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
final exception = failure.exception;
|
||||
var messageError = AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
var messageError = AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
if (exception is ErrorMethodResponse) {
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).create_new_mailbox_failure;
|
||||
messageError = exception.description ?? AppLocalizations.of(currentContext!).createNewFolderFailure;
|
||||
}
|
||||
_appToast.showToastErrorMessage(currentOverlayContext!, messageError);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:focused_menu_custom/modals.dart';
|
||||
@@ -154,7 +154,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
|
||||
onTextSubmitted: (text) => controller.onTextSearchSubmitted(context, text),
|
||||
decoration: InputDecoration(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
hintText: AppLocalizations.of(context).searchForMailboxes,
|
||||
hintText: AppLocalizations.of(context).searchForFolders,
|
||||
hintStyle: const TextStyle(
|
||||
color: AppColor.loginTextFieldHintColor,
|
||||
fontSize: 15,
|
||||
|
||||
@@ -42,7 +42,7 @@ class AppBarSendingQueueWidget extends StatelessWidget {
|
||||
icon: _imagePaths.icMenuMailbox,
|
||||
backgroundColor: Colors.transparent,
|
||||
iconColor: AppBarSendingQueueWidgetStyle.iconColor,
|
||||
tooltipMessage: AppLocalizations.of(context).openMailboxMenu,
|
||||
tooltipMessage: AppLocalizations.of(context).openFolderMenu,
|
||||
onTapActionCallback: onOpenMailboxMenu
|
||||
)
|
||||
else
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class DefaultWebAppBarThreadWidget extends StatelessWidget {
|
||||
backgroundColor: Colors.transparent,
|
||||
padding: DefaultWebAppBarThreadWidgetStyle.mailboxMenuPadding,
|
||||
maxWidth: DefaultWebAppBarThreadWidgetStyle.buttonMaxWidth,
|
||||
tooltipMessage: AppLocalizations.of(context).openMailboxMenu,
|
||||
tooltipMessage: AppLocalizations.of(context).openFolderMenu,
|
||||
onTapActionCallback: openMailboxAction,
|
||||
),
|
||||
Expanded(
|
||||
|
||||
Reference in New Issue
Block a user