mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 15:23:00 +00:00 
			
		
		
		
	Use List.of().
This commit is contained in:
		| @@ -14,7 +14,6 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout; | |||||||
| import org.schabi.newpipe.R; | import org.schabi.newpipe.R; | ||||||
|  |  | ||||||
| import java.lang.reflect.Field; | import java.lang.reflect.Field; | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| // See https://stackoverflow.com/questions/56849221#57997489 | // See https://stackoverflow.com/questions/56849221#57997489 | ||||||
| @@ -27,7 +26,7 @@ public final class FlingBehavior extends AppBarLayout.Behavior { | |||||||
|  |  | ||||||
|     private boolean allowScroll = true; |     private boolean allowScroll = true; | ||||||
|     private final Rect globalRect = new Rect(); |     private final Rect globalRect = new Rect(); | ||||||
|     private final List<Integer> skipInterceptionOfElements = Arrays.asList( |     private final List<Integer> skipInterceptionOfElements = List.of( | ||||||
|             R.id.itemsListPanel, R.id.playbackSeekBar, |             R.id.itemsListPanel, R.id.playbackSeekBar, | ||||||
|             R.id.playPauseButton, R.id.playPreviousButton, R.id.playNextButton); |             R.id.playPauseButton, R.id.playPreviousButton, R.id.playNextButton); | ||||||
|  |  | ||||||
| @@ -67,7 +66,7 @@ public final class FlingBehavior extends AppBarLayout.Behavior { | |||||||
|     public boolean onInterceptTouchEvent(@NonNull final CoordinatorLayout parent, |     public boolean onInterceptTouchEvent(@NonNull final CoordinatorLayout parent, | ||||||
|                                          @NonNull final AppBarLayout child, |                                          @NonNull final AppBarLayout child, | ||||||
|                                          @NonNull final MotionEvent ev) { |                                          @NonNull final MotionEvent ev) { | ||||||
|         for (final Integer element : skipInterceptionOfElements) { |         for (final int element : skipInterceptionOfElements) { | ||||||
|             final View view = child.findViewById(element); |             final View view = child.findViewById(element); | ||||||
|             if (view != null) { |             if (view != null) { | ||||||
|                 final boolean visible = view.getGlobalVisibleRect(globalRect); |                 final boolean visible = view.getGlobalVisibleRect(globalRect); | ||||||
|   | |||||||
| @@ -27,9 +27,8 @@ import org.schabi.newpipe.util.StateSaver; | |||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.io.InterruptedIOException; | import java.io.InterruptedIOException; | ||||||
| import java.net.SocketException; | import java.net.SocketException; | ||||||
| import java.util.ArrayList; |  | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Objects; | ||||||
|  |  | ||||||
| import io.reactivex.rxjava3.exceptions.CompositeException; | import io.reactivex.rxjava3.exceptions.CompositeException; | ||||||
| import io.reactivex.rxjava3.exceptions.MissingBackpressureException; | import io.reactivex.rxjava3.exceptions.MissingBackpressureException; | ||||||
| @@ -140,7 +139,7 @@ public class App extends Application { | |||||||
|                 if (throwable instanceof UndeliverableException) { |                 if (throwable instanceof UndeliverableException) { | ||||||
|                     // As UndeliverableException is a wrapper, |                     // As UndeliverableException is a wrapper, | ||||||
|                     // get the cause of it to get the "real" exception |                     // get the cause of it to get the "real" exception | ||||||
|                     actualThrowable = throwable.getCause(); |                     actualThrowable = Objects.requireNonNull(throwable.getCause()); | ||||||
|                 } else { |                 } else { | ||||||
|                     actualThrowable = throwable; |                     actualThrowable = throwable; | ||||||
|                 } |                 } | ||||||
| @@ -149,7 +148,7 @@ public class App extends Application { | |||||||
|                 if (actualThrowable instanceof CompositeException) { |                 if (actualThrowable instanceof CompositeException) { | ||||||
|                     errors = ((CompositeException) actualThrowable).getExceptions(); |                     errors = ((CompositeException) actualThrowable).getExceptions(); | ||||||
|                 } else { |                 } else { | ||||||
|                     errors = Collections.singletonList(actualThrowable); |                     errors = List.of(actualThrowable); | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 for (final Throwable error : errors) { |                 for (final Throwable error : errors) { | ||||||
| @@ -213,41 +212,37 @@ public class App extends Application { | |||||||
|     private void initNotificationChannels() { |     private void initNotificationChannels() { | ||||||
|         // Keep the importance below DEFAULT to avoid making noise on every notification update for |         // Keep the importance below DEFAULT to avoid making noise on every notification update for | ||||||
|         // the main and update channels |         // the main and update channels | ||||||
|         final List<NotificationChannelCompat> notificationChannelCompats = new ArrayList<>(); |         final List<NotificationChannelCompat> notificationChannelCompats = List.of( | ||||||
|         notificationChannelCompats.add(new NotificationChannelCompat |                 new NotificationChannelCompat.Builder(getString(R.string.notification_channel_id), | ||||||
|                 .Builder(getString(R.string.notification_channel_id), |  | ||||||
|                         NotificationManagerCompat.IMPORTANCE_LOW) |                         NotificationManagerCompat.IMPORTANCE_LOW) | ||||||
|                 .setName(getString(R.string.notification_channel_name)) |                         .setName(getString(R.string.notification_channel_name)) | ||||||
|                 .setDescription(getString(R.string.notification_channel_description)) |                         .setDescription(getString(R.string.notification_channel_description)) | ||||||
|                 .build()); |                         .build(), | ||||||
|  |                 new NotificationChannelCompat | ||||||
|         notificationChannelCompats.add(new NotificationChannelCompat |                         .Builder(getString(R.string.app_update_notification_channel_id), | ||||||
|                 .Builder(getString(R.string.app_update_notification_channel_id), |  | ||||||
|                         NotificationManagerCompat.IMPORTANCE_LOW) |                         NotificationManagerCompat.IMPORTANCE_LOW) | ||||||
|                 .setName(getString(R.string.app_update_notification_channel_name)) |                         .setName(getString(R.string.app_update_notification_channel_name)) | ||||||
|                 .setDescription(getString(R.string.app_update_notification_channel_description)) |                         .setDescription( | ||||||
|                 .build()); |                                 getString(R.string.app_update_notification_channel_description)) | ||||||
|  |                         .build(), | ||||||
|         notificationChannelCompats.add(new NotificationChannelCompat |                 new NotificationChannelCompat.Builder(getString(R.string.hash_channel_id), | ||||||
|                 .Builder(getString(R.string.hash_channel_id), |  | ||||||
|                         NotificationManagerCompat.IMPORTANCE_HIGH) |                         NotificationManagerCompat.IMPORTANCE_HIGH) | ||||||
|                 .setName(getString(R.string.hash_channel_name)) |                         .setName(getString(R.string.hash_channel_name)) | ||||||
|                 .setDescription(getString(R.string.hash_channel_description)) |                         .setDescription(getString(R.string.hash_channel_description)) | ||||||
|                 .build()); |                         .build(), | ||||||
|  |                 new NotificationChannelCompat.Builder(getString(R.string.error_report_channel_id), | ||||||
|         notificationChannelCompats.add(new NotificationChannelCompat |  | ||||||
|                 .Builder(getString(R.string.error_report_channel_id), |  | ||||||
|                         NotificationManagerCompat.IMPORTANCE_LOW) |                         NotificationManagerCompat.IMPORTANCE_LOW) | ||||||
|                 .setName(getString(R.string.error_report_channel_name)) |                         .setName(getString(R.string.error_report_channel_name)) | ||||||
|                 .setDescription(getString(R.string.error_report_channel_description)) |                         .setDescription(getString(R.string.error_report_channel_description)) | ||||||
|                 .build()); |                         .build(), | ||||||
|  |                 new NotificationChannelCompat | ||||||
|         notificationChannelCompats.add(new NotificationChannelCompat |                         .Builder(getString(R.string.streams_notification_channel_id), | ||||||
|                 .Builder(getString(R.string.streams_notification_channel_id), |                         NotificationManagerCompat.IMPORTANCE_DEFAULT) | ||||||
|                     NotificationManagerCompat.IMPORTANCE_DEFAULT) |                         .setName(getString(R.string.streams_notification_channel_name)) | ||||||
|                 .setName(getString(R.string.streams_notification_channel_name)) |                         .setDescription( | ||||||
|                 .setDescription(getString(R.string.streams_notification_channel_description)) |                                 getString(R.string.streams_notification_channel_description)) | ||||||
|                 .build()); |                         .build() | ||||||
|  |         ); | ||||||
|  |  | ||||||
|         final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); |         final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); | ||||||
|         notificationManager.createNotificationChannelsCompat(notificationChannelCompats); |         notificationManager.createNotificationChannelsCompat(notificationChannelCompats); | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ import org.schabi.newpipe.player.playqueue.PlayQueueItem; | |||||||
| import org.schabi.newpipe.util.NavigationHelper; | import org.schabi.newpipe.util.NavigationHelper; | ||||||
| import org.schabi.newpipe.util.SparseItemUtil; | import org.schabi.newpipe.util.SparseItemUtil; | ||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.List; | ||||||
|  |  | ||||||
| public final class QueueItemMenuUtil { | public final class QueueItemMenuUtil { | ||||||
|     private QueueItemMenuUtil() { |     private QueueItemMenuUtil() { | ||||||
| @@ -53,7 +53,7 @@ public final class QueueItemMenuUtil { | |||||||
|                 case R.id.menu_item_append_playlist: |                 case R.id.menu_item_append_playlist: | ||||||
|                     PlaylistDialog.createCorrespondingDialog( |                     PlaylistDialog.createCorrespondingDialog( | ||||||
|                             context, |                             context, | ||||||
|                             Collections.singletonList(new StreamEntity(item)), |                             List.of(new StreamEntity(item)), | ||||||
|                             dialog -> dialog.show( |                             dialog -> dialog.show( | ||||||
|                                     fragmentManager, |                                     fragmentManager, | ||||||
|                                     "QueueItemMenuUtil@append_playlist" |                                     "QueueItemMenuUtil@append_playlist" | ||||||
|   | |||||||
| @@ -81,7 +81,6 @@ import org.schabi.newpipe.views.FocusOverlayView; | |||||||
| import java.io.Serializable; | import java.io.Serializable; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| import icepick.Icepick; | import icepick.Icepick; | ||||||
| @@ -649,7 +648,7 @@ public class RouterActivity extends AppCompatActivity { | |||||||
|                 .subscribe( |                 .subscribe( | ||||||
|                         info -> PlaylistDialog.createCorrespondingDialog( |                         info -> PlaylistDialog.createCorrespondingDialog( | ||||||
|                                 getThemeWrapperContext(), |                                 getThemeWrapperContext(), | ||||||
|                                 Collections.singletonList(new StreamEntity(info)), |                                 List.of(new StreamEntity(info)), | ||||||
|                                 playlistDialog -> { |                                 playlistDialog -> { | ||||||
|                                     playlistDialog.setOnDismissListener(dialog -> finish()); |                                     playlistDialog.setOnDismissListener(dialog -> finish()); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -114,7 +114,6 @@ import org.schabi.newpipe.util.external_communication.KoreUtils; | |||||||
| import org.schabi.newpipe.util.external_communication.ShareUtils; | import org.schabi.newpipe.util.external_communication.ShareUtils; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.Iterator; | import java.util.Iterator; | ||||||
| import java.util.LinkedList; | import java.util.LinkedList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| @@ -453,7 +452,7 @@ public final class VideoDetailFragment | |||||||
|                     disposables.add( |                     disposables.add( | ||||||
|                             PlaylistDialog.createCorrespondingDialog( |                             PlaylistDialog.createCorrespondingDialog( | ||||||
|                                     getContext(), |                                     getContext(), | ||||||
|                                     Collections.singletonList(new StreamEntity(currentInfo)), |                                     List.of(new StreamEntity(currentInfo)), | ||||||
|                                     dialog -> dialog.show(getFM(), TAG) |                                     dialog -> dialog.show(getFM(), TAG) | ||||||
|                             ) |                             ) | ||||||
|                     ); |                     ); | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ import org.schabi.newpipe.util.NavigationHelper; | |||||||
| import org.schabi.newpipe.util.external_communication.KoreUtils; | import org.schabi.newpipe.util.external_communication.KoreUtils; | ||||||
| import org.schabi.newpipe.util.external_communication.ShareUtils; | import org.schabi.newpipe.util.external_communication.ShareUtils; | ||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.List; | ||||||
|  |  | ||||||
| import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; | import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; | ||||||
|  |  | ||||||
| @@ -89,7 +89,7 @@ public enum StreamDialogDefaultEntry { | |||||||
|     APPEND_PLAYLIST(R.string.add_to_playlist, (fragment, item) -> |     APPEND_PLAYLIST(R.string.add_to_playlist, (fragment, item) -> | ||||||
|         PlaylistDialog.createCorrespondingDialog( |         PlaylistDialog.createCorrespondingDialog( | ||||||
|                 fragment.getContext(), |                 fragment.getContext(), | ||||||
|                 Collections.singletonList(new StreamEntity(item)), |                 List.of(new StreamEntity(item)), | ||||||
|                 dialog -> dialog.show( |                 dialog -> dialog.show( | ||||||
|                         fragment.getParentFragmentManager(), |                         fragment.getParentFragmentManager(), | ||||||
|                         "StreamDialogEntry@" |                         "StreamDialogEntry@" | ||||||
|   | |||||||
| @@ -14,7 +14,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior; | |||||||
|  |  | ||||||
| import org.schabi.newpipe.R; | import org.schabi.newpipe.R; | ||||||
|  |  | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout> { | public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout> { | ||||||
| @@ -25,7 +24,7 @@ public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout> | |||||||
|  |  | ||||||
|     Rect globalRect = new Rect(); |     Rect globalRect = new Rect(); | ||||||
|     private boolean skippingInterception = false; |     private boolean skippingInterception = false; | ||||||
|     private final List<Integer> skipInterceptionOfElements = Arrays.asList( |     private final List<Integer> skipInterceptionOfElements = List.of( | ||||||
|             R.id.detail_content_root_layout, R.id.relatedItemsLayout, |             R.id.detail_content_root_layout, R.id.relatedItemsLayout, | ||||||
|             R.id.itemsListPanel, R.id.view_pager, R.id.tab_layout, R.id.bottomControls, |             R.id.itemsListPanel, R.id.view_pager, R.id.tab_layout, R.id.bottomControls, | ||||||
|             R.id.playPauseButton, R.id.playPreviousButton, R.id.playNextButton); |             R.id.playPauseButton, R.id.playPreviousButton, R.id.playNextButton); | ||||||
| @@ -57,7 +56,7 @@ public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout> | |||||||
|         if (getState() == BottomSheetBehavior.STATE_EXPANDED |         if (getState() == BottomSheetBehavior.STATE_EXPANDED | ||||||
|                 && event.getAction() == MotionEvent.ACTION_DOWN) { |                 && event.getAction() == MotionEvent.ACTION_DOWN) { | ||||||
|             // Without overriding scrolling will not work when user touches these elements |             // Without overriding scrolling will not work when user touches these elements | ||||||
|             for (final Integer element : skipInterceptionOfElements) { |             for (final int element : skipInterceptionOfElements) { | ||||||
|                 final View view = child.findViewById(element); |                 final View view = child.findViewById(element); | ||||||
|                 if (view != null) { |                 if (view != null) { | ||||||
|                     final boolean visible = view.getGlobalVisibleRect(globalRect); |                     final boolean visible = view.getGlobalVisibleRect(globalRect); | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ import org.schabi.newpipe.player.mediaitem.ExceptionTag; | |||||||
| import org.schabi.newpipe.player.playqueue.PlayQueueItem; | import org.schabi.newpipe.player.playqueue.PlayQueueItem; | ||||||
|  |  | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.util.Collections; | import java.util.List; | ||||||
| import java.util.concurrent.TimeUnit; | import java.util.concurrent.TimeUnit; | ||||||
|  |  | ||||||
| import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||||
| @@ -56,9 +56,7 @@ public class FailedMediaSource extends BaseMediaSource implements ManagedMediaSo | |||||||
|         this.playQueueItem = playQueueItem; |         this.playQueueItem = playQueueItem; | ||||||
|         this.error = error; |         this.error = error; | ||||||
|         this.retryTimestamp = retryTimestamp; |         this.retryTimestamp = retryTimestamp; | ||||||
|         this.mediaItem = ExceptionTag |         this.mediaItem = ExceptionTag.of(playQueueItem, List.of(error)).withExtras(this) | ||||||
|                 .of(playQueueItem, Collections.singletonList(error)) |  | ||||||
|                 .withExtras(this) |  | ||||||
|                 .asMediaItem(); |                 .asMediaItem(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,7 +16,6 @@ import org.schabi.newpipe.player.playqueue.events.SelectEvent; | |||||||
|  |  | ||||||
| import java.io.Serializable; | import java.io.Serializable; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.concurrent.atomic.AtomicInteger; | import java.util.concurrent.atomic.AtomicInteger; | ||||||
| @@ -264,7 +263,7 @@ public abstract class PlayQueue implements Serializable { | |||||||
|      * @param items {@link PlayQueueItem}s to append |      * @param items {@link PlayQueueItem}s to append | ||||||
|      */ |      */ | ||||||
|     public synchronized void append(@NonNull final PlayQueueItem... items) { |     public synchronized void append(@NonNull final PlayQueueItem... items) { | ||||||
|         append(Arrays.asList(items)); |         append(List.of(items)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -4,20 +4,19 @@ import org.schabi.newpipe.extractor.stream.StreamInfo; | |||||||
| import org.schabi.newpipe.extractor.stream.StreamInfoItem; | import org.schabi.newpipe.extractor.stream.StreamInfoItem; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| public final class SinglePlayQueue extends PlayQueue { | public final class SinglePlayQueue extends PlayQueue { | ||||||
|     public SinglePlayQueue(final StreamInfoItem item) { |     public SinglePlayQueue(final StreamInfoItem item) { | ||||||
|         super(0, Collections.singletonList(new PlayQueueItem(item))); |         super(0, List.of(new PlayQueueItem(item))); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public SinglePlayQueue(final StreamInfo info) { |     public SinglePlayQueue(final StreamInfo info) { | ||||||
|         super(0, Collections.singletonList(new PlayQueueItem(info))); |         super(0, List.of(new PlayQueueItem(info))); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public SinglePlayQueue(final StreamInfo info, final long startPosition) { |     public SinglePlayQueue(final StreamInfo info, final long startPosition) { | ||||||
|         super(0, Collections.singletonList(new PlayQueueItem(info))); |         super(0, List.of(new PlayQueueItem(info))); | ||||||
|         getItem().setRecoveryPosition(startPosition); |         getItem().setRecoveryPosition(startPosition); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,8 +3,6 @@ package org.schabi.newpipe.settings.preferencesearch; | |||||||
| import androidx.preference.PreferenceCategory; | import androidx.preference.PreferenceCategory; | ||||||
| import androidx.preference.PreferenceScreen; | import androidx.preference.PreferenceScreen; | ||||||
|  |  | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Objects; | import java.util.Objects; | ||||||
| import java.util.stream.Stream; | import java.util.stream.Stream; | ||||||
| @@ -12,9 +10,9 @@ import java.util.stream.Stream; | |||||||
| public class PreferenceSearchConfiguration { | public class PreferenceSearchConfiguration { | ||||||
|     private PreferenceSearchFunction searcher = new PreferenceFuzzySearchFunction(); |     private PreferenceSearchFunction searcher = new PreferenceFuzzySearchFunction(); | ||||||
|  |  | ||||||
|     private final List<String> parserIgnoreElements = Collections.singletonList( |     private final List<String> parserIgnoreElements = List.of(PreferenceCategory.class | ||||||
|             PreferenceCategory.class.getSimpleName()); |             .getSimpleName()); | ||||||
|     private final List<String> parserContainerElements = Arrays.asList( |     private final List<String> parserContainerElements = List.of( | ||||||
|             PreferenceCategory.class.getSimpleName(), |             PreferenceCategory.class.getSimpleName(), | ||||||
|             PreferenceScreen.class.getSimpleName()); |             PreferenceScreen.class.getSimpleName()); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ package org.schabi.newpipe.settings.preferencesearch; | |||||||
| import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||||
| import androidx.annotation.XmlRes; | import androidx.annotation.XmlRes; | ||||||
|  |  | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Objects; | import java.util.Objects; | ||||||
|  |  | ||||||
| @@ -92,11 +91,7 @@ public class PreferenceSearchItem { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public List<String> getAllRelevantSearchFields() { |     public List<String> getAllRelevantSearchFields() { | ||||||
|         return Arrays.asList( |         return List.of(getTitle(), getSummary(), getEntries(), getBreadcrumbs()); | ||||||
|             getTitle(), |  | ||||||
|             getSummary(), |  | ||||||
|             getEntries(), |  | ||||||
|             getBreadcrumbs()); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @NonNull |     @NonNull | ||||||
|   | |||||||
| @@ -10,8 +10,6 @@ import com.grack.nanojson.JsonStringWriter; | |||||||
| import com.grack.nanojson.JsonWriter; | import com.grack.nanojson.JsonWriter; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -20,11 +18,9 @@ import java.util.List; | |||||||
| public final class TabsJsonHelper { | public final class TabsJsonHelper { | ||||||
|     private static final String JSON_TABS_ARRAY_KEY = "tabs"; |     private static final String JSON_TABS_ARRAY_KEY = "tabs"; | ||||||
|  |  | ||||||
|     private static final List<Tab> FALLBACK_INITIAL_TABS_LIST = Collections.unmodifiableList( |     private static final List<Tab> FALLBACK_INITIAL_TABS_LIST = List.of( | ||||||
|             Arrays.asList( |             Tab.Type.DEFAULT_KIOSK.getTab(), Tab.Type.SUBSCRIPTIONS.getTab(), | ||||||
|                     Tab.Type.DEFAULT_KIOSK.getTab(), |             Tab.Type.BOOKMARKS.getTab()); | ||||||
|                     Tab.Type.SUBSCRIPTIONS.getTab(), |  | ||||||
|                     Tab.Type.BOOKMARKS.getTab())); |  | ||||||
|  |  | ||||||
|     private TabsJsonHelper() { } |     private TabsJsonHelper() { } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,14 +31,14 @@ import java.util.stream.Collectors; | |||||||
| public final class ListHelper { | public final class ListHelper { | ||||||
|     // Video format in order of quality. 0=lowest quality, n=highest quality |     // Video format in order of quality. 0=lowest quality, n=highest quality | ||||||
|     private static final List<MediaFormat> VIDEO_FORMAT_QUALITY_RANKING = |     private static final List<MediaFormat> VIDEO_FORMAT_QUALITY_RANKING = | ||||||
|             Arrays.asList(MediaFormat.v3GPP, MediaFormat.WEBM, MediaFormat.MPEG_4); |             List.of(MediaFormat.v3GPP, MediaFormat.WEBM, MediaFormat.MPEG_4); | ||||||
|  |  | ||||||
|     // Audio format in order of quality. 0=lowest quality, n=highest quality |     // Audio format in order of quality. 0=lowest quality, n=highest quality | ||||||
|     private static final List<MediaFormat> AUDIO_FORMAT_QUALITY_RANKING = |     private static final List<MediaFormat> AUDIO_FORMAT_QUALITY_RANKING = | ||||||
|             Arrays.asList(MediaFormat.MP3, MediaFormat.WEBMA, MediaFormat.M4A); |             List.of(MediaFormat.MP3, MediaFormat.WEBMA, MediaFormat.M4A); | ||||||
|     // Audio format in order of efficiency. 0=most efficient, n=least efficient |     // Audio format in order of efficiency. 0=most efficient, n=least efficient | ||||||
|     private static final List<MediaFormat> AUDIO_FORMAT_EFFICIENCY_RANKING = |     private static final List<MediaFormat> AUDIO_FORMAT_EFFICIENCY_RANKING = | ||||||
|             Arrays.asList(MediaFormat.WEBMA, MediaFormat.M4A, MediaFormat.MP3); |             List.of(MediaFormat.WEBMA, MediaFormat.M4A, MediaFormat.MP3); | ||||||
|     // Use a Set for better performance |     // Use a Set for better performance | ||||||
|     private static final Set<String> HIGH_RESOLUTION_LIST = Set.of("1440p", "2160p"); |     private static final Set<String> HIGH_RESOLUTION_LIST = Set.of("1440p", "2160p"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.ServiceList; | |||||||
| import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance; | import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Collections; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| public final class PeertubeHelper { | public final class PeertubeHelper { | ||||||
| @@ -29,7 +28,7 @@ public final class PeertubeHelper { | |||||||
|         final String savedInstanceListKey = context.getString(R.string.peertube_instance_list_key); |         final String savedInstanceListKey = context.getString(R.string.peertube_instance_list_key); | ||||||
|         final String savedJson = sharedPreferences.getString(savedInstanceListKey, null); |         final String savedJson = sharedPreferences.getString(savedInstanceListKey, null); | ||||||
|         if (null == savedJson) { |         if (null == savedJson) { | ||||||
|             return Collections.singletonList(getCurrentInstance()); |             return List.of(getCurrentInstance()); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         try { |         try { | ||||||
| @@ -45,9 +44,8 @@ public final class PeertubeHelper { | |||||||
|             } |             } | ||||||
|             return result; |             return result; | ||||||
|         } catch (final JsonParserException e) { |         } catch (final JsonParserException e) { | ||||||
|             return Collections.singletonList(getCurrentInstance()); |             return List.of(getCurrentInstance()); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static PeertubeInstance selectInstance(final PeertubeInstance instance, |     public static PeertubeInstance selectInstance(final PeertubeInstance instance, | ||||||
|   | |||||||
| @@ -153,7 +153,7 @@ public class PlayQueueTest { | |||||||
|         @Test |         @Test | ||||||
|         public void itemsAreNotCloned() { |         public void itemsAreNotCloned() { | ||||||
|             final PlayQueueItem item = makeItemWithUrl("A url"); |             final PlayQueueItem item = makeItemWithUrl("A url"); | ||||||
|             final PlayQueue playQueue = makePlayQueue(0, Collections.singletonList(item)); |             final PlayQueue playQueue = makePlayQueue(0, List.of(item)); | ||||||
|  |  | ||||||
|             // make sure that items are not cloned when added to the queue |             // make sure that items are not cloned when added to the queue | ||||||
|             assertSame(playQueue.getItem(), item); |             assertSame(playQueue.getItem(), item); | ||||||
|   | |||||||
| @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.stream.AudioStream; | |||||||
| import org.schabi.newpipe.extractor.stream.VideoStream; | import org.schabi.newpipe.extractor.stream.VideoStream; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| import static org.junit.Assert.assertEquals; | import static org.junit.Assert.assertEquals; | ||||||
| @@ -18,7 +17,7 @@ import androidx.annotation.Nullable; | |||||||
|  |  | ||||||
| public class ListHelperTest { | public class ListHelperTest { | ||||||
|     private static final String BEST_RESOLUTION_KEY = "best_resolution"; |     private static final String BEST_RESOLUTION_KEY = "best_resolution"; | ||||||
|     private static final List<AudioStream> AUDIO_STREAMS_TEST_LIST = Arrays.asList( |     private static final List<AudioStream> AUDIO_STREAMS_TEST_LIST = List.of( | ||||||
|             generateAudioStream("m4a-128-1", MediaFormat.M4A, 128), |             generateAudioStream("m4a-128-1", MediaFormat.M4A, 128), | ||||||
|             generateAudioStream("webma-192", MediaFormat.WEBMA, 192), |             generateAudioStream("webma-192", MediaFormat.WEBMA, 192), | ||||||
|             generateAudioStream("mp3-64", MediaFormat.MP3, 64), |             generateAudioStream("mp3-64", MediaFormat.MP3, 64), | ||||||
| @@ -30,7 +29,7 @@ public class ListHelperTest { | |||||||
|             generateAudioStream("mp3-192", MediaFormat.MP3, 192), |             generateAudioStream("mp3-192", MediaFormat.MP3, 192), | ||||||
|             generateAudioStream("webma-320", MediaFormat.WEBMA, 320)); |             generateAudioStream("webma-320", MediaFormat.WEBMA, 320)); | ||||||
|  |  | ||||||
|     private static final List<VideoStream> VIDEO_STREAMS_TEST_LIST = Arrays.asList( |     private static final List<VideoStream> VIDEO_STREAMS_TEST_LIST = List.of( | ||||||
|             generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p", false), |             generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p", false), | ||||||
|             generateVideoStream("v3gpp-240", MediaFormat.v3GPP, "240p", false), |             generateVideoStream("v3gpp-240", MediaFormat.v3GPP, "240p", false), | ||||||
|             generateVideoStream("webm-480", MediaFormat.WEBM, "480p", false), |             generateVideoStream("webm-480", MediaFormat.WEBM, "480p", false), | ||||||
| @@ -38,7 +37,7 @@ public class ListHelperTest { | |||||||
|             generateVideoStream("mpeg_4-360", MediaFormat.MPEG_4, "360p", false), |             generateVideoStream("mpeg_4-360", MediaFormat.MPEG_4, "360p", false), | ||||||
|             generateVideoStream("webm-360", MediaFormat.WEBM, "360p", false)); |             generateVideoStream("webm-360", MediaFormat.WEBM, "360p", false)); | ||||||
|  |  | ||||||
|     private static final List<VideoStream> VIDEO_ONLY_STREAMS_TEST_LIST = Arrays.asList( |     private static final List<VideoStream> VIDEO_ONLY_STREAMS_TEST_LIST = List.of( | ||||||
|             generateVideoStream("mpeg_4-720-1", MediaFormat.MPEG_4, "720p", true), |             generateVideoStream("mpeg_4-720-1", MediaFormat.MPEG_4, "720p", true), | ||||||
|             generateVideoStream("mpeg_4-720-2", MediaFormat.MPEG_4, "720p", true), |             generateVideoStream("mpeg_4-720-2", MediaFormat.MPEG_4, "720p", true), | ||||||
|             generateVideoStream("mpeg_4-2160", MediaFormat.MPEG_4, "2160p", true), |             generateVideoStream("mpeg_4-2160", MediaFormat.MPEG_4, "2160p", true), | ||||||
| @@ -54,7 +53,7 @@ public class ListHelperTest { | |||||||
|         List<VideoStream> result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, |         List<VideoStream> result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, | ||||||
|                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, true, false); |                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, true, false); | ||||||
|  |  | ||||||
|         List<String> expected = Arrays.asList("144p", "240p", "360p", "480p", "720p", "720p60", |         List<String> expected = List.of("144p", "240p", "360p", "480p", "720p", "720p60", | ||||||
|                 "1080p", "1080p60", "1440p60", "2160p", "2160p60"); |                 "1080p", "1080p60", "1440p60", "2160p", "2160p60"); | ||||||
|  |  | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
| @@ -69,7 +68,7 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, |         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, | ||||||
|                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, false, false); |                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, false, false); | ||||||
|         expected = Arrays.asList("2160p60", "2160p", "1440p60", "1080p60", "1080p", "720p60", |         expected = List.of("2160p60", "2160p", "1440p60", "1080p60", "1080p", "720p60", | ||||||
|                 "720p", "480p", "360p", "240p", "144p"); |                 "720p", "480p", "360p", "240p", "144p"); | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
|         for (int i = 0; i < result.size(); i++) { |         for (int i = 0; i < result.size(); i++) { | ||||||
| @@ -83,7 +82,7 @@ public class ListHelperTest { | |||||||
|                 null, VIDEO_ONLY_STREAMS_TEST_LIST, true, true); |                 null, VIDEO_ONLY_STREAMS_TEST_LIST, true, true); | ||||||
|  |  | ||||||
|         List<String> expected = |         List<String> expected = | ||||||
|                 Arrays.asList("720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60"); |                 List.of("720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60"); | ||||||
|  |  | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
|         for (int i = 0; i < result.size(); i++) { |         for (int i = 0; i < result.size(); i++) { | ||||||
| @@ -97,7 +96,7 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, |         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, | ||||||
|                 VIDEO_STREAMS_TEST_LIST, null, false, true); |                 VIDEO_STREAMS_TEST_LIST, null, false, true); | ||||||
|         expected = Arrays.asList("720p", "480p", "360p", "240p", "144p"); |         expected = List.of("720p", "480p", "360p", "240p", "144p"); | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
|         for (int i = 0; i < result.size(); i++) { |         for (int i = 0; i < result.size(); i++) { | ||||||
|             assertEquals(expected.get(i), result.get(i).getResolution()); |             assertEquals(expected.get(i), result.get(i).getResolution()); | ||||||
| @@ -110,10 +109,10 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, |         result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, | ||||||
|                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, true, true); |                 VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, true, true); | ||||||
|         expected = Arrays.asList("144p", "240p", "360p", "480p", "720p", "720p60", |         expected = List.of("144p", "240p", "360p", "480p", "720p", "720p60", | ||||||
|                 "1080p", "1080p60", "1440p60", "2160p", "2160p60"); |                 "1080p", "1080p60", "1440p60", "2160p", "2160p60"); | ||||||
|         final List<String> expectedVideoOnly = |         final List<String> expectedVideoOnly = | ||||||
|                 Arrays.asList("720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60"); |                 List.of("720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60"); | ||||||
|  |  | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
|         for (int i = 0; i < result.size(); i++) { |         for (int i = 0; i < result.size(); i++) { | ||||||
| @@ -131,7 +130,7 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|         final List<VideoStream> result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, |         final List<VideoStream> result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, | ||||||
|                 false, VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, false, false); |                 false, VIDEO_STREAMS_TEST_LIST, VIDEO_ONLY_STREAMS_TEST_LIST, false, false); | ||||||
|         final List<String> expected = Arrays.asList( |         final List<String> expected = List.of( | ||||||
|                 "1080p60", "1080p", "720p60", "720p", "480p", "360p", "240p", "144p"); |                 "1080p60", "1080p", "720p60", "720p", "480p", "360p", "240p", "144p"); | ||||||
|         assertEquals(expected.size(), result.size()); |         assertEquals(expected.size(), result.size()); | ||||||
|         for (int i = 0; i < result.size(); i++) { |         for (int i = 0; i < result.size(); i++) { | ||||||
| @@ -141,7 +140,7 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void getDefaultResolutionTest() { |     public void getDefaultResolutionTest() { | ||||||
|         final List<VideoStream> testList = Arrays.asList( |         final List<VideoStream> testList = List.of( | ||||||
|                 generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p", false), |                 generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p", false), | ||||||
|                 generateVideoStream("v3gpp-240", MediaFormat.v3GPP, "240p", false), |                 generateVideoStream("v3gpp-240", MediaFormat.v3GPP, "240p", false), | ||||||
|                 generateVideoStream("webm-480",  MediaFormat.WEBM, "480p", false), |                 generateVideoStream("webm-480",  MediaFormat.WEBM, "480p", false), | ||||||
| @@ -223,7 +222,7 @@ public class ListHelperTest { | |||||||
|         // Doesn't contain the preferred format // |         // Doesn't contain the preferred format // | ||||||
|         //////////////////////////////////////// |         //////////////////////////////////////// | ||||||
|  |  | ||||||
|         List<AudioStream> testList = Arrays.asList( |         List<AudioStream> testList = List.of( | ||||||
|                 generateAudioStream("m4a-128", MediaFormat.M4A, 128), |                 generateAudioStream("m4a-128", MediaFormat.M4A, 128), | ||||||
|                 generateAudioStream("webma-192", MediaFormat.WEBMA, 192)); |                 generateAudioStream("webma-192", MediaFormat.WEBMA, 192)); | ||||||
|         // List doesn't contains this format |         // List doesn't contains this format | ||||||
| @@ -237,7 +236,7 @@ public class ListHelperTest { | |||||||
|         // Multiple not-preferred-formats and equal bitrates // |         // Multiple not-preferred-formats and equal bitrates // | ||||||
|         ////////////////////////////////////////////////////// |         ////////////////////////////////////////////////////// | ||||||
|  |  | ||||||
|         testList = new ArrayList<>(Arrays.asList( |         testList = new ArrayList<>(List.of( | ||||||
|                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192), |                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192), | ||||||
|                 generateAudioStream("m4a-192-1", MediaFormat.M4A, 192), |                 generateAudioStream("m4a-192-1", MediaFormat.M4A, 192), | ||||||
|                 generateAudioStream("webma-192-2", MediaFormat.WEBMA, 192), |                 generateAudioStream("webma-192-2", MediaFormat.WEBMA, 192), | ||||||
| @@ -290,7 +289,7 @@ public class ListHelperTest { | |||||||
|         // Doesn't contain the preferred format // |         // Doesn't contain the preferred format // | ||||||
|         //////////////////////////////////////// |         //////////////////////////////////////// | ||||||
|  |  | ||||||
|         List<AudioStream> testList = new ArrayList<>(Arrays.asList( |         List<AudioStream> testList = new ArrayList<>(List.of( | ||||||
|                 generateAudioStream("m4a-128", MediaFormat.M4A, 128), |                 generateAudioStream("m4a-128", MediaFormat.M4A, 128), | ||||||
|                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192))); |                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192))); | ||||||
|         // List doesn't contains this format |         // List doesn't contains this format | ||||||
| @@ -310,7 +309,7 @@ public class ListHelperTest { | |||||||
|         // Multiple not-preferred-formats and equal bitrates // |         // Multiple not-preferred-formats and equal bitrates // | ||||||
|         ////////////////////////////////////////////////////// |         ////////////////////////////////////////////////////// | ||||||
|  |  | ||||||
|         testList = new ArrayList<>(Arrays.asList( |         testList = new ArrayList<>(List.of( | ||||||
|                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192), |                 generateAudioStream("webma-192-1", MediaFormat.WEBMA, 192), | ||||||
|                 generateAudioStream("m4a-192-1",   MediaFormat.M4A, 192), |                 generateAudioStream("m4a-192-1",   MediaFormat.M4A, 192), | ||||||
|                 generateAudioStream("webma-256", MediaFormat.WEBMA, 256), |                 generateAudioStream("webma-256", MediaFormat.WEBMA, 256), | ||||||
| @@ -337,7 +336,7 @@ public class ListHelperTest { | |||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void getVideoDefaultStreamIndexCombinations() { |     public void getVideoDefaultStreamIndexCombinations() { | ||||||
|         final List<VideoStream> testList = Arrays.asList( |         final List<VideoStream> testList = List.of( | ||||||
|                 generateVideoStream("mpeg_4-1080", MediaFormat.MPEG_4, "1080p",  false), |                 generateVideoStream("mpeg_4-1080", MediaFormat.MPEG_4, "1080p",  false), | ||||||
|                 generateVideoStream("mpeg_4-720_60", MediaFormat.MPEG_4, "720p60", false), |                 generateVideoStream("mpeg_4-720_60", MediaFormat.MPEG_4, "720p60", false), | ||||||
|                 generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p",   false), |                 generateVideoStream("mpeg_4-720", MediaFormat.MPEG_4, "720p",   false), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Isira Seneviratne
					Isira Seneviratne