Guest User

Untitled

a guest
May 20th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. /**
  2. * Load the initial items
  3. */
  4. override fun loadInitial(params: LoadInitialParams<Int>, callback: LoadInitialCallback<Note>) {
  5. Log.d(TAG, "loadInitial: key=${params.requestedInitialKey ?: "undefined"}, size=${params.requestedLoadSize}")
  6. val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
  7. val firstItem = inRange(params.requestedInitialKey ?: 0,0, items.size)
  8. val lastItem = inRange(firstItem + pageSize, 0, items.size)
  9. Log.d(TAG, "loadInitial: firstItem = $firstItem, lastItem = $lastItem")
  10. val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
  11. if (params.placeholdersEnabled) {
  12. callback.onResult(data, firstItem, items.size)
  13. } else {
  14. callback.onResult(data)
  15. }
  16. }
  17.  
  18. /**
  19. * Load the next page
  20. */
  21. override fun loadAfter(params: LoadParams<Int>, callback: LoadCallback<Note>) {
  22. Log.d(TAG, "loadAfter: key=${params.key}, size=${params.requestedLoadSize}")
  23. val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
  24. val firstItem = inRange(params.key + 1, 0, items.size)
  25. val lastItem = inRange(firstItem + pageSize, 0, items.size)
  26. Log.d(TAG, "loadAfter: firstItem = $firstItem, lastItem = $lastItem")
  27. val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
  28. callback.onResult(data)
  29. }
  30.  
  31. /**
  32. * Load the previous page
  33. */
  34. override fun loadBefore(params: LoadParams<Int>, callback: LoadCallback<Note>) {
  35. Log.d(TAG, "loadAfter: key=${params.key}, size=${params.requestedLoadSize}")
  36. val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
  37. val lastItem = inRange(params.key - 1, 0, items.size)
  38. val firstItem = inRange(lastItem - pageSize, 0, items.size)
  39. Log.d(TAG, "loadBefore: firstItem = $firstItem, lastItem = $lastItem")
  40. val data = if (firstItem == lastItem) emptyList<Note>() else items.subList(firstItem, lastItem)
  41. callback.onResult(data)
  42. }
  43.  
  44. /**
  45. * Obtain an item based on the position
  46. */
  47. override fun getKey(item: Note): Int
  48. = items.indexOfFirst { it.noteId == item.noteId }
Add Comment
Please, Sign In to add comment