TF-297 Add controller/bindings for LanguageAndRegion

This commit is contained in:
dab246
2022-07-08 14:02:30 +07:00
committed by Dat H. Pham
parent c631729ae1
commit 3aea76fc1e
2 changed files with 71 additions and 0 deletions
@@ -0,0 +1,31 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_controller.dart';
class LanguageAndRegionBindings extends BaseBindings {
@override
void bindingsController() {
Get.lazyPut(() => LanguageAndRegionController());
}
@override
void bindingsDataSource() {
}
@override
void bindingsDataSourceImpl() {
}
@override
void bindingsInteractor() {
}
@override
void bindingsRepository() {
}
@override
void bindingsRepositoryImpl() {
}
}
@@ -0,0 +1,40 @@
import 'dart:ui';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/main/localizations/localization_service.dart';
class LanguageAndRegionController extends BaseController {
final listSupportedLanguages = <Locale>[].obs;
final languageSelected = LocalizationService.defaultLocale.obs;
@override
void onReady() {
_setUpSupportedLanguages();
super.onReady();
}
@override
void onDone() {}
@override
void onError(error) {}
void _setUpSupportedLanguages() {
listSupportedLanguages.value = LocalizationService.supportedLocales;
final currentLocale = Get.locale;
if (currentLocale != null) {
languageSelected.value = currentLocale;
} else {
languageSelected.value = LocalizationService.defaultLocale;
}
}
void selectLanguage(Locale? selectedLocale) {
languageSelected.value = selectedLocale ?? LocalizationService.defaultLocale;
LocalizationService.changeLocale(languageSelected.value.languageCode);
}
}