From 73980544db791bf27b08b26d3f64f9ef2e3e822e Mon Sep 17 00:00:00 2001
From: Alex Ning <chineseperson5@gmail.com>
Date: Mon, 3 Feb 2020 16:59:25 +0800
Subject: Fix bugs of showing top-level comments.

---
 .../ml/docilealligator/infinityforreddit/FetchComment.java  |  4 ++++
 .../ml/docilealligator/infinityforreddit/ParseComment.java  | 13 +++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

(limited to 'app/src')

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<String> 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<CommentData> comments, ArrayList<CommentData> visibleComments) {
+    private static void expandChildren(ArrayList<CommentData> comments, ArrayList<CommentData> 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;
             }
-- 
cgit v1.2.3