Browse Source

fix comments paging issue

master
Austin Huang 3 years ago
parent
commit
dc77f16b13
No known key found for this signature in database GPG Key ID: 84C23AA04587A91F
  1. 3
      app/src/main/java/awais/instagrabber/repositories/responses/CommentsFetchResponse.kt
  2. 5
      app/src/main/java/awais/instagrabber/viewmodels/CommentsViewerViewModel.java
  3. 4
      app/src/main/java/awais/instagrabber/webservices/CommentService.java

3
app/src/main/java/awais/instagrabber/repositories/responses/CommentsFetchResponse.kt

@ -5,6 +5,5 @@ import awais.instagrabber.models.Comment
data class CommentsFetchResponse( data class CommentsFetchResponse(
val commentCount: Int, val commentCount: Int,
val nextMinId: String?, val nextMinId: String?,
val comments: List<Comment>?,
val hasMoreComments: Boolean
val comments: List<Comment>?
) )

5
app/src/main/java/awais/instagrabber/viewmodels/CommentsViewerViewModel.java

@ -32,6 +32,7 @@ import awais.instagrabber.utils.Constants;
import awais.instagrabber.utils.CookieUtils; import awais.instagrabber.utils.CookieUtils;
import awais.instagrabber.utils.CoroutineUtilsKt; import awais.instagrabber.utils.CoroutineUtilsKt;
import awais.instagrabber.utils.Utils; import awais.instagrabber.utils.Utils;
import awais.instagrabber.utils.TextUtils;
import awais.instagrabber.webservices.CommentService; import awais.instagrabber.webservices.CommentService;
import awais.instagrabber.webservices.GraphQLRepository; import awais.instagrabber.webservices.GraphQLRepository;
import awais.instagrabber.webservices.ServiceCallback; import awais.instagrabber.webservices.ServiceCallback;
@ -77,7 +78,7 @@ public class CommentsViewerViewModel extends ViewModel {
comments = mergeList(rootList, comments); comments = mergeList(rootList, comments);
} }
rootCursor = result.getNextMinId(); rootCursor = result.getNextMinId();
rootHasNext = result.getHasMoreComments();
rootHasNext = !TextUtils.isEmpty(rootCursor);
rootList.postValue(Resource.success(comments)); rootList.postValue(Resource.success(comments));
} }
@ -233,7 +234,7 @@ public class CommentsViewerViewModel extends ViewModel {
final Comment commentModel = getComment(commentsJsonArray.getJSONObject(i).getJSONObject("node"), root); final Comment commentModel = getComment(commentsJsonArray.getJSONObject(i).getJSONObject("node"), root);
builder.add(commentModel); builder.add(commentModel);
} }
final Object result = root ? new CommentsFetchResponse(count, endCursor, builder.build(), hasNextPage)
final Object result = root ? new CommentsFetchResponse(count, endCursor, builder.build())
: new ChildCommentsFetchResponse(count, endCursor, builder.build(), hasNextPage); : new ChildCommentsFetchResponse(count, endCursor, builder.build(), hasNextPage);
//noinspection unchecked //noinspection unchecked
callback.onSuccess(result); callback.onSuccess(result);

4
app/src/main/java/awais/instagrabber/webservices/CommentService.java

@ -70,11 +70,11 @@ public class CommentService {
} }
public void fetchComments(@NonNull final String mediaId, public void fetchComments(@NonNull final String mediaId,
final String maxId,
final String minId,
@NonNull final ServiceCallback<CommentsFetchResponse> callback) { @NonNull final ServiceCallback<CommentsFetchResponse> callback) {
final Map<String, String> form = new HashMap<>(); final Map<String, String> form = new HashMap<>();
form.put("can_support_threading", "true"); form.put("can_support_threading", "true");
if (maxId != null) form.put("max_id", maxId);
if (minId != null) form.put("min_id", minId);
final Call<CommentsFetchResponse> request = repository.fetchComments(mediaId, form); final Call<CommentsFetchResponse> request = repository.fetchComments(mediaId, form);
request.enqueue(new Callback<CommentsFetchResponse>() { request.enqueue(new Callback<CommentsFetchResponse>() {
@Override @Override

Loading…
Cancel
Save