From 84e3c526f7406dbcc1f617d2bba63ca9c0077ada Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 11 Jul 2025 01:27:01 +0700 Subject: [PATCH] Avoid calling `getMinInputLengthAutocomplete` multiple times from session Signed-off-by: dab246 --- .../mailbox_dashboard_controller.dart | 11 ++++--- .../manage_account_dashboard_controller.dart | 31 ++++++++++--------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index b28db98ce..60bd45eec 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -292,6 +292,7 @@ class MailboxDashBoardController extends ReloadableController bool _isFirstSessionLoad = false; DeepLinksManager? _deepLinksManager; StreamSubscription? _deepLinkDataStreamSubscription; + int minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete; final StreamController> _progressStateController = StreamController>.broadcast(); @@ -795,6 +796,7 @@ class MailboxDashBoardController extends ReloadableController accountId.value = currentAccountId; synchronizeOwnEmailAddress(session.getOwnEmailAddressOrEmpty()); + _setUpMinInputLengthAutocomplete(); injectAutoCompleteBindings(session, currentAccountId); injectRuleFilterBindings(session, currentAccountId); injectVacationBindings(session, currentAccountId); @@ -3220,13 +3222,14 @@ class MailboxDashBoardController extends ReloadableController dispatchAction(ClearSearchFilterAppliedAction()); } - int get minInputLengthAutocomplete { + void _setUpMinInputLengthAutocomplete() { if (sessionCurrent == null || accountId.value == null) { - return AppConfig.defaultMinInputLengthAutocomplete; + minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete; } - return getMinInputLengthAutocomplete( + minInputLengthAutocomplete = getMinInputLengthAutocomplete( session: sessionCurrent!, - accountId: accountId.value!); + accountId: accountId.value!, + ); } void setCurrentEmailState(jmap.State? newState) { diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index 5dec7cbcd..effd11b37 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -59,6 +59,7 @@ class ManageAccountDashBoardController extends ReloadableController { Session? sessionCurrent; bool? isVacationDateDialogDisplayed; Uri? previousUri; + int minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete; @override void onInit() { @@ -103,23 +104,15 @@ class ManageAccountDashBoardController extends ReloadableController { @override void handleReloaded(Session session) { log('ManageAccountDashBoardController::handleReloaded:'); - sessionCurrent = session; - accountId.value = session.accountId; - synchronizeOwnEmailAddress(session.getOwnEmailAddressOrEmpty()); - _bindingInteractorForMenuItemView(sessionCurrent, accountId.value); - _getVacationResponse(); + _setUpComponentsFromSession(session); _getParametersRouter(); } void _getArguments() { final arguments = Get.arguments; if (arguments is ManageAccountArguments) { - sessionCurrent = arguments.session; - accountId.value = arguments.session?.accountId; - synchronizeOwnEmailAddress(arguments.session?.getOwnEmailAddressOrEmpty() ?? ''); previousUri = arguments.previousUri; - _bindingInteractorForMenuItemView(sessionCurrent, accountId.value); - _getVacationResponse(); + _setUpComponentsFromSession(arguments.session); if (arguments.menuSettingCurrent != null) { selectAccountMenuItem(arguments.menuSettingCurrent!); } @@ -128,6 +121,15 @@ class ManageAccountDashBoardController extends ReloadableController { } } + void _setUpComponentsFromSession(Session? session) { + sessionCurrent = session; + accountId.value = session?.accountId; + synchronizeOwnEmailAddress(session?.getOwnEmailAddressOrEmpty() ?? ''); + _setUpMinInputLengthAutocomplete(); + _bindingInteractorForMenuItemView(sessionCurrent, accountId.value); + _getVacationResponse(); + } + void _getParametersRouter() { final parameters = Get.parameters; log('ManageAccountDashBoardController::_getParametersRouter:parameters: $parameters'); @@ -394,13 +396,14 @@ class ManageAccountDashBoardController extends ReloadableController { return false; } - int get minInputLengthAutocomplete { + void _setUpMinInputLengthAutocomplete() { if (sessionCurrent == null || accountId.value == null) { - return AppConfig.defaultMinInputLengthAutocomplete; + minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete; } - return getMinInputLengthAutocomplete( + minInputLengthAutocomplete = getMinInputLengthAutocomplete( session: sessionCurrent!, - accountId: accountId.value!); + accountId: accountId.value!, + ); } @override