Reputation: 1
I am trying to use DataStore to load/save app settings. After some experimentation and install/deinstall the app on first launch preferences[PreferencesKeys.LANGUAGE] containts a value ("EN"), although it should contain null. If I change applicationId, preferences[PreferencesKeys.LANGUAGE] containts null as it should be. It's as if there is a cache somewhere, but it clears when the application deletes.
Android Studio Koala Feature Drop | 2024.1.2 Patch 1.
Android 13 TKQ1.221114.001.
Version datastorePreferences = "1.1.1"
enum class LanguageEnum(val title: String) {
EN("English"),
RU("Русский")
}
//...
object PreferencesKeys {
val LANGUAGE = stringPreferencesKey("language")
}
//...
val language: MutableState<LanguageEnum> = mutableStateOf(LanguageEnum.RU)
//...
CoroutineScope(Dispatchers.IO).launch {
val languageFlow = context.dataStore.data
.map { preferences -> preferences[PreferencesKeys.LANGUAGE] ?: LanguageEnum.RU.name }
language.value = LanguageEnum.valueOf(languageFlow.first())
}
"Clear project", "Rebuild Project" and "Invalidate caches" doesn't help. Has anyone met something similar and how can this behavior be explained?
Upvotes: 0
Views: 55