Reputation: 7603
As mentioned by the title, is there any way to obtain all the keys stored in an Android Jetpack Preferences DataStore, e.g., dataStore
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
Upvotes: 4
Views: 2689
Reputation: 1256
For getting all keys
suspend fun Context.readAllKeys(): Set<Preferences.Key<*>>? {
val keys = dataStore.data
.map {
it.asMap().keys
}
return keys.firstOrNull()
}
for getting value by it's key
suspend fun Context.getValueByKey(key: Preferences.Key<*>): Any? {
val value = dataStore.data
.map {
it[key]
}
return value.firstOrNull()
}
Upvotes: 5