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.
This commit is contained in:
Leonardo Montemurro 2026-04-27 15:08:31 +02:00
parent ee61f2d83c
commit 17cb75a464
2 changed files with 14 additions and 4 deletions

View file

@ -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

View file

@ -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)