RxPagedListBuilder
public
final
class
RxPagedListBuilder
extends Object
java.lang.Object | |
↳ | android.arch.paging.RxPagedListBuilder<Key, Value> |
Builder for Observable<PagedList>
or Flowable<PagedList>
, given a
DataSource.Factory
and a PagedList.Config
.
The required parameters are in the constructor, so you can simply construct and build, or optionally enable extra features (such as initial load key, or BoundaryCallback).
The returned observable/flowable will already be subscribed on the
setFetchScheduler(Scheduler)
, and will perform all loading on that scheduler. It will
already be observed on setNotifyScheduler(Scheduler)
, and will dispatch new PagedLists,
as well as their updates to that scheduler.
Summary
Public constructors | |
---|---|
RxPagedListBuilder(Factory<Key, Value> dataSourceFactory, PagedList.Config config)
Creates a RxPagedListBuilder with required parameters. |
|
RxPagedListBuilder(Factory<Key, Value> dataSourceFactory, int pageSize)
Creates a RxPagedListBuilder with required parameters. |
Public methods | |
---|---|
Flowable<PagedList<Value>>
|
buildFlowable(BackpressureStrategy backpressureStrategy)
Constructs a |
Observable<PagedList<Value>>
|
buildObservable()
Constructs a |
RxPagedListBuilder<Key, Value>
|
setBoundaryCallback(BoundaryCallback<Value> boundaryCallback)
Sets a |
RxPagedListBuilder<Key, Value>
|
setFetchScheduler(Scheduler scheduler)
Sets scheduler which will be used for background fetching of PagedLists, as well as on-demand fetching of pages inside. |
RxPagedListBuilder<Key, Value>
|
setInitialLoadKey(Key key)
First loading key passed to the first PagedList/DataSource. |
RxPagedListBuilder<Key, Value>
|
setNotifyScheduler(Scheduler scheduler)
Sets scheduler which will be used for observing new PagedLists, as well as loading updates within the PagedLists. |
Inherited methods | |
---|---|
Public constructors
RxPagedListBuilder
RxPagedListBuilder (Factory<Key, Value> dataSourceFactory, PagedList.Config config)
Creates a RxPagedListBuilder with required parameters.
Parameters | |
---|---|
dataSourceFactory |
Factory : DataSource factory providing DataSource generations. |
config |
PagedList.Config : Paging configuration.
|
RxPagedListBuilder
RxPagedListBuilder (Factory<Key, Value> dataSourceFactory, int pageSize)
Creates a RxPagedListBuilder with required parameters.
This method is a convenience for:
RxPagedListBuilder(dataSourceFactory, new PagedList.Config.Builder().setPageSize(pageSize).build())
Parameters | |
---|---|
dataSourceFactory |
Factory : DataSource.Factory providing DataSource generations. |
pageSize |
int : Size of pages to load.
|
Public methods
buildFlowable
Flowable<PagedList<Value>> buildFlowable (BackpressureStrategy backpressureStrategy)
Constructs a Flowable<PagedList>
.
The returned Observable will already be observed on the
notify scheduler
, and subscribed on the
fetch scheduler
.
Parameters | |
---|---|
backpressureStrategy |
BackpressureStrategy : BackpressureStrategy for the Flowable to use. |
Returns | |
---|---|
Flowable<PagedList<Value>> |
The Flowable of PagedLists |
buildObservable
Observable<PagedList<Value>> buildObservable ()
Constructs a Observable<PagedList>
.
The returned Observable will already be observed on the
notify scheduler
, and subscribed on the
fetch scheduler
.
Returns | |
---|---|
Observable<PagedList<Value>> |
The Observable of PagedLists |
setBoundaryCallback
RxPagedListBuilder<Key, Value> setBoundaryCallback (BoundaryCallback<Value> boundaryCallback)
Sets a PagedList.BoundaryCallback
on each PagedList created, typically used to load
additional data from network when paging from local storage.
Pass a BoundaryCallback to listen to when the PagedList runs out of data to load. If this
method is not called, or null
is passed, you will not be notified when each
DataSource runs out of data to provide to its PagedList.
If you are paging from a DataSource.Factory backed by local storage, you can set a BoundaryCallback to know when there is no more information to page from local storage. This is useful to page from the network when local storage is a cache of network data.
Note that when using a BoundaryCallback with a Observable<PagedList>
, method calls
on the callback may be dispatched multiple times - one for each PagedList/DataSource
pair. If loading network data from a BoundaryCallback, you should prevent multiple
dispatches of the same method from triggering multiple simultaneous network loads.
Parameters | |
---|---|
boundaryCallback |
BoundaryCallback : The boundary callback for listening to PagedList load state. |
Returns | |
---|---|
RxPagedListBuilder<Key, Value> |
this |
setFetchScheduler
RxPagedListBuilder<Key, Value> setFetchScheduler (Scheduler scheduler)
Sets scheduler which will be used for background fetching of PagedLists, as well as on-demand fetching of pages inside.
Parameters | |
---|---|
scheduler |
Scheduler : Scheduler for background DataSource loading. |
Returns | |
---|---|
RxPagedListBuilder<Key, Value> |
this |
setInitialLoadKey
RxPagedListBuilder<Key, Value> setInitialLoadKey (Key key)
First loading key passed to the first PagedList/DataSource.
When a new PagedList/DataSource pair is created after the first, it acquires a load key from the previous generation so that data is loaded around the position already being observed.
Parameters | |
---|---|
key |
Key : Initial load key passed to the first PagedList/DataSource. |
Returns | |
---|---|
RxPagedListBuilder<Key, Value> |
this |
setNotifyScheduler
RxPagedListBuilder<Key, Value> setNotifyScheduler (Scheduler scheduler)
Sets scheduler which will be used for observing new PagedLists, as well as loading updates within the PagedLists.
The built observable will be observed on
this
scheduler, so that the thread receiving PagedLists will also receive the internal updates to
the PagedList.
Parameters | |
---|---|
scheduler |
Scheduler : Scheduler for background DataSource loading. |
Returns | |
---|---|
RxPagedListBuilder<Key, Value> |
this |
Interfaces
Classes
- AsyncPagedListDiffer
- DataSource
- DataSource.Factory
- ItemKeyedDataSource
- ItemKeyedDataSource.LoadCallback
- ItemKeyedDataSource.LoadInitialCallback
- ItemKeyedDataSource.LoadInitialParams
- ItemKeyedDataSource.LoadParams
- LivePagedListBuilder
- PagedList
- PagedList.BoundaryCallback
- PagedList.Builder
- PagedList.Callback
- PagedList.Config
- PagedList.Config.Builder
- PagedListAdapter
- PageKeyedDataSource
- PageKeyedDataSource.LoadCallback
- PageKeyedDataSource.LoadInitialCallback
- PageKeyedDataSource.LoadInitialParams
- PageKeyedDataSource.LoadParams
- PositionalDataSource
- PositionalDataSource.LoadInitialCallback
- PositionalDataSource.LoadInitialParams
- PositionalDataSource.LoadRangeCallback
- PositionalDataSource.LoadRangeParams
- RxPagedListBuilder