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,6 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/preferences_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_controller.dart';
@@ -21,7 +21,7 @@ class LanguageAndRegionBindings extends BaseBindings {
@override
void bindingsInteractor() {
Get.lazyPut(() => SaveLanguageInteractor(Get.find<ManageAccountRepository>()));
Get.lazyPut(() => SaveLanguageInteractor(Get.find<PreferencesRepository>()));
}
@override
@@ -1,10 +1,10 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/manage_account_datasource_impl.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource/preferences_datasource.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/preferences_datasource_impl.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/data/repository/preferences_repository_impl.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/preferences_repository.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_bindings.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_bindings.dart';
@@ -28,12 +28,12 @@ class ManageAccountDashBoardBindings extends BaseBindings {
@override
void bindingsDataSource() {
Get.lazyPut<ManageAccountDataSource>(() => Get.find<ManageAccountDataSourceImpl>());
Get.lazyPut<PreferencesDataSource>(() => Get.find<PreferencesDataSourceImpl>());
}
@override
void bindingsDataSourceImpl() {
Get.lazyPut(() => ManageAccountDataSourceImpl(
Get.lazyPut(() => PreferencesDataSourceImpl(
Get.find<LanguageCacheManager>(),
Get.find<RemoteExceptionThrower>()));
}
@@ -43,11 +43,11 @@ class ManageAccountDashBoardBindings extends BaseBindings {
@override
void bindingsRepository() {
Get.lazyPut<ManageAccountRepository>(() => Get.find<ManageAccountRepositoryImpl>());
Get.lazyPut<PreferencesRepository>(() => Get.find<PreferencesRepositoryImpl>());
}
@override
void bindingsRepositoryImpl() {
Get.lazyPut(() => ManageAccountRepositoryImpl(Get.find<ManageAccountDataSource>()));
Get.lazyPut(() => PreferencesRepositoryImpl(Get.find<PreferencesDataSource>()));
}
}
@@ -1,5 +1,11 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/interactors_bindings.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource/preferences_datasource.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/preferences_datasource_impl.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/data/repository/preferences_repository_impl.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/preferences_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
import 'package:tmail_ui_user/features/server_settings/data/datasource/server_settings_data_source.dart';
import 'package:tmail_ui_user/features/server_settings/data/datasource_impl/remote_server_settings_data_source_impl.dart';
import 'package:tmail_ui_user/features/server_settings/data/network/server_settings_api.dart';
@@ -7,6 +13,7 @@ import 'package:tmail_ui_user/features/server_settings/data/repository/server_se
import 'package:tmail_ui_user/features/server_settings/domain/repository/server_settings_repository.dart';
import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_server_setting_interactor.dart';
import 'package:tmail_ui_user/features/server_settings/domain/usecases/update_server_setting_interactor.dart';
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
class PreferencesInteractorsBindings extends InteractorsBindings {
@@ -21,6 +28,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
() => Get.find<RemoteServerSettingsDataSourceImpl>(tag: composerId),
tag: composerId,
);
Get.lazyPut<PreferencesDataSource>(
() => Get.find<PreferencesDataSourceImpl>(tag: composerId),
tag: composerId,
);
}
@override
@@ -29,6 +40,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
Get.find<ServerSettingsAPI>(),
Get.find<RemoteExceptionThrower>(),
), tag: composerId);
Get.lazyPut(() => PreferencesDataSourceImpl(
Get.find<LanguageCacheManager>(),
Get.find<CacheExceptionThrower>(),
), tag: composerId);
}
@override
@@ -41,6 +56,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
() => UpdateServerSettingInteractor(Get.find<ServerSettingsRepository>(tag: composerId)),
tag: composerId,
);
Get.lazyPut(
() => SaveLanguageInteractor(Get.find<PreferencesRepository>(tag: composerId)),
tag: composerId,
);
}
@override
@@ -49,6 +68,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
() => Get.find<ServerSettingsRepositoryImpl>(tag: composerId),
tag: composerId,
);
Get.lazyPut<PreferencesRepository>(
() => Get.find<PreferencesRepositoryImpl>(tag: composerId),
tag: composerId,
);
}
@override
@@ -57,6 +80,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
() => ServerSettingsRepositoryImpl(Get.find<ServerSettingsDataSource>(tag: composerId)),
tag: composerId,
);
Get.lazyPut(
() => PreferencesRepositoryImpl(Get.find<PreferencesDataSource>(tag: composerId)),
tag: composerId,
);
}
void dispose() {
@@ -66,5 +93,11 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
Get.delete<ServerSettingsRepository>(tag: composerId);
Get.delete<UpdateServerSettingInteractor>(tag: composerId);
Get.delete<GetServerSettingInteractor>(tag: composerId);
Get.delete<PreferencesDataSourceImpl>(tag: composerId);
Get.delete<PreferencesDataSource>(tag: composerId);
Get.delete<PreferencesRepositoryImpl>(tag: composerId);
Get.delete<PreferencesRepository>(tag: composerId);
Get.delete<SaveLanguageInteractor>(tag: composerId);
}
}