SettingsRepository

class SettingsRepository<T>(dataStore: DataStore<Preferences>, val schema: SettingsSchema<T>)

Repository for reading/writing settings via DataStore.

Constructors

Link copied to clipboard
constructor(dataStore: DataStore<Preferences>, schema: SettingsSchema<T>)

Properties

Link copied to clipboard
val flow: Flow<T>

Flow of current settings model

Link copied to clipboard

Functions

Link copied to clipboard

Add a global change listener

Link copied to clipboard
fun <V> addFieldListener(fieldName: String, listener: FieldChangeListener<V>)

Add a listener for a specific field

Link copied to clipboard
suspend fun <V> get(name: String): V?

Get current value of a field

Link copied to clipboard
fun <V> observeField(fieldName: String): Flow<V>

Observe a specific field as a Flow

Link copied to clipboard
Link copied to clipboard
fun removeFieldListener(fieldName: String, listener: FieldChangeListener<*>)
Link copied to clipboard
suspend fun set(name: String, value: Any)

Set a single field by name

Link copied to clipboard
suspend fun update(transform: (T) -> T)

Update settings with a transform function