From 5d8628c393c715f6afb19dacc4754e35854fb2a4 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 22 Oct 2025 12:10:24 -0400 Subject: [PATCH] chore: on init language selection page, try to pull language settings from cache (#4492) --- .../login/pages/language_selection_page.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/pangea/login/pages/language_selection_page.dart b/lib/pangea/login/pages/language_selection_page.dart index 80c7450f1..6a2dfd6cd 100644 --- a/lib/pangea/login/pages/language_selection_page.dart +++ b/lib/pangea/login/pages/language_selection_page.dart @@ -5,6 +5,7 @@ import 'package:go_router/go_router.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/learning_settings/models/language_model.dart'; +import 'package:fluffychat/pangea/learning_settings/utils/p_language_store.dart'; import 'package:fluffychat/pangea/learning_settings/widgets/p_language_dropdown.dart'; import 'package:fluffychat/pangea/login/utils/lang_code_repo.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -29,6 +30,31 @@ class LanguageSelectionPageState extends State { super.initState(); _baseLanguage = MatrixState.pangeaController.languageController.systemLanguage; + + _setFromCache(); + } + + // The user may set their target language initally, then return to this page + // to change it again. Try and get the cached values if present. + void _setFromCache() { + LangCodeRepo.get().then((langSettings) { + if (langSettings == null) return; + final cachedTargetLang = + PLanguageStore.byLangCode(langSettings.targetLangCode); + final cachedBaseLang = langSettings.baseLangCode != null + ? PLanguageStore.byLangCode(langSettings.baseLangCode!) + : null; + + if (cachedTargetLang == _selectedLanguage && + cachedBaseLang == _baseLanguage) { + return; + } + + setState(() { + _selectedLanguage = cachedTargetLang ?? _selectedLanguage; + _baseLanguage = cachedBaseLang ?? _baseLanguage; + }); + }); } void _setSelectedLanguage(LanguageModel? l) {