aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/CommentMultiLevelRecyclerViewAdapter.java13
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/FetchComment.java41
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();
+ }
+ });
+
+ }
}