Extension for DataStore¶
In order to make you use DataStore
more convenient, VastTools
provides extension functions.
Store key-value pairs with Preferences DataStore by extension functions¶
Create a Preferences DataStore¶
Use the property delegate created by preferencesDataStore
to create an instance of Datastore<Preferences>
. Call it once at the top level of your kotlin file, and access it through this property throughout the rest of your application. This makes it easier to keep your DataStore
as a singleton.
val Context.dataStore: DataStore<Preferences> by
preferencesDataStore(name = "settings")
Implement IDataStoreOwner¶
object ThemeDs : IDataStoreOwner {
override val dataStore: DataStore<Preferences> =
ContextHelper.getAppContext().dataStore
val isDark by boolean(false)
}
Read from a Preferences DataStore¶
The following example shows you that Boolean
type data can be read from Preferences DataStore
by calling asNotNullFlow
in Compose .
val darkTheme by ThemeDs.isDark.asNotNullFlow().collectAsState(false)
Write to a Preferences DataStore¶
The following example shows you that Boolean
type data can be written to Preferences DataStore
in Compose .
val coroutineScope = rememberCoroutineScope()
Switch(checked = darkTheme, onCheckedChange = { value ->
coroutineScope.launch {
ThemeDs.isDark.set(value)
}
})