Android 12 Developer Preview is here! Try it out, and give us your feedback!

Preferences

abstract class Preferences
kotlin.Any
   ↳ androidx.datastore.preferences.core.Preferences

Preferences and MutablePreferences are a lot like a generic Map and MutableMap keyed by the Preferences.Key class. These are intended for use with DataStore. Construct a DataStore instance using PreferenceDataStoreFactory.create.

Summary

Nested classes

Key for values stored in Preferences.

Key Value pairs for Preferences.

Public methods
abstract Map<Preferences.Key<*>, Any>

Retrieve a map of all key preference pairs.

abstract operator Boolean

Returns true if this Preferences contains the specified key.

abstract operator T?

Get a preference with a key.

MutablePreferences

Gets a mutable copy of Preferences which contains all the preferences in this Preferences.

Preferences

Gets a read-only copy of Preferences which contains all the preferences in this Preferences.

Public methods

asMap

abstract fun asMap(): Map<Preferences.Key<*>, Any>

Retrieve a map of all key preference pairs. The returned map is unmodifiable, and attempts to mutate it will throw runtime exceptions.

Return
a map containing all the preferences in this Preferences

contains

abstract operator fun <T> contains(key: Preferences.Key<T>): Boolean

Returns true if this Preferences contains the specified key.

Parameters
key: Preferences.Key<T> the key to check for

get

abstract operator fun <T> get(key: Preferences.Key<T>): T?

Get a preference with a key. If the key is not set, returns null.

If T is Set, this returns an unmodifiable set which will throw a runtime exception when mutated. Do not try to mutate the returned set.

Use MutablePreferences.set to change the value of a preference (inside a DataStore.edit block).

Parameters
T the type of the preference
key: Preferences.Key<T> the key for the preference
Exceptions
ClassCastException if there is something stored with the same name as key but it cannot be cast to T

toMutablePreferences

fun toMutablePreferences(): MutablePreferences

Gets a mutable copy of Preferences which contains all the preferences in this Preferences. This can be used to update your preferences without building a new Preferences object from scratch in DataStore.updateData.

This is similar to Map.toMutableMap.

Return
a MutablePreferences with all the preferences from this Preferences

toPreferences

fun toPreferences(): Preferences

Gets a read-only copy of Preferences which contains all the preferences in this Preferences.

This is similar to Map.toMap.

Return
a copy of this Preferences