in PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/repository/inMemory/byItem/ItemKeyedSubredditPagingSource.kt [42:61]
override suspend fun load(params: LoadParams<String>): LoadResult<String, RedditPost> {
return try {
val items = redditApi.getTop(
subreddit = subredditName,
after = if (params is Append) params.key else null,
before = if (params is Prepend) params.key else null,
limit = params.loadSize
).data.children.map { it.data }
Page(
data = items,
prevKey = items.firstOrNull()?.name,
nextKey = items.lastOrNull()?.name
)
} catch (e: IOException) {
LoadResult.Error(e)
} catch (e: HttpException) {
LoadResult.Error(e)
}
}