Skip to content

Instantly share code, notes, and snippets.

@chetdeva
Last active November 2, 2018 14:00
Show Gist options
  • Save chetdeva/3282d04cdf9beeb1c1d7e8af5e7ed370 to your computer and use it in GitHub Desktop.
Save chetdeva/3282d04cdf9beeb1c1d7e8af5e7ed370 to your computer and use it in GitHub Desktop.
/**
* A data source that uses the "name" field of posts as the key for next/prev pages.
*/
class ItemKeyedSubredditDataSource : ItemKeyedDataSource<String, RedditPost>() {
override fun loadInitial(params: LoadInitialParams<String>,
callback: LoadInitialCallback<RedditPost>) {
val request = redditApi.getTop(
subreddit = subredditName,
limit = params.requestedLoadSize)
// Retrofit Call onResponse omitted
callback.onResult(items)
}
override fun loadAfter(params: LoadParams<String>,
callback: LoadCallback<RedditPost>) {
val request = redditApi.getTopAfter(
subreddit = subredditName,
after = params.key,
limit = params.requestedLoadSize)
// Retrofit Call onResponse omitted
callback.onResult(items)
}
override fun getKey(item: RedditPost): String {
return item.name
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment