PageKeyedDataSource

public abstract class PageKeyedDataSource<Key extends Object, Value extends Object> extends DataSource

Object
   ↳ DataSource
     ↳ PageKeyedDataSource

Incremental data loader for page-keyed content, where requests return keys for next/previous pages.

Implement a DataSource using PageKeyedDataSource if you need to use data from page N - 1 to load page N. This is common, for example, in network APIs that include a next/previous link or key with each page load.

The InMemoryByPageRepository in the PagingWithNetworkSample shows how to implement a network PageKeyedDataSource using Retrofit, while handling swipe-to-refresh, network errors, and retry.

Parameters
<Key extends Object>

Type of data used to query Value types out of the DataSource.

<Value extends Object>

Type of items being loaded by the DataSource.

Summary

Nested types

PageKeyedDataSource.LoadCallback

Callback for loadBefore and loadAfter to return data.

PageKeyedDataSource.LoadInitialCallback

Callback for loadInitial to return data and, optionally, position/count information.

PageKeyedDataSource.LoadInitialParams

Holder object for inputs to loadInitial.

PageKeyedDataSource.LoadParams

Holder object for inputs to loadBefore and loadAfter.

Public constructors

<Key extends Object, Value extends Object> PageKeyedDataSource()

Public methods

abstract void
loadAfter(
    PageKeyedDataSource.LoadParams<Key> params,
    PageKeyedDataSource.LoadCallback<Key, Value> callback
)

Append page with the key specified by LoadParams.key.

abstract void
loadBefore(
    PageKeyedDataSource.LoadParams<Key> params,
    PageKeyedDataSource.LoadCallback<Key, Value> callback
)

Prepend page with the key specified by LoadParams.key.

abstract void