From fe4c1c191737706c73c308165329eee4d393c134 Mon Sep 17 00:00:00 2001 From: ManhNTX Date: Tue, 1 Nov 2022 08:50:07 +0700 Subject: [PATCH] TF-996: rename email controller --- ....dart => email_supervisor_controller.dart} | 6 +-- ...ller.dart => single_email_controller.dart} | 46 +++++++++---------- .../email/presentation/email_bindings.dart | 8 ++-- .../email/presentation/email_view.dart | 20 ++++---- 4 files changed, 39 insertions(+), 41 deletions(-) rename lib/features/email/presentation/controller/{email_parent_controller.dart => email_supervisor_controller.dart} (92%) rename lib/features/email/presentation/controller/{email_controller.dart => single_email_controller.dart} (95%) diff --git a/lib/features/email/presentation/controller/email_parent_controller.dart b/lib/features/email/presentation/controller/email_supervisor_controller.dart similarity index 92% rename from lib/features/email/presentation/controller/email_parent_controller.dart rename to lib/features/email/presentation/controller/email_supervisor_controller.dart index 35212d15e..eb90ada29 100644 --- a/lib/features/email/presentation/controller/email_parent_controller.dart +++ b/lib/features/email/presentation/controller/email_supervisor_controller.dart @@ -8,11 +8,10 @@ import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; -import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; -class EmailParentController extends BaseController with AppLoaderMixin { +class EmailSupervisorController extends BaseController { final mailboxDashBoardController = Get.find(); @@ -29,7 +28,6 @@ class EmailParentController extends BaseController with AppLoaderMixin { RxList get listEmail => mailboxDashBoardController.searchController.isSearchEmailRunning && !kIsWeb ? mailboxDashBoardController.listResultSearch : mailboxDashBoardController.emailsInCurrentMailbox; - @override void onClose() { pageController?.dispose(); @@ -51,7 +49,7 @@ class EmailParentController extends BaseController with AppLoaderMixin { } void _checkEnableNavigatorPageView() { - canGetNewerEmail.value = currentIndexPageView > 0; + canGetNewerEmail.value = listEmail.length > 1 && currentIndexPageView > 0; canGetOlderEmail.value = listEmail.length > 1 && currentIndexPageView < listEmail.length - 1; } diff --git a/lib/features/email/presentation/controller/email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart similarity index 95% rename from lib/features/email/presentation/controller/email_controller.dart rename to lib/features/email/presentation/controller/single_email_controller.dart index 3428dde15..c5012b92a 100644 --- a/lib/features/email/presentation/controller/email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -27,7 +27,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; -import 'package:tmail_ui_user/features/email/presentation/controller/email_parent_controller.dart'; +import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart'; import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.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'; @@ -65,10 +65,10 @@ import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:uuid/uuid.dart'; -class EmailController extends BaseController with AppLoaderMixin { +class SingleEmailController extends BaseController with AppLoaderMixin { final mailboxDashBoardController = Get.find(); - final emailParentController = Get.find(); + final emailSupervisorController = Get.find(); final responsiveUtils = Get.find(); final imagePaths = Get.find(); final _appToast = Get.find(); @@ -103,13 +103,13 @@ class EmailController extends BaseController with AppLoaderMixin { StreamController>.broadcast(); Stream> get downloadProgressState => _downloadProgressStateController.stream; - PresentationEmail? get currentEmail => emailParentController.selectedEmail.value; + PresentationEmail? get currentEmail => emailSupervisorController.selectedEmail.value; bool get isDisplayFullEmailAddress => emailAddressExpandMode.value == ExpandMode.EXPAND; bool get isDisplayFullAttachments => attachmentsExpandMode.value == ExpandMode.EXPAND; - EmailController( + SingleEmailController( this._getEmailContentInteractor, this._markAsEmailReadInteractor, this._downloadAttachmentsInteractor, @@ -132,8 +132,8 @@ class EmailController extends BaseController with AppLoaderMixin { @override void onReady() { injectMdnBindings( - emailParentController.sessionCurrent, - emailParentController.accountId, + emailSupervisorController.sessionCurrent, + emailSupervisorController.accountId, ); try { _sendReceiptToSenderInteractor = Get.find(); @@ -154,19 +154,19 @@ class EmailController extends BaseController with AppLoaderMixin { void _initializeDebounceTimeIndexPageViewChange() { _getEmailDeBouncer.values.listen((value) async { if(value !=null) { - _getEmailContentAction(emailParentController.listEmail[value].id); + _getEmailContentAction(emailSupervisorController.listEmail[value].id); } }); } void _initWorker() { - emailWorker = ever(emailParentController.selectedEmail, (presentationEmail) { + emailWorker = ever(emailSupervisorController.selectedEmail, (presentationEmail) { log('EmailController::_initWorker(): $presentationEmail'); if (presentationEmail is PresentationEmail) { if (_currentEmailId != presentationEmail.id) { _currentEmailId = presentationEmail.id; - emailParentController.setCurrentPositionEmailInListEmail(_currentEmailId); - _getEmailDeBouncer.value = emailParentController.currentIndexPageView; + emailSupervisorController.setCurrentPositionEmailInListEmail(_currentEmailId); + _getEmailDeBouncer.value = emailSupervisorController.currentIndexPageView; _resetToOriginalValue(); if (!presentationEmail.hasRead) { markAsEmailRead(presentationEmail, ReadActions.markAsRead); @@ -190,7 +190,7 @@ class EmailController extends BaseController with AppLoaderMixin { (failure) => null, (success) { if (success is StartDownloadAttachmentForWeb) { - emailParentController.mailboxDashBoardController.addDownloadTask( + emailSupervisorController.mailboxDashBoardController.addDownloadTask( DownloadTaskState( taskId: success.taskId, attachment: success.attachment)); @@ -205,7 +205,7 @@ class EmailController extends BaseController with AppLoaderMixin { final percent = success.progress.round(); log('EmailController::DownloadingAttachmentForWeb(): $percent%'); - emailParentController.mailboxDashBoardController.updateDownloadTask( + emailSupervisorController.mailboxDashBoardController.updateDownloadTask( success.taskId, (currentTask) { final newTask = currentTask.copyWith( @@ -221,7 +221,7 @@ class EmailController extends BaseController with AppLoaderMixin { } void _getAllIdentities() { - final accountId = emailParentController.accountId; + final accountId = emailSupervisorController.accountId; if (accountId != null) { consumeState(_getAllIdentitiesInteractor.execute(accountId)); } @@ -241,9 +241,9 @@ class EmailController extends BaseController with AppLoaderMixin { } void _getEmailContentAction(EmailId emailId) async { - final accountId = emailParentController.accountId; - final baseDownloadUrl = emailParentController.sessionCurrent?.getDownloadUrl(); - final currentEmail = emailParentController.presentationEmailsLoaded.where((e) => e.emailCurrent!.id == emailId); + final accountId = emailSupervisorController.accountId; + final baseDownloadUrl = emailSupervisorController.sessionCurrent?.getDownloadUrl(); + final currentEmail = emailSupervisorController.presentationEmailsLoaded.where((e) => e.emailCurrent!.id == emailId); EmailLoaded? emailLoaded; if(currentEmail.isNotEmpty) { emailLoaded = currentEmail.first; @@ -295,8 +295,8 @@ class EmailController extends BaseController with AppLoaderMixin { } void _getEmailContentSuccess(GetEmailContentSuccess success) { - if(emailParentController.presentationEmailsLoaded.length > ThreadConstants.defaultLimit.value.toInt()) { - emailParentController.presentationEmailsLoaded.removeFirst(); + if(emailSupervisorController.presentationEmailsLoaded.length > ThreadConstants.defaultLimit.value.toInt()) { + emailSupervisorController.presentationEmailsLoaded.removeFirst(); } final emailLoaded = EmailLoaded( success.emailContents.toList(), @@ -304,8 +304,8 @@ class EmailController extends BaseController with AppLoaderMixin { success.attachments.toList(), success.emailCurrent, ); - emailParentController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent!.id == emailLoaded.emailCurrent!.id); - emailParentController.presentationEmailsLoaded.add(emailLoaded); + emailSupervisorController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent!.id == emailLoaded.emailCurrent!.id); + emailSupervisorController.presentationEmailsLoaded.add(emailLoaded); if(success.emailCurrent?.id == mailboxDashBoardController.selectedEmail.value?.id) { emailContents.value = success.emailContentsDisplayed; initialEmailContents = success.emailContents; @@ -966,8 +966,8 @@ class EmailController extends BaseController with AppLoaderMixin { } void closeEmailView(BuildContext context) { - emailParentController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent?.id == currentEmail?.id); - emailParentController.currentIndexPageView = -1; + emailSupervisorController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent?.id == currentEmail?.id); + emailSupervisorController.currentIndexPageView = -1; _getEmailDeBouncer.value = null; mailboxDashBoardController.clearSelectedEmail(); _currentEmailId = null; diff --git a/lib/features/email/presentation/email_bindings.dart b/lib/features/email/presentation/email_bindings.dart index 18c49002f..7d1cec878 100644 --- a/lib/features/email/presentation/email_bindings.dart +++ b/lib/features/email/presentation/email_bindings.dart @@ -17,8 +17,8 @@ import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_i import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; -import 'package:tmail_ui_user/features/email/presentation/controller/email_controller.dart'; -import 'package:tmail_ui_user/features/email/presentation/controller/email_parent_controller.dart'; +import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; +import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart'; @@ -54,8 +54,8 @@ class EmailBindings extends BaseBindings { @override void bindingsController() { - Get.put(EmailParentController()); - Get.put(EmailController( + Get.put(EmailSupervisorController()); + Get.put(SingleEmailController( Get.find(), Get.find(), Get.find(), diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 2570e37c8..e82409d54 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -8,7 +8,7 @@ import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart'; -import 'package:tmail_ui_user/features/email/presentation/controller/email_controller.dart'; +import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart'; @@ -17,7 +17,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/extensions/va import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; -class EmailView extends GetWidget { +class EmailView extends GetWidget { static const double maxSizeFullDisplayEmailAddressArrowDownButton = 30.0; @@ -93,11 +93,11 @@ class EmailView extends GetWidget { Expanded( child: PageView.builder( physics: kIsWeb ? const NeverScrollableScrollPhysics() : null, - itemCount: controller.emailParentController.listEmail.length, - controller: controller.emailParentController.pageController, - onPageChanged: controller.emailParentController.onPageChanged, + itemCount: controller.emailSupervisorController.listEmail.length, + controller: controller.emailSupervisorController.pageController, + onPageChanged: controller.emailSupervisorController.onPageChanged, itemBuilder: (context, index) { - return _buildEmailBody(context, controller.emailParentController.listEmail[index]); + return _buildEmailBody(context, controller.emailSupervisorController.listEmail[index]); }), ), const Divider(color: AppColor.colorDividerHorizontal, height: 1), @@ -165,21 +165,21 @@ class EmailView extends GetWidget { buildIconWeb( icon: SvgPicture.asset( imagePaths.icNewer, - color: controller.emailParentController.canGetNewerEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon, + color: controller.emailSupervisorController.canGetNewerEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon, width: IconUtils.defaultIconSize, height: IconUtils.defaultIconSize, fit: BoxFit.fill), tooltip: AppLocalizations.of(context).newer, - onTap: controller.emailParentController.canGetNewerEmail.value ? controller.emailParentController.getNewerEmail : null), + onTap: controller.emailSupervisorController.canGetNewerEmail.value ? controller.emailSupervisorController.getNewerEmail : null), buildIconWeb( icon: SvgPicture.asset( imagePaths.icOlder, width: IconUtils.defaultIconSize, height: IconUtils.defaultIconSize, - color: controller.emailParentController.canGetOlderEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon, + color: controller.emailSupervisorController.canGetOlderEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon, fit: BoxFit.fill), tooltip: AppLocalizations.of(context).older, - onTap: controller.emailParentController.canGetOlderEmail.value ? controller.emailParentController.getOlderEmail : null), + onTap: controller.emailSupervisorController.canGetOlderEmail.value ? controller.emailSupervisorController.getOlderEmail : null), ]; }