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

RxPreferenceDataStoreBuilder

class RxPreferenceDataStoreBuilder
kotlin.Any
   ↳ androidx.datastore.preferences.rxjava2.RxPreferenceDataStoreBuilder

Builder for a Preferences RxDataStore that works on a single process.

Summary

Public constructors
<init>(produceFile: Callable<File>)

Create a RxPreferenceDataStoreBuilder with the callable which returns the File that DataStore acts on.

<init>(context: Context, name: String)

Create a RxPreferenceDataStoreBuilder with the Context and name from which to derive the DataStore file.

Public methods
RxPreferenceDataStoreBuilder

Add a DataMigration to the Datastore.

RxPreferenceDataStoreBuilder

Add an RxDataMigration to the DataStore.

RxDataStore<Preferences>

Build the DataStore.

RxPreferenceDataStoreBuilder

Sets the corruption handler to install into the DataStore.

RxPreferenceDataStoreBuilder
setIoScheduler(ioScheduler: Scheduler)

Set the Scheduler on which to perform IO and transform operations.

Public constructors

<init>

RxPreferenceDataStoreBuilder(produceFile: Callable<File>)

Create a RxPreferenceDataStoreBuilder with the callable which returns the File that DataStore acts on. The user is responsible for ensuring that there is never more than one DataStore acting on a file at a time.

Parameters
produceFile: Callable<File> Function which returns the file that the new DataStore will act on. The function must return the same path every time. No two instances of DataStore should act on the same file at the same time.

<init>

RxPreferenceDataStoreBuilder(
    context: Context,
    name: String)

Create a RxPreferenceDataStoreBuilder with the Context and name from which to derive the DataStore file. The file is generated by calling File(context.filesDir, "datastore/" + name + ".preferences_pb"). The user is responsible for ensuring that there is never more than one DataStore acting on a file at a time.

Parameters
context: Context the context from which we retrieve files directory.
name: String the filename relative to Context.filesDir that DataStore acts on. The File is obtained by calling File(this.filesDir, "datastore/$name.preferences_pb"). No two instances of DataStore should act on the same file at the same time.

Public methods

addDataMigration

fun addDataMigration(dataMigration: DataMigration<Preferences>): RxPreferenceDataStoreBuilder

Add a DataMigration to the Datastore. Migrations are run in the order they are added.

Parameters
dataMigration: DataMigration<Preferences> the migration to add
Return
this

addRxDataMigration

fun addRxDataMigration(rxDataMigration: RxDataMigration<Preferences>): RxPreferenceDataStoreBuilder

Add an RxDataMigration to the DataStore. Migrations are run in the order they are added.

Parameters
rxDataMigration: RxDataMigration<Preferences> the migration to add.
Return
this

build

fun build(): RxDataStore<Preferences>

Build the DataStore.

Exceptions
IllegalStateException if serializer is not set or if neither produceFile not context and name are set.
Return
the DataStore with the provided parameters

setCorruptionHandler

fun setCorruptionHandler(corruptionHandler: ReplaceFileCorruptionHandler<Preferences>): RxPreferenceDataStoreBuilder

Sets the corruption handler to install into the DataStore.

This parameter is optional and defaults to no corruption handler.

Parameters
corruptionHandler: ReplaceFileCorruptionHandler<Preferences> the ReplaceFileCorruptionHandler to install
Return
this

setIoScheduler

fun setIoScheduler(ioScheduler: Scheduler): RxPreferenceDataStoreBuilder

Set the Scheduler on which to perform IO and transform operations. This is converted into a CoroutineDispatcher before being added to DataStore.

This parameter is optional and defaults to Schedulers.io().

Parameters
ioScheduler: Scheduler the scheduler on which IO and transform operations are run
Return
this