TF-297 Get stored language when launch app
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
||||
|
||||
class LocalizationService extends Translations {
|
||||
|
||||
@@ -25,17 +27,25 @@ class LocalizationService extends Translations {
|
||||
static final locale = _getLocaleFromLanguage();
|
||||
|
||||
static void changeLocale(String langCode) {
|
||||
log('LocalizationService::changeLocale(): langCode: $langCode');
|
||||
final locale = _getLocaleFromLanguage(langCode: langCode);
|
||||
Get.updateLocale(locale);
|
||||
}
|
||||
|
||||
static Locale _getLocaleFromLanguage({String? langCode}) {
|
||||
final lang = langCode ?? Get.deviceLocale?.languageCode;
|
||||
final languageCacheManager = Get.find<LanguageCacheManager>();
|
||||
final localeStored = languageCacheManager.getStoredLanguage();
|
||||
|
||||
final localeSelected = supportedLocales
|
||||
.firstWhereOrNull((locale) => locale.languageCode == lang);
|
||||
log('LocalizationService::_getLocaleFromLanguage(): localeStored: ${localeStored.toString()}');
|
||||
|
||||
return localeSelected ?? Get.locale ?? defaultLocale;
|
||||
if (localeStored != null) {
|
||||
return localeStored;
|
||||
} else {
|
||||
final languageCodeCurrent = langCode ?? Get.deviceLocale?.languageCode;
|
||||
final localeSelected = supportedLocales
|
||||
.firstWhereOrNull((locale) => locale.languageCode == languageCodeCurrent);
|
||||
return localeSelected ?? Get.locale ?? defaultLocale;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user