Slide 16
Slide 16 text
YUMEMI.grow Mobile #9
Repository
class UnsplashPagingSource(
private val service: UnsplashService,
private val query: String
) : PagingSource() {
override suspend fun load(params: LoadParams): LoadResult {
val page = params.key ?: UNSPLASH_STARTING_PAGE_INDEX
return try {
val response = service.searchPhotos(query, page, params.loadSize)
val photos = response.results
LoadResult.Page(
data = photos,
prevKey = if (page == UNSPLASH_STARTING_PAGE_INDEX) null else page - 1,
nextKey = if (page == response.totalPages) null else page + 1
)
} catch (exception: Exception) {
LoadResult.Error(exception)
}
}
16