From 73980544db791bf27b08b26d3f64f9ef2e3e822e Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Mon, 3 Feb 2020 16:59:25 +0800 Subject: [PATCH] Fix bugs of showing top-level comments. --- .../infinityforreddit/FetchComment.java | 4 ++++ .../infinityforreddit/ParseComment.java | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java index 8fb9a851..2af9275e 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java @@ -67,6 +67,10 @@ public class FetchComment { ArrayList allChildren, int startingIndex, int depth, boolean expandChildren, Locale locale, FetchMoreCommentListener fetchMoreCommentListener) { + if (allChildren == null) { + return; + } + StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 100; i++) { if (allChildren.size() <= startingIndex + i) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java index 54101eba..1650b6bc 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java @@ -95,12 +95,15 @@ public class ParseComment { } } - private static void expandChildren(ArrayList comments, ArrayList visibleComments) { + private static void expandChildren(ArrayList comments, ArrayList visibleComments, + boolean setExpanded) { for (CommentData c : comments) { visibleComments.add(c); if (c.hasReply()) { - c.setExpanded(true); - expandChildren(c.getChildren(), visibleComments); + if (setExpanded) { + c.setExpanded(true); + } + expandChildren(c.getChildren(), visibleComments, setExpanded); } if (c.hasMoreChildrenFullnames() && c.getMoreChildrenFullnames().size() > c.getMoreChildrenStartingIndex()) { //Add a load more placeholder @@ -239,9 +242,7 @@ public class ParseComment { protected Void doInBackground(Void... voids) { try { parseCommentRecursion(commentsJSONArray, newComments, moreChildrenFullnames, depth, locale); - if (expandChildren) { - expandChildren(newComments, expandedNewComments); - } + expandChildren(newComments, expandedNewComments, expandChildren); } catch (JSONException e) { parseFailed = true; }