From 17cb75a4642789fa5e547cbe36c28d16e48e3047 Mon Sep 17 00:00:00 2001 From: Leonardo Montemurro <221404985+MontesanoDev@users.noreply.github.com> Date: Mon, 27 Apr 2026 15:08:31 +0200 Subject: [PATCH] fix: migrate language from legacy profile-scoped key to global key On first launch after upgrading, if the new global key is empty, fall back to the legacy profile-scoped key from the previous version. Once found, the value is saved to the global key so future reads avoid the legacy path. --- .../features/settings/ThemeSettingsStorage.android.kt | 9 +++++++-- .../app/features/settings/ThemeSettingsStorage.ios.kt | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.android.kt b/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.android.kt index 48c3f1a7..8b1506f0 100644 --- a/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.android.kt +++ b/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.android.kt @@ -51,8 +51,13 @@ actual object ThemeSettingsStorage { ?.apply() } - actual fun loadSelectedAppLanguage(): String? = - preferences?.getString(selectedAppLanguageKey, null) + actual fun loadSelectedAppLanguage(): String? { + val value = preferences?.getString(selectedAppLanguageKey, null) + if (value != null) return value + val legacy = preferences?.getString(ProfileScopedKey.of(selectedAppLanguageKey), null) + if (legacy != null) saveSelectedAppLanguage(legacy) + return legacy + } actual fun saveSelectedAppLanguage(languageCode: String) { preferences diff --git a/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.ios.kt b/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.ios.kt index 7f28fa7b..f71eaaea 100644 --- a/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/ThemeSettingsStorage.ios.kt @@ -38,8 +38,13 @@ actual object ThemeSettingsStorage { NSUserDefaults.standardUserDefaults.setBool(enabled, forKey = ProfileScopedKey.of(amoledEnabledKey)) } - actual fun loadSelectedAppLanguage(): String? = - NSUserDefaults.standardUserDefaults.stringForKey(selectedAppLanguageKey) + actual fun loadSelectedAppLanguage(): String? { + val value = NSUserDefaults.standardUserDefaults.stringForKey(selectedAppLanguageKey) + if (value != null) return value + val legacy = NSUserDefaults.standardUserDefaults.stringForKey(ProfileScopedKey.of(selectedAppLanguageKey)) + if (legacy != null) saveSelectedAppLanguage(legacy) + return legacy + } actual fun saveSelectedAppLanguage(languageCode: String) { NSUserDefaults.standardUserDefaults.setObject(languageCode, forKey = selectedAppLanguageKey)