T D Nguyen
T D Nguyen

Reputation: 7603

How to get all keys of Android Preferences DataStore

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

Answers (1)

Yunus D
Yunus D

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

Related Questions