From 3aea76fc1e1da057a45bf8f31a05482bd03ad8ae Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 8 Jul 2022 14:02:30 +0700 Subject: [PATCH] TF-297 Add controller/bindings for LanguageAndRegion --- .../language_and_region_bindings.dart | 31 ++++++++++++++ .../language_and_region_controller.dart | 40 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 lib/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart create mode 100644 lib/features/manage_account/presentation/language_and_region/language_and_region_controller.dart diff --git a/lib/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart b/lib/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart new file mode 100644 index 000000000..1c65f1414 --- /dev/null +++ b/lib/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart @@ -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() { + } +} \ No newline at end of file diff --git a/lib/features/manage_account/presentation/language_and_region/language_and_region_controller.dart b/lib/features/manage_account/presentation/language_and_region/language_and_region_controller.dart new file mode 100644 index 000000000..c8f43cea0 --- /dev/null +++ b/lib/features/manage_account/presentation/language_and_region/language_and_region_controller.dart @@ -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 = [].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); + } +} \ No newline at end of file