mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-12-23 05:16:58 +00:00
fix various comments bugs
1. redo ChildCommentsFetchResponse structure, stress-tested 2. navigation on more graph again 3. proper "next page" handling
This commit is contained in:
parent
118fffc074
commit
544d9f87bc
@ -8,27 +8,30 @@ import awais.instagrabber.models.Comment;
|
||||
|
||||
public class ChildCommentsFetchResponse {
|
||||
private final int childCommentCount;
|
||||
private final String nextMinId;
|
||||
private final String nextMaxChildCursor;
|
||||
private final List<Comment> childComments;
|
||||
private final boolean hasMoreTailChildComments;
|
||||
|
||||
public ChildCommentsFetchResponse(final int childCommentCount,
|
||||
final String nextMinId, // unconfirmed
|
||||
final List<Comment> childComments) {
|
||||
final String nextMaxChildCursor,
|
||||
final List<Comment> childComments,
|
||||
final boolean hasMoreTailChildComments) {
|
||||
this.childCommentCount = childCommentCount;
|
||||
this.nextMinId = nextMinId;
|
||||
this.nextMaxChildCursor = nextMaxChildCursor;
|
||||
this.childComments = childComments;
|
||||
this.hasMoreTailChildComments = hasMoreTailChildComments;
|
||||
}
|
||||
|
||||
public int getChildCommentCount() {
|
||||
return childCommentCount;
|
||||
}
|
||||
|
||||
public String getNextMinId() {
|
||||
return nextMinId;
|
||||
public String getNextMaxChildCursor() {
|
||||
return nextMaxChildCursor;
|
||||
}
|
||||
|
||||
public boolean hasNext() {
|
||||
return nextMinId != null;
|
||||
public boolean getHasMoreTailChildComments() {
|
||||
return hasMoreTailChildComments;
|
||||
}
|
||||
|
||||
public List<Comment> getChildComments() {
|
||||
@ -38,10 +41,11 @@ public class ChildCommentsFetchResponse {
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CommentsFetchResponse{" +
|
||||
return "ChildCommentsFetchResponse{" +
|
||||
"childCommentCount=" + childCommentCount +
|
||||
", nextMinId='" + nextMinId + '\'' +
|
||||
", nextMaxChildCursor='" + nextMaxChildCursor + '\'' +
|
||||
", childComments=" + childComments +
|
||||
", hasMoreTailChildComments=" + hasMoreTailChildComments +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -10,13 +10,16 @@ public class CommentsFetchResponse {
|
||||
private final int commentCount;
|
||||
private final String nextMinId;
|
||||
private final List<Comment> comments;
|
||||
private final boolean hasMoreComments;
|
||||
|
||||
public CommentsFetchResponse(final int commentCount,
|
||||
final String nextMinId,
|
||||
final List<Comment> comments) {
|
||||
final List<Comment> comments,
|
||||
final boolean hasMoreComments) {
|
||||
this.commentCount = commentCount;
|
||||
this.nextMinId = nextMinId;
|
||||
this.comments = comments;
|
||||
this.hasMoreComments = hasMoreComments;
|
||||
}
|
||||
|
||||
public int getCommentCount() {
|
||||
@ -27,14 +30,14 @@ public class CommentsFetchResponse {
|
||||
return nextMinId;
|
||||
}
|
||||
|
||||
public boolean hasNext() {
|
||||
return nextMinId != null;
|
||||
}
|
||||
|
||||
public List<Comment> getComments() {
|
||||
return comments;
|
||||
}
|
||||
|
||||
public boolean getHasMoreComments() {
|
||||
return hasMoreComments;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
@ -42,6 +45,7 @@ public class CommentsFetchResponse {
|
||||
"commentCount=" + commentCount +
|
||||
", nextMinId='" + nextMinId + '\'' +
|
||||
", comments=" + comments +
|
||||
", hasMoreComments=" + hasMoreComments +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import java.io.Serializable
|
||||
data class User @JvmOverloads constructor(
|
||||
val pk: Long = 0,
|
||||
val username: String = "",
|
||||
val fullName: String = "",
|
||||
val fullName: String? = "",
|
||||
val isPrivate: Boolean = false,
|
||||
val profilePicUrl: String? = null,
|
||||
val isVerified: Boolean = false,
|
||||
|
@ -74,7 +74,7 @@ public class CommentsViewerViewModel extends ViewModel {
|
||||
comments = mergeList(rootList, comments);
|
||||
}
|
||||
rootCursor = result.getNextMinId();
|
||||
rootHasNext = result.hasNext();
|
||||
rootHasNext = result.getHasMoreComments();
|
||||
rootList.postValue(Resource.success(comments));
|
||||
}
|
||||
|
||||
@ -100,8 +100,8 @@ public class CommentsViewerViewModel extends ViewModel {
|
||||
if (repliesCursor != null) {
|
||||
comments = mergeList(replyList, comments);
|
||||
}
|
||||
repliesCursor = result.getNextMinId();
|
||||
repliesHasNext = result.hasNext();
|
||||
repliesCursor = result.getNextMaxChildCursor();
|
||||
repliesHasNext = result.getHasMoreTailChildComments();
|
||||
replyList.postValue(Resource.success(comments));
|
||||
}
|
||||
|
||||
@ -228,8 +228,8 @@ 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())
|
||||
: new ChildCommentsFetchResponse(count, endCursor, builder.build());
|
||||
final Object result = root ? new CommentsFetchResponse(count, endCursor, builder.build(), hasNextPage)
|
||||
: new ChildCommentsFetchResponse(count, endCursor, builder.build(), hasNextPage);
|
||||
//noinspection unchecked
|
||||
callback.onSuccess(result);
|
||||
} catch (Exception e) {
|
||||
|
@ -13,6 +13,35 @@
|
||||
<include app:graph="@navigation/story_list_nav_graph" />
|
||||
<include app:graph="@navigation/discover_nav_graph" />
|
||||
|
||||
<action
|
||||
android:id="@+id/action_global_commentsViewerFragment"
|
||||
app:destination="@id/comments_nav_graph">
|
||||
<argument
|
||||
android:name="shortCode"
|
||||
app:argType="string"
|
||||
app:nullable="false" />
|
||||
<argument
|
||||
android:name="postId"
|
||||
app:argType="string"
|
||||
app:nullable="false" />
|
||||
<argument
|
||||
android:name="postUserId"
|
||||
app:argType="long" />
|
||||
</action>
|
||||
|
||||
<action
|
||||
android:id="@+id/action_global_likesViewerFragment"
|
||||
app:destination="@id/likes_nav_graph">
|
||||
<argument
|
||||
android:name="postId"
|
||||
app:argType="string"
|
||||
app:nullable="false" />
|
||||
<argument
|
||||
android:name="isComment"
|
||||
app:argType="boolean"
|
||||
app:nullable="false" />
|
||||
</action>
|
||||
|
||||
<action
|
||||
android:id="@+id/action_global_profileFragment"
|
||||
app:destination="@id/profile_nav_graph">
|
||||
|
Loading…
Reference in New Issue
Block a user