Avoid calling getMinInputLengthAutocomplete multiple times from session

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-11 01:27:01 +07:00
committed by Dat H. Pham
parent be84c90690
commit 84e3c526f7
2 changed files with 24 additions and 18 deletions
@@ -292,6 +292,7 @@ class MailboxDashBoardController extends ReloadableController
bool _isFirstSessionLoad = false; bool _isFirstSessionLoad = false;
DeepLinksManager? _deepLinksManager; DeepLinksManager? _deepLinksManager;
StreamSubscription<DeepLinkData?>? _deepLinkDataStreamSubscription; StreamSubscription<DeepLinkData?>? _deepLinkDataStreamSubscription;
int minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete;
final StreamController<Either<Failure, Success>> _progressStateController = final StreamController<Either<Failure, Success>> _progressStateController =
StreamController<Either<Failure, Success>>.broadcast(); StreamController<Either<Failure, Success>>.broadcast();
@@ -795,6 +796,7 @@ class MailboxDashBoardController extends ReloadableController
accountId.value = currentAccountId; accountId.value = currentAccountId;
synchronizeOwnEmailAddress(session.getOwnEmailAddressOrEmpty()); synchronizeOwnEmailAddress(session.getOwnEmailAddressOrEmpty());
_setUpMinInputLengthAutocomplete();
injectAutoCompleteBindings(session, currentAccountId); injectAutoCompleteBindings(session, currentAccountId);
injectRuleFilterBindings(session, currentAccountId); injectRuleFilterBindings(session, currentAccountId);
injectVacationBindings(session, currentAccountId); injectVacationBindings(session, currentAccountId);
@@ -3220,13 +3222,14 @@ class MailboxDashBoardController extends ReloadableController
dispatchAction(ClearSearchFilterAppliedAction()); dispatchAction(ClearSearchFilterAppliedAction());
} }
int get minInputLengthAutocomplete { void _setUpMinInputLengthAutocomplete() {
if (sessionCurrent == null || accountId.value == null) { if (sessionCurrent == null || accountId.value == null) {
return AppConfig.defaultMinInputLengthAutocomplete; minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete;
} }
return getMinInputLengthAutocomplete( minInputLengthAutocomplete = getMinInputLengthAutocomplete(
session: sessionCurrent!, session: sessionCurrent!,
accountId: accountId.value!); accountId: accountId.value!,
);
} }
void setCurrentEmailState(jmap.State? newState) { void setCurrentEmailState(jmap.State? newState) {
@@ -59,6 +59,7 @@ class ManageAccountDashBoardController extends ReloadableController {
Session? sessionCurrent; Session? sessionCurrent;
bool? isVacationDateDialogDisplayed; bool? isVacationDateDialogDisplayed;
Uri? previousUri; Uri? previousUri;
int minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete;
@override @override
void onInit() { void onInit() {
@@ -103,23 +104,15 @@ class ManageAccountDashBoardController extends ReloadableController {
@override @override
void handleReloaded(Session session) { void handleReloaded(Session session) {
log('ManageAccountDashBoardController::handleReloaded:'); log('ManageAccountDashBoardController::handleReloaded:');
sessionCurrent = session; _setUpComponentsFromSession(session);
accountId.value = session.accountId;
synchronizeOwnEmailAddress(session.getOwnEmailAddressOrEmpty());
_bindingInteractorForMenuItemView(sessionCurrent, accountId.value);
_getVacationResponse();
_getParametersRouter(); _getParametersRouter();
} }
void _getArguments() { void _getArguments() {
final arguments = Get.arguments; final arguments = Get.arguments;
if (arguments is ManageAccountArguments) { if (arguments is ManageAccountArguments) {
sessionCurrent = arguments.session;
accountId.value = arguments.session?.accountId;
synchronizeOwnEmailAddress(arguments.session?.getOwnEmailAddressOrEmpty() ?? '');
previousUri = arguments.previousUri; previousUri = arguments.previousUri;
_bindingInteractorForMenuItemView(sessionCurrent, accountId.value); _setUpComponentsFromSession(arguments.session);
_getVacationResponse();
if (arguments.menuSettingCurrent != null) { if (arguments.menuSettingCurrent != null) {
selectAccountMenuItem(arguments.menuSettingCurrent!); 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() { void _getParametersRouter() {
final parameters = Get.parameters; final parameters = Get.parameters;
log('ManageAccountDashBoardController::_getParametersRouter:parameters: $parameters'); log('ManageAccountDashBoardController::_getParametersRouter:parameters: $parameters');
@@ -394,13 +396,14 @@ class ManageAccountDashBoardController extends ReloadableController {
return false; return false;
} }
int get minInputLengthAutocomplete { void _setUpMinInputLengthAutocomplete() {
if (sessionCurrent == null || accountId.value == null) { if (sessionCurrent == null || accountId.value == null) {
return AppConfig.defaultMinInputLengthAutocomplete; minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete;
} }
return getMinInputLengthAutocomplete( minInputLengthAutocomplete = getMinInputLengthAutocomplete(
session: sessionCurrent!, session: sessionCurrent!,
accountId: accountId.value!); accountId: accountId.value!,
);
} }
@override @override