TF-3712 Initialize app language per server settings

This commit is contained in:
DatDang
2025-06-04 17:06:17 +07:00
committed by Dat H. Pham
parent b576a6d267
commit efb9e0fc56
14 changed files with 459 additions and 30 deletions
@@ -1,6 +1,7 @@
import 'package:server_settings/server_settings/capability_server_settings.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/preferences/bindings/preferences_interactors_bindings.dart';
import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_server_setting_interactor.dart';
import 'package:tmail_ui_user/main/error/capability_validator.dart';
@@ -21,6 +22,7 @@ extension HandlePreferencesSettingExtension on MailboxDashBoardController {
if (isServerSettingsCapabilitySupported) {
PreferencesInteractorsBindings().dependencies();
getServerSettingInteractor = getBinding<GetServerSettingInteractor>();
saveLanguageInteractor = getBinding<SaveLanguageInteractor>();
}
}
@@ -0,0 +1,16 @@
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/server_settings/domain/state/get_server_setting_state.dart';
import 'package:tmail_ui_user/main/localizations/localization_service.dart';
extension InitializeAppLanguage on MailboxDashBoardController {
void initializeAppLanguage(GetServerSettingSuccess success) {
LocalizationService.initializeAppLanguage(
serverLanguage: success.settingOption.language,
onServerLanguageApplied: (locale) {
if (saveLanguageInteractor != null) {
consumeState(saveLanguageInteractor!.execute(locale));
}
},
);
}
}