From e0cbddfe5476faea758d34834d3bb37c0018b863 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Sat, 6 Jan 2024 18:33:48 +0100 Subject: [PATCH] getAudioIndexByHighestRank: simplify & make list NonNull --- .../org/schabi/newpipe/util/ListHelper.java | 19 ++++++++----------- .../newpipe/util/StreamItemAdapter.java | 3 ++- .../schabi/newpipe/util/ListHelperTest.java | 2 -- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java index 365db9b95..15385c0bf 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java @@ -98,7 +98,7 @@ public final class ListHelper { } public static int getDefaultAudioFormat(final Context context, - final List audioStreams) { + @NonNull final List audioStreams) { return getAudioIndexByHighestRank(audioStreams, getAudioTrackComparator(context).thenComparing(getAudioFormatComparator(context))); } @@ -117,7 +117,7 @@ public final class ListHelper { } public static int getAudioFormatIndex(final Context context, - final List audioStreams, + @NonNull final List audioStreams, @Nullable final String trackId) { if (trackId != null) { for (int i = 0; i < audioStreams.size(); i++) { @@ -263,6 +263,7 @@ public final class ListHelper { * @param audioStreams the list of audio streams * @return the sorted, filtered list */ + @NonNull public static List getFilteredAudioStreams( @NonNull final Context context, @Nullable final List audioStreams) { @@ -535,16 +536,12 @@ public final class ListHelper { * @param comparator The comparator used for determining the max/best/highest ranked value * @return Index of audio stream that produces the highest ranked result or -1 if not found */ - static int getAudioIndexByHighestRank(@Nullable final List audioStreams, + static int getAudioIndexByHighestRank(@NonNull final List audioStreams, final Comparator comparator) { - if (audioStreams == null || audioStreams.isEmpty()) { - return -1; - } - - final AudioStream highestRankedAudioStream = audioStreams.stream() - .max(comparator).orElse(null); - - return audioStreams.indexOf(highestRankedAudioStream); + return audioStreams.stream() + .max(comparator) + .map(audioStreams::indexOf) + .orElse(-1); } /** diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamItemAdapter.java b/app/src/main/java/org/schabi/newpipe/util/StreamItemAdapter.java index 2eeb14b1b..260a54db8 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamItemAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamItemAdapter.java @@ -230,7 +230,7 @@ public class StreamItemAdapter extends BaseA new StreamInfoWrapper<>(Collections.emptyList(), null); private static final int SIZE_UNSET = -2; - private final List streamsList; + @NonNull private final List streamsList; private final long[] streamSizes; private final MediaFormat[] streamFormats; private final String unknownSize; @@ -432,6 +432,7 @@ public class StreamItemAdapter extends BaseA return (StreamInfoWrapper) EMPTY; } + @NonNull public List getStreamsList() { return streamsList; } diff --git a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java index c7c36eadc..62151657c 100644 --- a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java @@ -279,7 +279,6 @@ public class ListHelperTest { @Test public void getHighestQualityAudioNull() { final Comparator cmp = ListHelper.getAudioFormatComparator(null, false); - assertEquals(-1, ListHelper.getAudioIndexByHighestRank(null, cmp)); assertEquals(-1, ListHelper.getAudioIndexByHighestRank(new ArrayList<>(), cmp)); } @@ -356,7 +355,6 @@ public class ListHelperTest { @Test public void getLowestQualityAudioNull() { final Comparator cmp = ListHelper.getAudioFormatComparator(null, false); - assertEquals(-1, ListHelper.getAudioIndexByHighestRank(null, cmp)); assertEquals(-1, ListHelper.getAudioIndexByHighestRank(new ArrayList<>(), cmp)); }