Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- override fun loadInitial(params: LoadInitialParams<String>, callback: LoadInitialCallback<String, Note>) {
- Log.d(TAG, "loadInitial: requestedLoadSize=${params.requestedLoadSize}")
- val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
- val query = AllNotesQuery.builder()
- .limit(pageSize)
- .build()
- val graphqlCallback = object : GraphQLCall.Callback<AllNotesQuery.Data>() {
- override fun onResponse(response: Response<AllNotesQuery.Data>) {
- if (response.hasErrors()) {
- Log.d(TAG, "loadInitial::onResponse - has errors")
- } else {
- Log.d(TAG, "loadInitial::onResponse - data received")
- response.data()?.allNotes()?.let {
- val results = mutableListOf<Note>()
- for (rNote in it.notes()) {
- results.add(Note(rNote.noteId()).apply { title = rNote.title() ?: "" })
- }
- callback.onResult(results, null, it.nextToken())
- }
- }
- }
- override fun onFailure(e: ApolloException) {
- throw e
- }
- }
- appSyncClient.query(query)
- .responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY)
- .enqueue(graphqlCallback)
- }
- override fun loadAfter(params: LoadParams<String>, callback: LoadCallback<String, Note>) {
- Log.d(TAG, "loadAfter: key=${params.key} requestedLoadSize=${params.requestedLoadSize}")
- val pageSize = minOf(MAX_PAGE_SIZE, params.requestedLoadSize)
- val query = AllNotesQuery.builder()
- .limit(pageSize)
- .nextToken(params.key)
- .build()
- val graphqlCallback = object : GraphQLCall.Callback<AllNotesQuery.Data>() {
- override fun onResponse(response: Response<AllNotesQuery.Data>) {
- if (response.hasErrors()) {
- Log.d(TAG, "loadAfter::onResponse - has errors")
- } else {
- Log.d(TAG, "loadAfter::onResponse - data received")
- response.data()?.allNotes()?.let {
- val results = mutableListOf<Note>()
- for (rNote in it.notes()) {
- results.add(Note(rNote.noteId()).apply { title = rNote.title() ?: "" })
- }
- callback.onResult(results, it.nextToken())
- }
- }
- }
- override fun onFailure(e: ApolloException) {
- throw e
- }
- }
- appSyncClient.query(query)
- .responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY)
- .enqueue(graphqlCallback)
- }
- override fun loadBefore(params: LoadParams<String>, callback: LoadCallback<String, Note>) {
- // We can't go backwards, so this should never happen.
- invalidate()
- }
Add Comment
Please, Sign In to add comment