diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java | 13 | ||||
-rw-r--r-- | app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java | 41 |
2 files changed, 45 insertions, 9 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java index 77adf5f1..84186625 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java @@ -9,7 +9,6 @@ import android.support.annotation.NonNull; import android.support.customtabs.CustomTabsIntent; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -111,15 +110,11 @@ class CommentMultiLevelRecyclerViewAdapter extends MultiLevelAdapter { setExpandButton(((CommentViewHolder) holder).expandButton, commentItem.isExpanded()); } else { ((CommentViewHolder) holder).loadMoreCommentsProgressBar.setVisibility(View.VISIBLE); - FetchComment.fetchComment(mRetrofit, subredditNamePrefixed, article, commentItem.getId(), - locale, false, commentItem.getDepth(), new FetchComment.FetchCommentListener() { + FetchComment.fetchAllComment(mRetrofit, subredditNamePrefixed, article, commentItem.getId(), + locale, false, commentItem.getDepth(), new FetchComment.FetchAllCommentListener() { @Override - public void onFetchCommentSuccess(List<?> commentData, - String parentId, String commaSeparatedChildren) { + public void onFetchAllCommentSuccess(List<?> commentData) { commentItem.addChildren((List<RecyclerViewItem>) commentData); - for (RecyclerViewItem r : (List<RecyclerViewItem>) commentData) { - Log.i("asdfasdfasd", Integer.toString(r.getLevel())); - } ((CommentViewHolder) holder).loadMoreCommentsProgressBar .setVisibility(View.GONE); mMultiLevelRecyclerView.toggleItemsGroup(holder.getAdapterPosition()); @@ -128,7 +123,7 @@ class CommentMultiLevelRecyclerViewAdapter extends MultiLevelAdapter { } @Override - public void onFetchCommentFailed() { + public void onFetchAllCommentFailed() { ((CommentViewHolder) holder).loadMoreCommentsProgressBar .setVisibility(View.GONE); } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java index 7faf76fb..acd49008 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java @@ -24,6 +24,11 @@ class FetchComment { void onFetchMoreCommentFailed(); } + interface FetchAllCommentListener { + void onFetchAllCommentSuccess(List<?> commentData); + void onFetchAllCommentFailed(); + } + static void fetchComment(Retrofit retrofit, String subredditNamePrefixed, String article, String comment, Locale locale, boolean isPost, int parentDepth, final FetchCommentListener fetchCommentListener) { @@ -126,4 +131,40 @@ class FetchComment { } }); } + + static void fetchAllComment(Retrofit retrofit, String subredditNamePrefixed, String article, + String comment, Locale locale, boolean isPost, int parentDepth, + FetchAllCommentListener fetchAllCommentListener) { + fetchComment(retrofit, subredditNamePrefixed, article, comment, locale, isPost, parentDepth, + new FetchCommentListener() { + @Override + public void onFetchCommentSuccess(List<?> commentData, String parentId, String commaSeparatedChildren) { + if(!commaSeparatedChildren.equals("")) { + fetchMoreComment(retrofit, subredditNamePrefixed, parentId, commaSeparatedChildren, + locale, new FetchMoreCommentListener() { + @Override + public void onFetchMoreCommentSuccess(List<?> moreCommentData) { + ((ArrayList<CommentData>)commentData).addAll((ArrayList<CommentData>) moreCommentData); + fetchAllCommentListener.onFetchAllCommentSuccess(commentData); + } + + @Override + public void onFetchMoreCommentFailed() { + Log.i("fetch more comment", "error"); + fetchAllCommentListener.onFetchAllCommentFailed(); + } + }); + } else { + fetchAllCommentListener.onFetchAllCommentSuccess(commentData); + } + } + + @Override + public void onFetchCommentFailed() { + Log.i("fetch comment", "error"); + fetchAllCommentListener.onFetchAllCommentFailed(); + } + }); + + } } |