fix comments paging issue

This commit is contained in:
Austin Huang 2021-07-22 14:29:24 -04:00
parent 66acf16d53
commit dc77f16b13
No known key found for this signature in database
GPG Key ID: 84C23AA04587A91F
3 changed files with 6 additions and 6 deletions

View File

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

View File

@ -32,6 +32,7 @@ import awais.instagrabber.utils.Constants;
import awais.instagrabber.utils.CookieUtils;
import awais.instagrabber.utils.CoroutineUtilsKt;
import awais.instagrabber.utils.Utils;
import awais.instagrabber.utils.TextUtils;
import awais.instagrabber.webservices.CommentService;
import awais.instagrabber.webservices.GraphQLRepository;
import awais.instagrabber.webservices.ServiceCallback;
@ -77,7 +78,7 @@ public class CommentsViewerViewModel extends ViewModel {
comments = mergeList(rootList, comments);
}
rootCursor = result.getNextMinId();
rootHasNext = result.getHasMoreComments();
rootHasNext = !TextUtils.isEmpty(rootCursor);
rootList.postValue(Resource.success(comments));
}
@ -233,7 +234,7 @@ public class CommentsViewerViewModel extends ViewModel {
final Comment commentModel = getComment(commentsJsonArray.getJSONObject(i).getJSONObject("node"), root);
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);
//noinspection unchecked
callback.onSuccess(result);

View File

@ -70,11 +70,11 @@ public class CommentService {
}
public void fetchComments(@NonNull final String mediaId,
final String maxId,
final String minId,
@NonNull final ServiceCallback<CommentsFetchResponse> callback) {
final Map<String, String> form = new HashMap<>();
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);
request.enqueue(new Callback<CommentsFetchResponse>() {
@Override