Guest User

Untitled

a guest
May 26th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. override fun loadInitial(params: LoadInitialParams<String>, callback: LoadInitialCallback<String, Note>) {
  2. Log.d(TAG, "loadInitial: requestedLoadSize=${params.requestedLoadSize}")
  3. val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
  4. val query = AllNotesQuery.builder()
  5. .limit(pageSize)
  6. .build()
  7.  
  8. val graphqlCallback = object : GraphQLCall.Callback<AllNotesQuery.Data>() {
  9. override fun onResponse(response: Response<AllNotesQuery.Data>) {
  10. if (response.hasErrors()) {
  11. Log.d(TAG, "loadInitial::onResponse - has errors")
  12. } else {
  13. Log.d(TAG, "loadInitial::onResponse - data received")
  14. response.data()?.allNotes()?.let {
  15. val results = mutableListOf<Note>()
  16. for (rNote in it.notes()) {
  17. results.add(Note(rNote.noteId()).apply { title = rNote.title() ?: "" })
  18. }
  19. callback.onResult(results, null, it.nextToken())
  20. }
  21. }
  22. }
  23.  
  24. override fun onFailure(e: ApolloException) {
  25. throw e
  26. }
  27. }
  28.  
  29. appSyncClient.query(query)
  30. .responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY)
  31. .enqueue(graphqlCallback)
  32. }
  33.  
  34. override fun loadAfter(params: LoadParams<String>, callback: LoadCallback<String, Note>) {
  35. Log.d(TAG, "loadAfter: key=${params.key} requestedLoadSize=${params.requestedLoadSize}")
  36. val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
  37. val query = AllNotesQuery.builder()
  38. .limit(pageSize)
  39. .nextToken(params.key)
  40. .build()
  41.  
  42. val graphqlCallback = object : GraphQLCall.Callback<AllNotesQuery.Data>() {
  43. override fun onResponse(response: Response<AllNotesQuery.Data>) {
  44. if (response.hasErrors()) {
  45. Log.d(TAG, "loadAfter::onResponse - has errors")
  46. } else {
  47. Log.d(TAG, "loadAfter::onResponse - data received")
  48. response.data()?.allNotes()?.let {
  49. val results = mutableListOf<Note>()
  50. for (rNote in it.notes()) {
  51. results.add(Note(rNote.noteId()).apply { title = rNote.title() ?: "" })
  52. }
  53. callback.onResult(results, it.nextToken())
  54. }
  55. }
  56. }
  57.  
  58. override fun onFailure(e: ApolloException) {
  59. throw e
  60. }
  61. }
  62.  
  63. appSyncClient.query(query)
  64. .responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY)
  65. .enqueue(graphqlCallback)
  66. }
  67.  
  68. override fun loadBefore(params: LoadParams<String>, callback: LoadCallback<String, Note>) {
  69. // We can't go backwards, so this should never happen.
  70. invalidate()
  71. }
Add Comment
Please, Sign In to add comment