androidx.datastore.rxjava2
Interfaces
RxDataMigration |
Interface for migrations to DataStore. |
RxSharedPreferencesMigration |
Client implemented migration interface. |
Classes
RxDataStore |
A DataStore that supports RxJava operations on DataStore. |
RxDataStoreBuilder |
Builder class for an RxDataStore that works on a single process. |
RxSharedPreferencesMigrationBuilder |
RxSharedPreferencesMigrationBuilder for the RxSharedPreferencesMigration. |
Top-level functions summary
ReadOnlyProperty<Context, RxDataStore<T>> |
<T : Any> rxDataStore( Creates a property delegate for a single process DataStore. |
Top-level functions
rxDataStore
fun <T : Any> rxDataStore(
fileName: String,
serializer: Serializer<T>,
corruptionHandler: ReplaceFileCorruptionHandler<T>? = null,
produceMigrations: (Context) -> List<DataMigration<T>> = { listOf() },
scheduler: Scheduler = Schedulers.io()
): ReadOnlyProperty<Context, RxDataStore<T>>
Creates a property delegate for a single process DataStore. This should only be called once in a file (at the top level), and all usages of the DataStore should use a reference the same Instance. The receiver type for the property delegate must be an instance of Context
.
This should only be used from a single application in a single classloader in a single process.
Example usage:
val Context.myRxDataStore by rxDataStore("filename", serializer)
class SomeClass(val context: Context) {
fun update(): Single<Settings> = context.myRxDataStore.updateDataAsync {...}
}
Parameters | |
---|---|
fileName: String |
the filename relative to Context.filesDir that DataStore acts on. The File is obtained by calling File(context.filesDir, "datastore/$fileName")). No two instances of DataStore should act on the same file at the same time. |
serializer: Serializer<T> |
the Serializer to serialize and deserialize on-disk data to type |
corruptionHandler: ReplaceFileCorruptionHandler<T>? = null |
The corruptionHandler is invoked if DataStore encounters a |
produceMigrations: (Context) -> List<DataMigration<T>> = { listOf() } |
produce the migrations. The ApplicationContext is passed in to these callbacks as a parameter. DataMigrations are run before any access to data can occur. Each producer and migration may be run more than once whether or not it already succeeded (potentially because another migration failed or a write to disk failed.) |
scheduler: Scheduler = Schedulers.io() |
The scheduler in which IO operations and transform functions will execute. |
Returns | |
---|---|
ReadOnlyProperty<Context, RxDataStore<T>> |
a property delegate that manages a datastore as a singleton. |