From 14ec5c01a8748b3b2895efd2c8c58d4f1724d73c Mon Sep 17 00:00:00 2001 From: golfinq Date: Wed, 13 Oct 2021 19:26:08 -0400 Subject: [PATCH 01/35] Added "Show Replies" --- .../holder/CommentsInfoItemHolder.java | 36 ++++++++++++++++++- .../main/res/layout/list_comments_item.xml | 34 ++++++++++++++++-- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 4fc2d9f84b8..034786f8085 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -5,12 +5,19 @@ import android.widget.ImageView; import android.widget.TextView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.local.history.HistoryRecordManager; +import java.util.List; +import java.util.Objects; + /* * Created by Christian Schabesberger on 12.02.17. * @@ -36,12 +43,34 @@ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { private final ImageView itemHeartView; private final ImageView itemPinnedView; + private final TextView showReplies; + private final RecyclerView repliesView; + public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewGroup parent) { super(infoItemBuilder, R.layout.list_comments_item, parent); itemTitleView = itemView.findViewById(R.id.itemTitleView); itemHeartView = itemView.findViewById(R.id.detail_heart_image_view); itemPinnedView = itemView.findViewById(R.id.detail_pinned_view); + showReplies = itemView.findViewById(R.id.showReplies); + repliesView = itemView.findViewById(R.id.replyRecycleView); + repliesView.setAdapter(new InfoListAdapter(repliesView.getContext())); + repliesView.setLayoutManager(new LinearLayoutManager(repliesView.getContext())); + } + + public void addReplies(final View buttonView, final CommentsInfoItem comment) { + + final List replies = comment.getRepliesInfoList(); + ((InfoListAdapter) Objects.requireNonNull(repliesView.getAdapter())) + .setInfoItemList(replies); + + final ViewGroup.MarginLayoutParams params = + (ViewGroup.MarginLayoutParams) repliesView.getLayoutParams(); + params.topMargin = 45; + + repliesView.setMinimumHeight(100); + repliesView.setHasFixedSize(true); + buttonView.setVisibility(View.GONE); } @Override @@ -57,7 +86,12 @@ public void updateFromItem(final InfoItem infoItem, itemTitleView.setText(item.getUploaderName()); itemHeartView.setVisibility(item.isHeartedByUploader() ? View.VISIBLE : View.GONE); - itemPinnedView.setVisibility(item.isPinned() ? View.VISIBLE : View.GONE); + if (item.getReplies() == null) { + showReplies.setVisibility(View.GONE); + } else { + showReplies.setVisibility(View.VISIBLE); + showReplies.setOnClickListener(v -> addReplies(v, item)); + } } } diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml index 3b148de03bd..84958f9fd25 100644 --- a/app/src/main/res/layout/list_comments_item.xml +++ b/app/src/main/res/layout/list_comments_item.xml @@ -93,8 +93,8 @@ android:layout_toRightOf="@+id/detail_thumbs_up_count_view" android:contentDescription="@string/detail_heart_img_view_description" android:visibility="gone" - tools:visibility="visible" - app:srcCompat="@drawable/ic_heart" /> + app:srcCompat="@drawable/ic_heart" + tools:visibility="visible" /> @@ -136,4 +136,34 @@ android:textSize="@dimen/video_item_search_upload_date_text_size" tools:text="1 year ago" /> + + + + + + From fe5c8e29e73f9dd8b8156f56286b218c3d92501f Mon Sep 17 00:00:00 2001 From: golfinq Date: Thu, 14 Oct 2021 07:44:50 -0400 Subject: [PATCH 02/35] Changed "Show Replies" to Resource --- app/src/main/res/layout/list_comments_item.xml | 6 +++--- app/src/main/res/values-en-rGB/strings.xml | 1 + app/src/main/res/values/strings.xml | 6 +++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml index 84958f9fd25..ec36aa0dce2 100644 --- a/app/src/main/res/layout/list_comments_item.xml +++ b/app/src/main/res/layout/list_comments_item.xml @@ -93,8 +93,8 @@ android:layout_toRightOf="@+id/detail_thumbs_up_count_view" android:contentDescription="@string/detail_heart_img_view_description" android:visibility="gone" - app:srcCompat="@drawable/ic_heart" - tools:visibility="visible" /> + tools:visibility="visible" + app:srcCompat="@drawable/ic_heart" /> @@ -148,7 +148,7 @@ android:layout_marginEnd="0sp" android:layout_marginBottom="0sp" android:layout_toEndOf="@+id/itemPublishedTime" - android:text="Show Replies" + android:text="@string/show_replies" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textSize="@dimen/video_item_search_upload_date_text_size" /> diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index b1c3d0187fe..521ad34e0b3 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -80,4 +80,5 @@ Published on %1$s Report this error via e-mail Select your favorite night theme – %s + Show Replies \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 80f79cfdd97..4e18c510cfb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -740,4 +740,8 @@ You now subscribed to this channel , Toggle all - \ No newline at end of file + + Error at Show Channel Details + Loading Channel Details… + Show Replies + From 82e37726b3313e2f63eb2d1d34276c41658b98ec Mon Sep 17 00:00:00 2001 From: golfinq Date: Thu, 14 Oct 2021 22:51:52 -0400 Subject: [PATCH 03/35] Remove redundant string resource Co-authored-by: Mohammed Anas --- app/src/main/res/values-en-rGB/strings.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 521ad34e0b3..b1c3d0187fe 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -80,5 +80,4 @@ Published on %1$s Report this error via e-mail Select your favorite night theme – %s - Show Replies \ No newline at end of file From 07bf1ecaca30a518e055efff4e32c279ec2d863b Mon Sep 17 00:00:00 2001 From: golfinq Date: Fri, 15 Oct 2021 00:29:22 -0400 Subject: [PATCH 04/35] Fixed behavior when scrolling --- .../newpipe/info_list/holder/CommentsInfoItemHolder.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 034786f8085..6fd0c783dbf 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -70,7 +70,9 @@ public void addReplies(final View buttonView, final CommentsInfoItem comment) { repliesView.setMinimumHeight(100); repliesView.setHasFixedSize(true); + comment.setRepliesOpen(true); buttonView.setVisibility(View.GONE); + repliesView.setVisibility(View.VISIBLE); } @Override @@ -88,8 +90,12 @@ public void updateFromItem(final InfoItem infoItem, itemHeartView.setVisibility(item.isHeartedByUploader() ? View.VISIBLE : View.GONE); itemPinnedView.setVisibility(item.isPinned() ? View.VISIBLE : View.GONE); if (item.getReplies() == null) { + repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); + } else if (item.getRepliesOpen()) { + addReplies(showReplies, item); } else { + repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.VISIBLE); showReplies.setOnClickListener(v -> addReplies(v, item)); } From fc7695ec1029aab68e6744fa1c0a938539b92f87 Mon Sep 17 00:00:00 2001 From: golfinq Date: Wed, 20 Oct 2021 05:41:58 -0400 Subject: [PATCH 05/35] Moved downloading and reply code to new class --- .../holder/CommentsInfoItemHolder.java | 44 +------ .../info_list/holder/RepliesHandler.java | 122 ++++++++++++++++++ 2 files changed, 127 insertions(+), 39 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 6fd0c783dbf..180bb65e422 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -5,19 +5,14 @@ import android.widget.ImageView; import android.widget.TextView; -import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; -import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.local.history.HistoryRecordManager; -import java.util.List; -import java.util.Objects; - /* * Created by Christian Schabesberger on 12.02.17. * @@ -42,7 +37,6 @@ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { public final TextView itemTitleView; private final ImageView itemHeartView; private final ImageView itemPinnedView; - private final TextView showReplies; private final RecyclerView repliesView; @@ -52,29 +46,12 @@ public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewG itemTitleView = itemView.findViewById(R.id.itemTitleView); itemHeartView = itemView.findViewById(R.id.detail_heart_image_view); itemPinnedView = itemView.findViewById(R.id.detail_pinned_view); - showReplies = itemView.findViewById(R.id.showReplies); - repliesView = itemView.findViewById(R.id.replyRecycleView); - repliesView.setAdapter(new InfoListAdapter(repliesView.getContext())); - repliesView.setLayoutManager(new LinearLayoutManager(repliesView.getContext())); - } - - public void addReplies(final View buttonView, final CommentsInfoItem comment) { - - final List replies = comment.getRepliesInfoList(); - ((InfoListAdapter) Objects.requireNonNull(repliesView.getAdapter())) - .setInfoItemList(replies); - - final ViewGroup.MarginLayoutParams params = - (ViewGroup.MarginLayoutParams) repliesView.getLayoutParams(); - params.topMargin = 45; - - repliesView.setMinimumHeight(100); - repliesView.setHasFixedSize(true); - comment.setRepliesOpen(true); - buttonView.setVisibility(View.GONE); - repliesView.setVisibility(View.VISIBLE); + final TextView showReplies = itemView.findViewById(R.id.showReplies); + final RecyclerView repliesView = itemView.findViewById(R.id.replyRecycleView); + repliesHandler = new RepliesHandler(showReplies, repliesView); } + @Override public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { @@ -84,20 +61,9 @@ public void updateFromItem(final InfoItem infoItem, return; } final CommentsInfoItem item = (CommentsInfoItem) infoItem; - itemTitleView.setText(item.getUploaderName()); - itemHeartView.setVisibility(item.isHeartedByUploader() ? View.VISIBLE : View.GONE); itemPinnedView.setVisibility(item.isPinned() ? View.VISIBLE : View.GONE); - if (item.getReplies() == null) { - repliesView.setVisibility(View.GONE); - showReplies.setVisibility(View.GONE); - } else if (item.getRepliesOpen()) { - addReplies(showReplies, item); - } else { - repliesView.setVisibility(View.GONE); - showReplies.setVisibility(View.VISIBLE); - showReplies.setOnClickListener(v -> addReplies(v, item)); - } + repliesHandler.checkForReplies(item); } } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java new file mode 100644 index 00000000000..494d4da0534 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -0,0 +1,122 @@ +package org.schabi.newpipe.info_list.holder; + +import android.annotation.SuppressLint; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import org.schabi.newpipe.extractor.ListExtractor; +import org.schabi.newpipe.extractor.comments.CommentsInfo; +import org.schabi.newpipe.extractor.comments.CommentsInfoItem; +import org.schabi.newpipe.info_list.InfoListAdapter; +import org.schabi.newpipe.util.ExtractorHelper; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.Callable; + +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; + +public class RepliesHandler { + private final List cachedReplies; + private final TextView showReplies; + private final RecyclerView repliesView; + + public RepliesHandler(final TextView showReplies, final RecyclerView recyclerView) { + this.repliesView = recyclerView; + repliesView.setAdapter(new InfoListAdapter(repliesView.getContext())); + repliesView.setLayoutManager(new LinearLayoutManager(repliesView.getContext())); + + this.showReplies = showReplies; + this.cachedReplies = new ArrayList<>(); + } + + static class GetMoreItemsCallable implements + Callable> { + private CommentsInfo parentCommentInfo; + private CommentsInfoItem parentInfoItem; + + public void setCallableParameters( + final CommentsInfo commentInfo, final CommentsInfoItem infoItem) { + parentCommentInfo = commentInfo; + parentInfoItem = infoItem; + } + + @Override + public ListExtractor.InfoItemsPage call() throws Exception { + return CommentsInfo.getMoreItems(parentCommentInfo, parentInfoItem.getReplies()); + } + } + + + public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { + ((InfoListAdapter) Objects.requireNonNull(repliesView.getAdapter())) + .setInfoItemList(cachedReplies); + + final ViewGroup.MarginLayoutParams params = + (ViewGroup.MarginLayoutParams) repliesView.getLayoutParams(); + params.topMargin = 45; + + repliesView.setMinimumHeight(100); + repliesView.setHasFixedSize(true); + parentInfoItem.setRepliesOpen(true); + showReplies.setVisibility(View.GONE); + repliesView.setVisibility(View.VISIBLE); + } + + @SuppressLint("SetTextI18n") // Testing purposes + public void downloadReplies(final CommentsInfoItem parentInfoItem) { + showReplies.setText("Loading..."); + + final Single parentInfoSingle = ExtractorHelper.getCommentsInfo( + parentInfoItem.getServiceId(), + parentInfoItem.getUrl(), + false + ); + + final CommentsInfo infoListInfo = parentInfoSingle.blockingGet(); + + final GetMoreItemsCallable getMoreItems = new GetMoreItemsCallable(); + getMoreItems.setCallableParameters(infoListInfo, parentInfoItem); + final Single> + getItemsSingle = Single.fromCallable(getMoreItems); + + final ListExtractor.InfoItemsPage infoItemsPageList = getItemsSingle + .subscribeOn(Schedulers.newThread()) + .blockingGet(); // It works, just isn't great + + final List actualList = infoItemsPageList.getItems(); + cachedReplies.addAll(actualList); + addRepliesToUI(parentInfoItem); + } + + public void addReplies(final CommentsInfoItem parentInfoItem) { + if (parentInfoItem.getReplies() == null) { + return; + } + + if (cachedReplies.isEmpty()) { + downloadReplies(parentInfoItem); + } else { + addRepliesToUI(parentInfoItem); + } + } + + public void checkForReplies(final CommentsInfoItem item) { + if (item.getReplies() == null) { + repliesView.setVisibility(View.GONE); + showReplies.setVisibility(View.GONE); + } else if (item.getRepliesOpen()) { + addReplies(item); + } else { + repliesView.setVisibility(View.GONE); + showReplies.setVisibility(View.VISIBLE); + showReplies.setOnClickListener(v -> addReplies(item)); + } + } +} From c3aa73b733d6948b535c49623a58e386d2663cc9 Mon Sep 17 00:00:00 2001 From: golfinq Date: Thu, 21 Oct 2021 22:07:37 -0400 Subject: [PATCH 06/35] Non-Blocking Downloading and Showing --- .../info_list/holder/RepliesHandler.java | 100 +++++++++++++++--- 1 file changed, 85 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 494d4da0534..18affbb45ae 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -19,7 +19,11 @@ import java.util.Objects; import java.util.concurrent.Callable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.core.SingleObserver; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.schedulers.Schedulers; public class RepliesHandler { @@ -53,6 +57,81 @@ public ListExtractor.InfoItemsPage call() throws Exception { } } + private Single> + repliesSingle(final CommentsInfo parentCommentInfo, + final CommentsInfoItem parentInfoItem) { + + final GetMoreItemsCallable getMoreItems = new GetMoreItemsCallable(); + getMoreItems.setCallableParameters(parentCommentInfo, parentInfoItem); + return Single.fromCallable(getMoreItems); + + } + + private SingleObserver> + repliesObserver(final CommentsInfoItem parentInfoItem) { + + return new SingleObserver>() { + + @SuppressLint("SetTextI18n") + @Override + public void onSubscribe(@NonNull final Disposable d) { + showReplies.setText("Setting up replies"); + } + + @Override + public void onSuccess(@NonNull final + ListExtractor.InfoItemsPage + commentsInfoItemInfoItemsPage) { + + final List actualList + = commentsInfoItemInfoItemsPage.getItems(); + + cachedReplies.addAll(actualList); + addRepliesToUI(parentInfoItem); + } + + @SuppressLint("SetTextI18n") + @Override + public void onError(@NonNull final Throwable e) { + showReplies.setText("Error getting replies"); + } + }; + } + + private SingleObserver + repliesInfoObserver(final CommentsInfoItem parentInfoItem) { + + return new SingleObserver() { + + @SuppressLint("SetTextI18n") + @Override + public void onSubscribe(@NonNull final Disposable d) { + showReplies.setText("Downloading Replies"); + } + + @Override + public void onSuccess(@NonNull final CommentsInfo commentsInfo) { + final Single> + getRepliesInfoSingle = + repliesSingle(commentsInfo, parentInfoItem); + + final SingleObserver> + getRepliesInfoObserver = repliesObserver(parentInfoItem); + + getRepliesInfoSingle + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getRepliesInfoObserver); + } + + @SuppressLint("SetTextI18n") + @Override + public void onError(@NonNull final Throwable e) { + showReplies.setText("Error getting replies"); + } + }; + } + public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { ((InfoListAdapter) Objects.requireNonNull(repliesView.getAdapter())) @@ -69,9 +148,7 @@ public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { repliesView.setVisibility(View.VISIBLE); } - @SuppressLint("SetTextI18n") // Testing purposes public void downloadReplies(final CommentsInfoItem parentInfoItem) { - showReplies.setText("Loading..."); final Single parentInfoSingle = ExtractorHelper.getCommentsInfo( parentInfoItem.getServiceId(), @@ -79,20 +156,13 @@ public void downloadReplies(final CommentsInfoItem parentInfoItem) { false ); - final CommentsInfo infoListInfo = parentInfoSingle.blockingGet(); - - final GetMoreItemsCallable getMoreItems = new GetMoreItemsCallable(); - getMoreItems.setCallableParameters(infoListInfo, parentInfoItem); - final Single> - getItemsSingle = Single.fromCallable(getMoreItems); - - final ListExtractor.InfoItemsPage infoItemsPageList = getItemsSingle - .subscribeOn(Schedulers.newThread()) - .blockingGet(); // It works, just isn't great + final SingleObserver singleInfoRepliesInfoObserver + = repliesInfoObserver(parentInfoItem); - final List actualList = infoItemsPageList.getItems(); - cachedReplies.addAll(actualList); - addRepliesToUI(parentInfoItem); + parentInfoSingle + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(singleInfoRepliesInfoObserver); } public void addReplies(final CommentsInfoItem parentInfoItem) { From 394655c303e0ed8dafb1a4753c1eb43e0fa9323d Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 13:14:17 -0400 Subject: [PATCH 07/35] Fix some style issues --- .../newpipe/info_list/holder/CommentsInfoItemHolder.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 180bb65e422..938e330ec7b 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -37,8 +37,7 @@ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { public final TextView itemTitleView; private final ImageView itemHeartView; private final ImageView itemPinnedView; - private final TextView showReplies; - private final RecyclerView repliesView; + private final RepliesHandler repliesHandler; public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewGroup parent) { super(infoItemBuilder, R.layout.list_comments_item, parent); @@ -47,11 +46,10 @@ public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewG itemHeartView = itemView.findViewById(R.id.detail_heart_image_view); itemPinnedView = itemView.findViewById(R.id.detail_pinned_view); final TextView showReplies = itemView.findViewById(R.id.showReplies); - final RecyclerView repliesView = itemView.findViewById(R.id.replyRecycleView); - repliesHandler = new RepliesHandler(showReplies, repliesView); + final RecyclerView repliesView = itemView.findViewById(R.id.replyRecycleView); + repliesHandler = new RepliesHandler(showReplies, repliesView); } - @Override public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { From c183969563cc9776a993fbd199a4b3e1eb9baab5 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 13:31:47 -0400 Subject: [PATCH 08/35] Add setInfoItemList to RepliesHandler.java --- .../java/org/schabi/newpipe/info_list/InfoListAdapter.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index fb27593e7e0..7b01b11bfe9 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -148,7 +148,12 @@ public void addInfoItemList(@Nullable final List data) { } } } - + + public void setInfoItemList(final List data) { + infoItemList.clear(); + infoItemList.addAll(data); + notifyDataSetChanged(); + } public void clearStreamItemList() { if (infoItemList.isEmpty()) { return; From b9468ec82c2f1df1d59d94e3903a2e4e0163bc35 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 13:49:34 -0400 Subject: [PATCH 09/35] Replace {set,get}RepliesOpen with just assignment statements --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 18affbb45ae..ff09e1563f0 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -143,7 +143,7 @@ public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { repliesView.setMinimumHeight(100); repliesView.setHasFixedSize(true); - parentInfoItem.setRepliesOpen(true); + parentInfoItem.repliesOpen=true; showReplies.setVisibility(View.GONE); repliesView.setVisibility(View.VISIBLE); } @@ -181,7 +181,7 @@ public void checkForReplies(final CommentsInfoItem item) { if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); - } else if (item.getRepliesOpen()) { + } else if (item.repliesOpen) { addReplies(item); } else { repliesView.setVisibility(View.GONE); From 9933fef3440b5db02dfc8a5fba9f7258356cc5b7 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 14:01:01 -0400 Subject: [PATCH 10/35] Fix style errors --- .../main/java/org/schabi/newpipe/info_list/InfoListAdapter.java | 2 +- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index 7b01b11bfe9..1306d7234d5 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -148,7 +148,7 @@ public void addInfoItemList(@Nullable final List data) { } } } - + public void setInfoItemList(final List data) { infoItemList.clear(); infoItemList.addAll(data); diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index ff09e1563f0..e7164f73ffe 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -143,7 +143,7 @@ public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { repliesView.setMinimumHeight(100); repliesView.setHasFixedSize(true); - parentInfoItem.repliesOpen=true; + parentInfoItem.repliesOpen = true; showReplies.setVisibility(View.GONE); repliesView.setVisibility(View.VISIBLE); } From 8693af1bba7df3026a91acf274a453ec1d81dfc5 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 14:14:28 -0400 Subject: [PATCH 11/35] Replaced {set,get}RepliesOpen with directly getting the replies --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index e7164f73ffe..a8a9de10245 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -143,7 +143,6 @@ public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { repliesView.setMinimumHeight(100); repliesView.setHasFixedSize(true); - parentInfoItem.repliesOpen = true; showReplies.setVisibility(View.GONE); repliesView.setVisibility(View.VISIBLE); } @@ -178,10 +177,12 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { } public void checkForReplies(final CommentsInfoItem item) { + CommentsInfo info = CommentsInfo.getInfo(item); + CommentsInfo replies = info.getReplies() != null ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); - } else if (item.repliesOpen) { + } else if (replies) { addReplies(item); } else { repliesView.setVisibility(View.GONE); From 3cc4444fdfec88fe8c41128e3b01711d972649ed Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 14:18:02 -0400 Subject: [PATCH 12/35] Fix style errors --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index a8a9de10245..10e1ed89766 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -177,8 +177,8 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { } public void checkForReplies(final CommentsInfoItem item) { - CommentsInfo info = CommentsInfo.getInfo(item); - CommentsInfo replies = info.getReplies() != null ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; + final CommentsInfo info = CommentsInfo.getInfo(item); + final CommentsInfo replies = info.getReplies() != null ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); From 951530cdf6d0dbe832cd2a90b525782677ff3fea Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 14:22:22 -0400 Subject: [PATCH 13/35] Fix line being too long --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 10e1ed89766..dc6853f0fde 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -178,7 +178,8 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { public void checkForReplies(final CommentsInfoItem item) { final CommentsInfo info = CommentsInfo.getInfo(item); - final CommentsInfo replies = info.getReplies() != null ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; + final CommentsInfo replies = info.getReplies() != null ? + CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); From 6a037cef454f8e7bd4a52a19280acd1b4d5d6afb Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 14:23:08 -0400 Subject: [PATCH 14/35] Fix line being too long --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index dc6853f0fde..0526b9b7bef 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -179,7 +179,7 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { public void checkForReplies(final CommentsInfoItem item) { final CommentsInfo info = CommentsInfo.getInfo(item); final CommentsInfo replies = info.getReplies() != null ? - CommentsInfo.getMoreItems(info, info.getReplies()) : null; + CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); From b058ab1d2e0a5e2a00a2e13ab73eca82a6415583 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 15:11:38 -0400 Subject: [PATCH 15/35] Fix line splitting issue --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 0526b9b7bef..3824b6c3a13 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -178,8 +178,8 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { public void checkForReplies(final CommentsInfoItem item) { final CommentsInfo info = CommentsInfo.getInfo(item); - final CommentsInfo replies = info.getReplies() != null ? - CommentsInfo.getMoreItems(info, info.getReplies()) : null; + final CommentsInfo replies = info.getReplies() != null + ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); From fb1c856a5216a1b22c8041bc674fa82af312d827 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 15:23:27 -0400 Subject: [PATCH 16/35] Removed info and trying something out --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 3824b6c3a13..283d864e359 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -177,15 +177,11 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { } public void checkForReplies(final CommentsInfoItem item) { - final CommentsInfo info = CommentsInfo.getInfo(item); - final CommentsInfo replies = info.getReplies() != null - ? CommentsInfo.getMoreItems(info, info.getReplies()) : null; if (item.getReplies() == null) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); - } else if (replies) { - addReplies(item); } else { + addReplies(item); repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.VISIBLE); showReplies.setOnClickListener(v -> addReplies(item)); From c6ff73d4607bcec128111222c40b3d3fc6e28a8d Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 15:52:30 -0400 Subject: [PATCH 17/35] Replace TextView with NewPipeTextView, change showReplies text, and no longer remove showReplies when expanded --- .../newpipe/info_list/holder/CommentsInfoItemHolder.java | 5 ++--- .../schabi/newpipe/info_list/holder/RepliesHandler.java | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 938e330ec7b..dea2c21ec91 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -34,18 +34,17 @@ */ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { - public final TextView itemTitleView; + public final NewPipeTextView itemTitleView; private final ImageView itemHeartView; private final ImageView itemPinnedView; private final RepliesHandler repliesHandler; - public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewGroup parent) { super(infoItemBuilder, R.layout.list_comments_item, parent); itemTitleView = itemView.findViewById(R.id.itemTitleView); itemHeartView = itemView.findViewById(R.id.detail_heart_image_view); itemPinnedView = itemView.findViewById(R.id.detail_pinned_view); - final TextView showReplies = itemView.findViewById(R.id.showReplies); + final NewPipeTextView showReplies = itemView.findViewById(R.id.showReplies); final RecyclerView repliesView = itemView.findViewById(R.id.replyRecycleView); repliesHandler = new RepliesHandler(showReplies, repliesView); } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 283d864e359..06794667447 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -28,10 +28,10 @@ public class RepliesHandler { private final List cachedReplies; - private final TextView showReplies; + private final NewPipeTextView showReplies; private final RecyclerView repliesView; - public RepliesHandler(final TextView showReplies, final RecyclerView recyclerView) { + public RepliesHandler(final NewPipeTextView showReplies, final RecyclerView recyclerView) { this.repliesView = recyclerView; repliesView.setAdapter(new InfoListAdapter(repliesView.getContext())); repliesView.setLayoutManager(new LinearLayoutManager(repliesView.getContext())); @@ -75,7 +75,7 @@ public ListExtractor.InfoItemsPage call() throws Exception { @SuppressLint("SetTextI18n") @Override public void onSubscribe(@NonNull final Disposable d) { - showReplies.setText("Setting up replies"); + showReplies.setText("Expand"); } @Override @@ -143,7 +143,6 @@ public void addRepliesToUI(final CommentsInfoItem parentInfoItem) { repliesView.setMinimumHeight(100); repliesView.setHasFixedSize(true); - showReplies.setVisibility(View.GONE); repliesView.setVisibility(View.VISIBLE); } From 89b4c579924f91e286dfeb8fd939a90b71f59a54 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 15:59:46 -0400 Subject: [PATCH 18/35] Don't download comments by default --- .../java/org/schabi/newpipe/info_list/holder/RepliesHandler.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 06794667447..10100bacf3a 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -180,7 +180,6 @@ public void checkForReplies(final CommentsInfoItem item) { repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.GONE); } else { - addReplies(item); repliesView.setVisibility(View.GONE); showReplies.setVisibility(View.VISIBLE); showReplies.setOnClickListener(v -> addReplies(item)); From a2d4b5c6781d8230ac4f1be37374ab1aa9a598dd Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:00:58 -0400 Subject: [PATCH 19/35] Remove unused import android.widget.TextView --- .../schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java | 1 - .../java/org/schabi/newpipe/info_list/holder/RepliesHandler.java | 1 - 2 files changed, 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index dea2c21ec91..48e26843af0 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -3,7 +3,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 10100bacf3a..732b3d146d4 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -3,7 +3,6 @@ import android.annotation.SuppressLint; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; From ddf2010c379a8eaa2f35b827a8cd5d3e3e1e29eb Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:09:56 -0400 Subject: [PATCH 20/35] Use org.schabi.newpipe.views.NewPipeTextView --- .../schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java | 2 +- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 48e26843af0..373ed75e3f2 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -3,7 +3,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; - +import org.schabi.newpipe.views.NewPipeTextView; import androidx.recyclerview.widget.RecyclerView; import org.schabi.newpipe.R; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 732b3d146d4..48f8055e7e6 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -3,7 +3,7 @@ import android.annotation.SuppressLint; import android.view.View; import android.view.ViewGroup; - +import org.schabi.newpipe.views.NewPipeTextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; From 22e72b9e64153b37e887a517fb3164287cfd1cdf Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:17:51 -0400 Subject: [PATCH 21/35] Use org.schabi.newpipe.views.NewPipeTextView instead of TextView in list_comments_item.xml --- .../newpipe/info_list/holder/CommentsInfoItemHolder.java | 6 +++--- .../schabi/newpipe/info_list/holder/RepliesHandler.java | 7 ++++--- app/src/main/res/layout/list_comments_item.xml | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 373ed75e3f2..9bb84a6e231 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -3,7 +3,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import org.schabi.newpipe.views.NewPipeTextView; +import org.schabi.newpipe.views.TextView; import androidx.recyclerview.widget.RecyclerView; import org.schabi.newpipe.R; @@ -33,7 +33,7 @@ */ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { - public final NewPipeTextView itemTitleView; + public final TextView itemTitleView; private final ImageView itemHeartView; private final ImageView itemPinnedView; private final RepliesHandler repliesHandler; @@ -43,7 +43,7 @@ public CommentsInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewG itemTitleView = itemView.findViewById(R.id.itemTitleView); itemHeartView = itemView.findViewById(R.id.detail_heart_image_view); itemPinnedView = itemView.findViewById(R.id.detail_pinned_view); - final NewPipeTextView showReplies = itemView.findViewById(R.id.showReplies); + final TextView showReplies = itemView.findViewById(R.id.showReplies); final RecyclerView repliesView = itemView.findViewById(R.id.replyRecycleView); repliesHandler = new RepliesHandler(showReplies, repliesView); } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 48f8055e7e6..098f7509984 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -3,7 +3,8 @@ import android.annotation.SuppressLint; import android.view.View; import android.view.ViewGroup; -import org.schabi.newpipe.views.NewPipeTextView; +import android.widget.TextView; + import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -27,10 +28,10 @@ public class RepliesHandler { private final List cachedReplies; - private final NewPipeTextView showReplies; + private final TextView showReplies; private final RecyclerView repliesView; - public RepliesHandler(final NewPipeTextView showReplies, final RecyclerView recyclerView) { + public RepliesHandler(final TextView showReplies, final RecyclerView recyclerView) { this.repliesView = recyclerView; repliesView.setAdapter(new InfoListAdapter(repliesView.getContext())); repliesView.setLayoutManager(new LinearLayoutManager(repliesView.getContext())); diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml index ec36aa0dce2..c398029bc02 100644 --- a/app/src/main/res/layout/list_comments_item.xml +++ b/app/src/main/res/layout/list_comments_item.xml @@ -136,7 +136,7 @@ android:textSize="@dimen/video_item_search_upload_date_text_size" tools:text="1 year ago" /> - Date: Fri, 27 May 2022 16:25:57 -0400 Subject: [PATCH 22/35] Fix TextView import in CommentsInfoItemHolder.java --- .../schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 9bb84a6e231..4579dc8241f 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -3,7 +3,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import org.schabi.newpipe.views.TextView; +import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import org.schabi.newpipe.R; From 6efec1f08c6521b6f911ac963d2891cd49b88436 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:27:30 -0400 Subject: [PATCH 23/35] Remove channel_details strings from strings.xml --- app/src/main/res/values/strings.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4e18c510cfb..0951a65cabc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -740,8 +740,4 @@ You now subscribed to this channel , Toggle all - - Error at Show Channel Details - Loading Channel Details… - Show Replies From 664978467ce0fcf3e07f0e59a56299d1a5062b0d Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:36:11 -0400 Subject: [PATCH 24/35] Remove testing from CI for faster iteration (remember to revert later --- .github/workflows/ci.yml | 60 +--------------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 306b8c2c8f0..1e595e5aa61 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,62 +56,4 @@ jobs: name: app path: app/build/outputs/apk/debug/*.apk - test-android: - # macos has hardware acceleration. See android-emulator-runner action - runs-on: macos-latest - timeout-minutes: 20 - strategy: - matrix: - # api-level 19 is min sdk, but throws errors related to desugaring - api-level: [ 21, 29 ] - steps: - - uses: actions/checkout@v3 - - - name: set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: "temurin" - cache: 'gradle' - - - name: Run android tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: ${{ matrix.api-level }} - # workaround to emulator bug: https://github.com/ReactiveCircus/android-emulator-runner/issues/160 - emulator-build: 7425822 - script: ./gradlew connectedCheck --stacktrace - - - name: Upload test report when tests fail # because the printed out stacktrace (console) is too short, see also #7553 - uses: actions/upload-artifact@v3 - if: failure() - with: - name: android-test-report-api${{ matrix.api-level }} - path: app/build/reports/androidTests/connected/** - - sonar: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 # Sonar requires JDK 11 - distribution: "temurin" - cache: 'gradle' - - - name: Cache SonarCloud packages - uses: actions/cache@v3 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - - name: Build and analyze - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: ./gradlew build sonarqube --info + From 6800dd77e8713763aa997b08ab441417d3af790b Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:46:41 -0400 Subject: [PATCH 25/35] Change showReplies default text --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 098f7509984..2b683f8a3f3 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -75,7 +75,7 @@ public ListExtractor.InfoItemsPage call() throws Exception { @SuppressLint("SetTextI18n") @Override public void onSubscribe(@NonNull final Disposable d) { - showReplies.setText("Expand"); + showReplies.setText("Replies"); } @Override From 005573be91295ced1d326ce0c39094bb79a10b06 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 16:52:51 -0400 Subject: [PATCH 26/35] Add back show_replies in strings.xml --- app/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0951a65cabc..ee61bba3301 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -740,4 +740,5 @@ You now subscribed to this channel , Toggle all + Show Replies From 3eedd5b2562d81337fd3aab1baac28b8bebdd6c2 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 17:03:01 -0400 Subject: [PATCH 27/35] Trying something --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 2b683f8a3f3..c4ca893ca77 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -170,8 +170,9 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { if (cachedReplies.isEmpty()) { downloadReplies(parentInfoItem); + addRepliesToUI(parentInfoItem); } else { - addRepliesToUI(parentInfoItem); + cachedReplies={}; } } From 36934026b865b4bed32f051564f7b3a5a55a2c6d Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 17:23:12 -0400 Subject: [PATCH 28/35] Try something else --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index c4ca893ca77..2078e86ce05 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -172,7 +172,7 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { downloadReplies(parentInfoItem); addRepliesToUI(parentInfoItem); } else { - cachedReplies={}; + cachedReplies.clear(); } } From a59bc0c6573b59445518918489593803964c4f68 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 18:55:53 -0400 Subject: [PATCH 29/35] Try something else --- .../java/org/schabi/newpipe/info_list/holder/RepliesHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 2078e86ce05..d84a3199bb4 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -173,6 +173,7 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { addRepliesToUI(parentInfoItem); } else { cachedReplies.clear(); + repliesView.setVisibility(View.GONE); } } From 645e14082772c079ef744794f7e419b91350c5c7 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Fri, 27 May 2022 20:50:16 -0400 Subject: [PATCH 30/35] Fix Replies toggle --- .../newpipe/info_list/holder/RepliesHandler.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index d84a3199bb4..b2e1b190c55 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -75,7 +75,7 @@ public ListExtractor.InfoItemsPage call() throws Exception { @SuppressLint("SetTextI18n") @Override public void onSubscribe(@NonNull final Disposable d) { - showReplies.setText("Replies"); + showReplies.setText("Collapse"); } @Override @@ -103,12 +103,6 @@ public void onError(@NonNull final Throwable e) { return new SingleObserver() { - @SuppressLint("SetTextI18n") - @Override - public void onSubscribe(@NonNull final Disposable d) { - showReplies.setText("Downloading Replies"); - } - @Override public void onSuccess(@NonNull final CommentsInfo commentsInfo) { final Single> @@ -171,9 +165,11 @@ public void addReplies(final CommentsInfoItem parentInfoItem) { if (cachedReplies.isEmpty()) { downloadReplies(parentInfoItem); addRepliesToUI(parentInfoItem); + showReplies.setText("Collapse"); } else { cachedReplies.clear(); repliesView.setVisibility(View.GONE); + showReplies.setText("Show Replies"); } } From 943a629f05a9a2149ba485e1d8151d39700a33f5 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Tue, 7 Jun 2022 07:57:27 -0400 Subject: [PATCH 31/35] Make onSubscribe a no-op to fix compiling error --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index b2e1b190c55..cf477b643e8 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -102,7 +102,11 @@ public void onError(@NonNull final Throwable e) { repliesInfoObserver(final CommentsInfoItem parentInfoItem) { return new SingleObserver() { - + @Override + + public void onSubscribe(@NonNull final Disposable d) { + + } @Override public void onSuccess(@NonNull final CommentsInfo commentsInfo) { final Single> From d9e02b1d4f27498073aa99f600559d99e5673a39 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Tue, 7 Jun 2022 07:59:18 -0400 Subject: [PATCH 32/35] Add push to comment-replies as a workflow trigger --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e595e5aa61..98cfd69b604 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ on: branches: - dev - master + - comment-replies paths-ignore: - 'README.md' - 'doc/**' From 572cd157ee6706a648c409a473615279265bf8ee Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Tue, 7 Jun 2022 08:02:35 -0400 Subject: [PATCH 33/35] Fix style errors --- .../schabi/newpipe/info_list/holder/RepliesHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index cf477b643e8..22fdf3dcd05 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -102,10 +102,10 @@ public void onError(@NonNull final Throwable e) { repliesInfoObserver(final CommentsInfoItem parentInfoItem) { return new SingleObserver() { - @Override - - public void onSubscribe(@NonNull final Disposable d) { - + @Override + + public void onSubscribe(@NonNull final Disposable d) { + } @Override public void onSuccess(@NonNull final CommentsInfo commentsInfo) { From 028e7ab1d5fc1931fa276f35c8e538d581eed80b Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Tue, 7 Jun 2022 08:04:26 -0400 Subject: [PATCH 34/35] Fix style errors --- .../org/schabi/newpipe/info_list/holder/RepliesHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java index 22fdf3dcd05..e7d8645e05f 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/RepliesHandler.java @@ -104,7 +104,7 @@ public void onError(@NonNull final Throwable e) { return new SingleObserver() { @Override - public void onSubscribe(@NonNull final Disposable d) { + public void onSubscribe(@NonNull final Disposable d) { } @Override From 8f63646db78cad639253be7ea98d28b967bffe82 Mon Sep 17 00:00:00 2001 From: DUOLabs333 Date: Wed, 8 Jun 2022 11:12:00 -0400 Subject: [PATCH 35/35] Last commit that works --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98cfd69b604..e492ed4ccd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,8 +48,8 @@ jobs: distribution: "temurin" cache: 'gradle' - - name: Build debug APK and run jvm tests - run: ./gradlew assembleDebug lintDebug testDebugUnitTest --stacktrace -DskipFormatKtlint + - name: Build debug APK + run: ./gradlew assembleDebug --stacktrace -DskipFormatKtlint - name: Upload APK uses: actions/upload-artifact@v3