From 57eaa1bbe1c837531d5bcfe6de41e130e61b97c3 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Mon, 18 Sep 2023 15:01:17 +0200 Subject: [PATCH] Apply review Co-Authored-By: Audric V <74829229+AudricV@users.noreply.github.com> --- .../detail/BaseDescriptionFragment.java | 4 ++-- .../fragments/detail/DescriptionFragment.java | 9 +++++++- .../fragments/list/BaseListInfoFragment.java | 2 -- .../list/channel/ChannelAboutFragment.java | 9 +++++++- .../list/channel/ChannelFragment.java | 12 +++++----- .../list/channel/ChannelTabFragment.java | 10 +++++++- .../playlist/PlaylistControlViewHolder.java | 2 -- .../local/feed/service/FeedLoadManager.kt | 3 +-- .../playqueue/AbstractInfoPlayQueue.java | 23 +++++++++++-------- .../schabi/newpipe/util/ExtractorHelper.java | 8 +++---- .../schabi/newpipe/util/PlayButtonHelper.java | 10 ++++---- .../main/res/layout/fragment_channel_tab.xml | 2 +- 12 files changed, 58 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/BaseDescriptionFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/BaseDescriptionFragment.java index 3b1ede432..ae334b761 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/BaseDescriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/BaseDescriptionFragment.java @@ -34,7 +34,7 @@ import java.util.List; import io.reactivex.rxjava3.disposables.CompositeDisposable; public abstract class BaseDescriptionFragment extends BaseFragment { - final CompositeDisposable descriptionDisposables = new CompositeDisposable(); + private final CompositeDisposable descriptionDisposables = new CompositeDisposable(); protected FragmentDescriptionBinding binding; @Override @@ -75,7 +75,7 @@ public abstract class BaseDescriptionFragment extends BaseFragment { protected abstract int getServiceId(); /** - * Get the URL of the described video. Used for generating description links. + * Get the URL of the described video or audio, used to generate description links. * @return stream URL */ @Nullable diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/DescriptionFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/DescriptionFragment.java index cb38d8416..92219883b 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/DescriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/DescriptionFragment.java @@ -52,6 +52,9 @@ public class DescriptionFragment extends BaseDescriptionFragment { @Override protected int getServiceId() { + if (streamInfo == null) { + return -1; + } return streamInfo.getServiceId(); } @@ -76,13 +79,17 @@ public class DescriptionFragment extends BaseDescriptionFragment { @Override protected void setupMetadata(final LayoutInflater inflater, final LinearLayout layout) { - if (streamInfo.getUploadDate() != null) { + if (streamInfo != null && streamInfo.getUploadDate() != null) { binding.detailUploadDateView.setText(Localization .localizeUploadDate(activity, streamInfo.getUploadDate().offsetDateTime())); } else { binding.detailUploadDateView.setVisibility(View.GONE); } + if (streamInfo == null) { + return; + } + addMetadataItem(inflater, layout, false, R.string.metadata_category, streamInfo.getCategory()); diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java index d30dadfd1..e7e9f5aad 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java @@ -233,8 +233,6 @@ public abstract class BaseListInfoFragment } @Override - public void onAttach(final @NonNull Context context) { + public void onAttach(@NonNull final Context context) { super.onAttach(context); subscriptionManager = new SubscriptionManager(activity); } @@ -138,7 +138,7 @@ public class ChannelFragment extends BaseStateFragment return binding.getRoot(); } - @Override // called from onViewCreated in {@link BaseFragment#onViewCreated} + @Override // called from onViewCreated in BaseFragment.onViewCreated protected void initViews(final View rootView, final Bundle savedInstanceState) { super.initViews(rootView, savedInstanceState); @@ -202,7 +202,7 @@ public class ChannelFragment extends BaseStateFragment } @Override - public void onPrepareOptionsMenu(final @NonNull Menu menu) { + public void onPrepareOptionsMenu(@NonNull final Menu menu) { super.onPrepareOptionsMenu(menu); menuRssButton = menu.findItem(R.id.menu_item_rss); menuNotifyButton = menu.findItem(R.id.menu_item_notify); @@ -210,7 +210,7 @@ public class ChannelFragment extends BaseStateFragment } @Override - public boolean onOptionsItemSelected(final MenuItem item) { + public boolean onOptionsItemSelected(@NonNull final MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_notify: final boolean value = !item.isChecked(); @@ -561,8 +561,8 @@ public class ChannelFragment extends BaseStateFragment .subscribe(result -> { isLoading.set(false); handleResult(result); - }, throwable -> showError(new ErrorInfo(throwable, UserAction.REQUESTED_STREAM, - url == null ? "no url" : url, serviceId))); + }, throwable -> showError(new ErrorInfo(throwable, UserAction.REQUESTED_CHANNEL, + url == null ? "No URL" : url, serviceId))); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java index 27315a991..8712ab4d9 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java @@ -34,12 +34,15 @@ import io.reactivex.rxjava3.core.Single; public class ChannelTabFragment extends BaseListInfoFragment implements PlaylistControlViewHolder { + // states must be protected and not private for IcePick being able to access them @State protected ListLinkHandler tabHandler; @State protected String channelName; private PlaylistControlBinding playlistControlBinding; + + @NonNull public static ChannelTabFragment getInstance(final int serviceId, final ListLinkHandler tabHandler, final String channelName) { @@ -99,11 +102,16 @@ public class ChannelTabFragment extends BaseListInfoFragment { + ): Notification { var error: Throwable? = null val storeOriginalErrorAndRethrow = { e: Throwable -> // keep original to prevent blockingGet() from wrapping it into RuntimeException diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java index a0fc88eae..33ec390a5 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java @@ -29,9 +29,12 @@ abstract class AbstractInfoPlayQueue> protected AbstractInfoPlayQueue(final T info) { this(info.getServiceId(), info.getUrl(), info.getNextPage(), - info.getRelatedItems().stream().filter(StreamInfoItem.class::isInstance) - .map(StreamInfoItem.class::cast).collect( - Collectors.toList()), 0); + info.getRelatedItems() + .stream() + .filter(StreamInfoItem.class::isInstance) + .map(StreamInfoItem.class::cast) + .collect(Collectors.toList()), + 0); } protected AbstractInfoPlayQueue(final int serviceId, @@ -76,10 +79,11 @@ abstract class AbstractInfoPlayQueue> } nextPage = result.getNextPage(); - append(extractListItems(result.getRelatedItems().stream() + append(extractListItems(result.getRelatedItems() + .stream() .filter(StreamInfoItem.class::isInstance) - .map(StreamInfoItem.class::cast).collect( - Collectors.toList()))); + .map(StreamInfoItem.class::cast) + .collect(Collectors.toList()))); fetchReactor.dispose(); fetchReactor = null; @@ -114,10 +118,11 @@ abstract class AbstractInfoPlayQueue> } nextPage = result.getNextPage(); - append(extractListItems(result.getItems().stream() + append(extractListItems(result.getItems() + .stream() .filter(StreamInfoItem.class::isInstance) - .map(StreamInfoItem.class::cast).collect( - Collectors.toList()))); + .map(StreamInfoItem.class::cast) + .collect(Collectors.toList()))); fetchReactor.dispose(); fetchReactor = null; diff --git a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java index 257a428fc..07d0f516d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java @@ -135,10 +135,10 @@ public final class ExtractorHelper { ChannelTabInfo.getInfo(NewPipe.getService(serviceId), listLinkHandler))); } - public static Single> getMoreChannelTabItems(final int serviceId, - final ListLinkHandler - listLinkHandler, - final Page nextPage) { + public static Single> getMoreChannelTabItems( + final int serviceId, + final ListLinkHandler listLinkHandler, + final Page nextPage) { checkServiceId(serviceId); return Single.fromCallable(() -> ChannelTabInfo.getMoreItems(NewPipe.getService(serviceId), diff --git a/app/src/main/java/org/schabi/newpipe/util/PlayButtonHelper.java b/app/src/main/java/org/schabi/newpipe/util/PlayButtonHelper.java index a0707c656..9727c8083 100644 --- a/app/src/main/java/org/schabi/newpipe/util/PlayButtonHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/PlayButtonHelper.java @@ -22,13 +22,13 @@ public final class PlayButtonHelper { } /** - *

Initialize {@link android.view.View.OnClickListener OnClickListener} + * Initialize {@link android.view.View.OnClickListener OnClickListener} * and {@link android.view.View.OnLongClickListener OnLongClickListener} for playlist control - * buttons defined in {@code R.layout.playlist_control}.

+ * buttons defined in {@link R.layout#playlist_control}. * * @param activity The activity to use for the {@link android.widget.Toast Toast}. * @param playlistControlBinding The binding of the - * {@link R.layout.playlist_control playlist control layout}. + * {@link R.layout#playlist_control playlist control layout}. * @param fragment The fragment to get the play queue from. */ public static void initPlaylistControlClickListener( @@ -61,7 +61,7 @@ public final class PlayButtonHelper { } /** - *

Show the "hold to append" toast if the corresponding preference is enabled.

+ * Show the "hold to append" toast if the corresponding preference is enabled. * * @param context The context to show the toast. */ @@ -73,7 +73,7 @@ public final class PlayButtonHelper { } /** - *

Check if the "hold to append" toast should be shown.

+ * Check if the "hold to append" toast should be shown. * *

* The tip is shown if the corresponding preference is enabled. diff --git a/app/src/main/res/layout/fragment_channel_tab.xml b/app/src/main/res/layout/fragment_channel_tab.xml index dd114cb77..62795c7da 100644 --- a/app/src/main/res/layout/fragment_channel_tab.xml +++ b/app/src/main/res/layout/fragment_channel_tab.xml @@ -47,4 +47,4 @@ android:layout_alignParentTop="true" android:background="?attr/toolbar_shadow" /> - \ No newline at end of file +