После некоторых экспериментов и установки/удаления приложения при первом запуске настройки [PreferencesKeys.LANGUAGE] содержат значение («EN»), хотя оно должно быть содержат значение null.
Если я меняю идентификатор приложения, настройки [PreferencesKeys.LANGUAGE] содержат значение null, как и должно быть.
Это как если бы где-то был кеш, но он очищается при удалении приложения.
Дополнительная функция Android Studio Koala | 2024.1.2 Патч 1.
Android 13 TKQ1.221114.001.
Версия datastorePreferences = "1.1.1"
Код: Выделить всё
enum class LanguageEnum(val title: String) {
EN("English"),
RU("Русский")
}
//...
object PreferencesKeys {
val LANGUAGE = stringPreferencesKey("language")
}
//...
val language: MutableState = 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())
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... rst-launch
Мобильная версия