From bbab1784653a245826c9453e35b7e2d3b4a1dbe2 Mon Sep 17 00:00:00 2001 From: Shawn Date: Thu, 11 Jan 2024 10:12:40 -0700 Subject: [PATCH] Finish persistent wonderIndex feature --- lib/logic/settings_logic.dart | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/logic/settings_logic.dart b/lib/logic/settings_logic.dart index 9af3321e..8ece523b 100644 --- a/lib/logic/settings_logic.dart +++ b/lib/logic/settings_logic.dart @@ -10,15 +10,25 @@ class SettingsLogic with ThrottledSaveLoadMixin { late final hasDismissedSearchMessage = ValueNotifier(false)..addListener(scheduleSave); late final isSearchPanelOpen = ValueNotifier(true)..addListener(scheduleSave); late final currentLocale = ValueNotifier(null)..addListener(scheduleSave); + late final prevWonderIndex = ValueNotifier(null)..addListener(scheduleSave); final bool useBlurs = !PlatformInfo.isAndroid; + Future changeLocale(Locale value) async { + currentLocale.value = value.languageCode; + await localeLogic.loadIfChanged(value); + // Re-init controllers that have some cached data that is localized + wondersLogic.init(); + timelineLogic.init(); + } + @override void copyFromJson(Map value) { hasCompletedOnboarding.value = value['hasCompletedOnboarding'] ?? false; hasDismissedSearchMessage.value = value['hasDismissedSearchMessage'] ?? false; currentLocale.value = value['currentLocale']; isSearchPanelOpen.value = value['isSearchPanelOpen'] ?? false; + prevWonderIndex.value = value['lastWonderIndex']; } @override @@ -28,14 +38,7 @@ class SettingsLogic with ThrottledSaveLoadMixin { 'hasDismissedSearchMessage': hasDismissedSearchMessage.value, 'currentLocale': currentLocale.value, 'isSearchPanelOpen': isSearchPanelOpen.value, + 'lastWonderIndex': prevWonderIndex.value, }; } - - Future changeLocale(Locale value) async { - currentLocale.value = value.languageCode; - await localeLogic.loadIfChanged(value); - // Re-init controllers that have some cached data that is localized - wondersLogic.init(); - timelineLogic.init(); - } }