Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Load the initial items
- */
- override fun loadInitial(params: LoadInitialParams<Int>, callback: LoadInitialCallback<Note>) {
- Log.d(TAG, "loadInitial: key=${params.requestedInitialKey ?: "undefined"}, size=${params.requestedLoadSize}")
- val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
- val firstItem = inRange(params.requestedInitialKey ?: 0,0, items.size)
- val lastItem = inRange(firstItem + pageSize, 0, items.size)
- Log.d(TAG, "loadInitial: firstItem = $firstItem, lastItem = $lastItem")
- val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
- if (params.placeholdersEnabled) {
- callback.onResult(data, firstItem, items.size)
- } else {
- callback.onResult(data)
- }
- }
- /**
- * Load the next page
- */
- override fun loadAfter(params: LoadParams<Int>, callback: LoadCallback<Note>) {
- Log.d(TAG, "loadAfter: key=${params.key}, size=${params.requestedLoadSize}")
- val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
- val firstItem = inRange(params.key + 1, 0, items.size)
- val lastItem = inRange(firstItem + pageSize, 0, items.size)
- Log.d(TAG, "loadAfter: firstItem = $firstItem, lastItem = $lastItem")
- val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
- callback.onResult(data)
- }
- /**
- * Load the previous page
- */
- override fun loadBefore(params: LoadParams<Int>, callback: LoadCallback<Note>) {
- Log.d(TAG, "loadAfter: key=${params.key}, size=${params.requestedLoadSize}")
- val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
- val lastItem = inRange(params.key - 1, 0, items.size)
- val firstItem = inRange(lastItem - pageSize, 0, items.size)
- Log.d(TAG, "loadBefore: firstItem = $firstItem, lastItem = $lastItem")
- val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
- callback.onResult(data)
- }
- /**
- * Obtain an item based on the position
- */
- override fun getKey(item: Note): Int
- = items.indexOfFirst { it.noteId == item.noteId }
Add Comment
Please, Sign In to add comment