diff --git a/app/src/main/java/com/cappielloantonio/play/service/DownloaderManager.java b/app/src/main/java/com/cappielloantonio/play/service/DownloaderManager.java index 8dae039f..ce08e3e2 100644 --- a/app/src/main/java/com/cappielloantonio/play/service/DownloaderManager.java +++ b/app/src/main/java/com/cappielloantonio/play/service/DownloaderManager.java @@ -37,7 +37,6 @@ public class DownloaderManager { private final HashMap downloads; private final DownloadIndex downloadIndex; - @SuppressLint("UnsafeOptInUsageError") public DownloaderManager(Context context, DownloadManager downloadManager) { this.context = context.getApplicationContext(); @@ -47,7 +46,6 @@ public class DownloaderManager { loadDownloads(); } - @SuppressLint("UnsafeOptInUsageError") private DownloadRequest buildDownloadRequest(MediaItem mediaItem) { return DownloadHelper.forMediaItem(context, mediaItem).getDownloadRequest(Util.getUtf8Bytes(checkNotNull(mediaItem.mediaId))); } @@ -58,13 +56,11 @@ public class DownloaderManager { return download != null && download.state != Download.STATE_FAILED; } - @SuppressLint("UnsafeOptInUsageError") public boolean isDownloaded(MediaItem mediaItem) { @Nullable Download download = downloads.get(checkNotNull(mediaItem.localConfiguration).uri); return download != null && download.state != Download.STATE_FAILED; } - @SuppressLint("UnsafeOptInUsageError") public boolean areDownloaded(List mediaItems) { for (MediaItem mediaItem : mediaItems) { @Nullable Download download = downloads.get(checkNotNull(mediaItem.localConfiguration).uri); @@ -76,7 +72,6 @@ public class DownloaderManager { return false; } - @SuppressLint("UnsafeOptInUsageError") public void download(MediaItem mediaItem, com.cappielloantonio.play.model.Download download) { DownloadService.sendAddDownload(context, DownloaderService.class, buildDownloadRequest(mediaItem), false); downloadDatabase(download); @@ -88,7 +83,6 @@ public class DownloaderManager { } } - @SuppressLint("UnsafeOptInUsageError") public void remove(MediaItem mediaItem, com.cappielloantonio.play.model.Download download) { DownloadService.sendRemoveDownload(context, DownloaderService.class, buildDownloadRequest(mediaItem).id, false); removeDatabase(download); @@ -100,7 +94,6 @@ public class DownloaderManager { } } - @SuppressLint("UnsafeOptInUsageError") private void loadDownloads() { try (DownloadCursor loadedDownloads = downloadIndex.getDownloads()) { while (loadedDownloads.moveToNext()) { diff --git a/app/src/main/java/com/cappielloantonio/play/service/DownloaderService.java b/app/src/main/java/com/cappielloantonio/play/service/DownloaderService.java index 956c7bae..35bf68ad 100644 --- a/app/src/main/java/com/cappielloantonio/play/service/DownloaderService.java +++ b/app/src/main/java/com/cappielloantonio/play/service/DownloaderService.java @@ -20,13 +20,11 @@ import com.cappielloantonio.play.util.DownloadUtil; import java.util.List; -@SuppressLint("UnsafeOptInUsageError") public class DownloaderService extends androidx.media3.exoplayer.offline.DownloadService { private static final int JOB_ID = 1; private static final int FOREGROUND_NOTIFICATION_ID = 1; - @SuppressLint("UnsafeOptInUsageError") public DownloaderService() { super(FOREGROUND_NOTIFICATION_ID, DEFAULT_FOREGROUND_NOTIFICATION_UPDATE_INTERVAL, DownloadUtil.DOWNLOAD_NOTIFICATION_CHANNEL_ID, R.string.exo_download_notification_channel_name, 0); } @@ -64,7 +62,6 @@ public class DownloaderService extends androidx.media3.exoplayer.offline.Downloa nextNotificationId = firstNotificationId; } - @SuppressLint("UnsafeOptInUsageError") @Override public void onDownloadChanged(@NonNull DownloadManager downloadManager, Download download, @Nullable Exception finalException) { Notification notification; diff --git a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java index f9c30a34..3eb38ab0 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java @@ -108,7 +108,6 @@ public class MainActivity extends BaseActivity { } // BOTTOM SHEET/NAVIGATION - @SuppressLint("UnsafeOptInUsageError") private void initBottomSheet() { bottomSheetBehavior = BottomSheetBehavior.from(findViewById(R.id.player_bottom_sheet)); bottomSheetBehavior.addBottomSheetCallback(bottomSheetCallback); @@ -205,7 +204,6 @@ public class MainActivity extends BaseActivity { } } - @SuppressLint("UnsafeOptInUsageError") private void initService() { MediaManager.check(getMediaBrowserListenableFuture(), this); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java b/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java index 184dd182..b269f00c 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java @@ -1,6 +1,5 @@ package com.cappielloantonio.play.ui.activity.base; -import android.annotation.SuppressLint; import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; @@ -19,6 +18,7 @@ import com.cappielloantonio.play.service.DownloaderManager; import com.cappielloantonio.play.service.DownloaderService; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.util.DownloadUtil; +import com.cappielloantonio.play.util.UIUtil; import com.google.android.gms.cast.framework.CastContext; import com.google.android.material.elevation.SurfaceColors; import com.google.common.util.concurrent.ListenableFuture; @@ -83,7 +83,6 @@ public class BaseActivity extends AppCompatActivity { startActivity(intent); } - @SuppressLint("UnsafeOptInUsageError") private void initializeBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(this, new SessionToken(this, new ComponentName(this, MediaService.class))).buildAsync(); } @@ -96,7 +95,6 @@ public class BaseActivity extends AppCompatActivity { return mediaBrowserListenableFuture; } - @SuppressLint("UnsafeOptInUsageError") private void initializeDownloader() { downloaderManager = DownloadUtil.getDownloadTracker(this); @@ -108,7 +106,7 @@ public class BaseActivity extends AppCompatActivity { } private void initializeCastContext() { - CastContext.getSharedInstance(this); + if (UIUtil.isCastApiAvailable(this)) CastContext.getSharedInstance(this); } private void setNavigationBarColor() { diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java index 9b320cc6..abf8b7f0 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java @@ -195,7 +195,6 @@ public class AlbumPageFragment extends Fragment { albumPageViewModel.getAlbumSongLiveList(getViewLifecycleOwner()).observe(getViewLifecycleOwner(), songs -> songHorizontalAdapter.setItems(songs)); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java index 155f8691..02ea15b2 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java @@ -212,7 +212,6 @@ public class ArtistPageFragment extends Fragment { similarArtistSnapHelper.attachToRecyclerView(bind.similarArtistsRecyclerView); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java index dae89903..7c3b2912 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java @@ -293,7 +293,6 @@ public class DownloadFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java index dc230363..c09574a1 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java @@ -88,7 +88,6 @@ public class PlayerBottomSheetFragment extends Fragment { bind.playerBodyLayout.playerBodyBottomSheetViewPager.setAdapter(new PlayerControllerVerticalPager(this)); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } @@ -97,7 +96,6 @@ public class PlayerBottomSheetFragment extends Fragment { MediaController.releaseFuture(mediaBrowserListenableFuture); } - @SuppressLint("UnsafeOptInUsageError") private void bindMediaController() { mediaBrowserListenableFuture.addListener(() -> { try { @@ -110,7 +108,6 @@ public class PlayerBottomSheetFragment extends Fragment { }, MoreExecutors.directExecutor()); } - @SuppressLint("UnsafeOptInUsageError") private void setMediaControllerListener(MediaBrowser mediaBrowser) { defineProgressBarHandler(mediaBrowser); setMediaControllerUI(mediaBrowser); @@ -145,7 +142,6 @@ public class PlayerBottomSheetFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void setMetadata(MediaMetadata mediaMetadata) { if (mediaMetadata.extras != null) playerBottomSheetViewModel.setLiveMedia(getViewLifecycleOwner(), mediaMetadata.extras.getString("mediaType"), mediaMetadata.extras.getString("id")); @@ -162,7 +158,6 @@ public class PlayerBottomSheetFragment extends Fragment { .into(bind.playerHeaderLayout.playerHeaderMediaCoverImage); } - @SuppressLint("UnsafeOptInUsageError") private void setMediaControllerUI(MediaBrowser mediaBrowser) { if (mediaBrowser.getMediaMetadata().extras != null) { switch (mediaBrowser.getMediaMetadata().extras.getString("mediaType", Media.MEDIA_TYPE_MUSIC)) { @@ -194,7 +189,6 @@ public class PlayerBottomSheetFragment extends Fragment { runProgressBarHandler(isPlaying); } - @SuppressLint("UnsafeOptInUsageError") private void setHeaderMediaController() { bind.playerHeaderLayout.playerHeaderButton.setOnClickListener(view -> bind.getRoot().findViewById(R.id.exo_play_pause).performClick()); bind.playerHeaderLayout.playerHeaderNextMediaButton.setOnClickListener(view -> bind.getRoot().findViewById(R.id.exo_next).performClick()); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerControllerFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerControllerFragment.java index b209e39c..6dbfbfe8 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerControllerFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerControllerFragment.java @@ -94,7 +94,6 @@ public class PlayerControllerFragment extends Fragment { bind = null; } - @SuppressLint("UnsafeOptInUsageError") private void init() { playerMediaCoverViewPager = bind.getRoot().findViewById(R.id.player_media_cover_view_pager); buttonFavorite = bind.getRoot().findViewById(R.id.button_favorite); @@ -109,7 +108,6 @@ public class PlayerControllerFragment extends Fragment { playerMediaTranscodedBitrate = bind.getRoot().findViewById(R.id.player_media_transcoded_bitrate); } - @SuppressLint("UnsafeOptInUsageError") private void initializeBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } @@ -118,7 +116,6 @@ public class PlayerControllerFragment extends Fragment { MediaBrowser.releaseFuture(mediaBrowserListenableFuture); } - @SuppressLint("UnsafeOptInUsageError") private void bindMediaController() { mediaBrowserListenableFuture.addListener(() -> { try { @@ -133,7 +130,6 @@ public class PlayerControllerFragment extends Fragment { }, MoreExecutors.directExecutor()); } - @SuppressLint("UnsafeOptInUsageError") private void setMediaControllerListener(MediaBrowser mediaBrowser) { setMediaControllerUI(mediaBrowser); setMetadata(mediaBrowser.getMediaMetadata()); @@ -149,7 +145,6 @@ public class PlayerControllerFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void setMetadata(MediaMetadata mediaMetadata) { playerMediaTitleLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.title))); playerArtistNameLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.artist))); @@ -193,7 +188,6 @@ public class PlayerControllerFragment extends Fragment { } - @SuppressLint("UnsafeOptInUsageError") private void setMediaControllerUI(MediaBrowser mediaBrowser) { initPlaybackSpeedButton(mediaBrowser); @@ -280,7 +274,6 @@ public class PlayerControllerFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void initPlaybackSpeedButton(MediaBrowser mediaBrowser) { playbackSpeedButton.setOnClickListener(view -> { float currentSpeed = PreferenceUtil.getInstance(requireContext()).getPlaybackSpeed(); @@ -325,7 +318,6 @@ public class PlayerControllerFragment extends Fragment { playerMediaCoverViewPager.setCurrentItem(1, true); } - @SuppressLint("UnsafeOptInUsageError") private void setPlaybackParameters(MediaBrowser mediaBrowser) { Button playbackSpeedButton = bind.getRoot().findViewById(R.id.player_playback_speed_button); float currentSpeed = PreferenceUtil.getInstance(requireContext()).getPlaybackSpeed(); @@ -338,7 +330,6 @@ public class PlayerControllerFragment extends Fragment { skipSilenceToggleButton.setChecked(skipSilence); } - @SuppressLint("UnsafeOptInUsageError") private void resetPlaybackParameters(MediaBrowser mediaBrowser) { mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_100)); // TODO Resettare lo skip del silenzio diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java index 51147d96..fbf9b6bc 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java @@ -139,7 +139,6 @@ public class PlayerCoverFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void initializeBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } @@ -160,7 +159,6 @@ public class PlayerCoverFragment extends Fragment { }, MoreExecutors.directExecutor()); } - @SuppressLint("UnsafeOptInUsageError") private void setMediaBrowserListener(MediaBrowser mediaBrowser) { setCover(mediaBrowser.getMediaMetadata()); @@ -173,7 +171,6 @@ public class PlayerCoverFragment extends Fragment { }); } - @SuppressLint("UnsafeOptInUsageError") private void setCover(MediaMetadata mediaMetadata) { CustomGlideRequest.Builder .from(requireContext(), mediaMetadata.extras != null ? mediaMetadata.extras.getString("coverArtId") : null, CustomGlideRequest.SONG_PIC, null) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerQueueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerQueueFragment.java index 40ba90d5..ef1b1761 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerQueueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerQueueFragment.java @@ -72,7 +72,6 @@ public class PlayerQueueFragment extends Fragment { bind = null; } - @SuppressLint("UnsafeOptInUsageError") private void initializeBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java index 0f836edf..6e8bf2cd 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java @@ -223,7 +223,6 @@ public class PlaylistPageFragment extends Fragment { playlistPageViewModel.getPlaylistSongLiveList(getViewLifecycleOwner()).observe(getViewLifecycleOwner(), songs -> songHorizontalAdapter.setItems(songs)); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java index 7c6d0214..e93ec480 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java @@ -206,7 +206,6 @@ public class SearchFragment extends Fragment { bind.persistentSearchView.expand(); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java index 8d7540f1..d6f0bd56 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java @@ -168,7 +168,6 @@ public class SongListPageFragment extends Fragment { songListPageViewModel.getSongList(getViewLifecycleOwner()).observe(getViewLifecycleOwner(), songs -> songHorizontalAdapter.setItems(songs)); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java index 0c59dd00..a5d0bf70 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java @@ -199,7 +199,6 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements dismiss(); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java index d9a7b69c..842af34d 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java @@ -143,7 +143,6 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement dismiss(); } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/PodcastBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/PodcastBottomSheetDialog.java index 18038c23..443aecb2 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/PodcastBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/PodcastBottomSheetDialog.java @@ -143,7 +143,6 @@ public class PodcastBottomSheetDialog extends BottomSheetDialogFragment implemen } } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java index a0c2feb1..6b85a09f 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java @@ -232,7 +232,6 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements } } - @SuppressLint("UnsafeOptInUsageError") private void initializeMediaBrowser() { mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync(); } diff --git a/app/src/main/java/com/cappielloantonio/play/util/DownloadUtil.java b/app/src/main/java/com/cappielloantonio/play/util/DownloadUtil.java index 6ee01cad..1559b784 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/DownloadUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/DownloadUtil.java @@ -40,7 +40,6 @@ public final class DownloadUtil { private static DownloaderManager downloaderManager; private static DownloadNotificationHelper downloadNotificationHelper; - @SuppressLint("UnsafeOptInUsageError") public static synchronized HttpDataSource.Factory getHttpDataSourceFactory() { if (httpDataSourceFactory == null) { CookieManager cookieManager = new CookieManager(); @@ -52,7 +51,6 @@ public final class DownloadUtil { return httpDataSourceFactory; } - @SuppressLint("UnsafeOptInUsageError") public static synchronized DataSource.Factory getDataSourceFactory(Context context) { if (dataSourceFactory == null) { context = context.getApplicationContext(); @@ -63,7 +61,6 @@ public final class DownloadUtil { return dataSourceFactory; } - @SuppressLint("UnsafeOptInUsageError") public static synchronized DownloadNotificationHelper getDownloadNotificationHelper(Context context) { if (downloadNotificationHelper == null) { downloadNotificationHelper = new DownloadNotificationHelper(context, DOWNLOAD_NOTIFICATION_CHANNEL_ID); @@ -82,7 +79,6 @@ public final class DownloadUtil { return downloaderManager; } - @SuppressLint("UnsafeOptInUsageError") private static synchronized Cache getDownloadCache(Context context) { if (downloadCache == null) { File downloadContentDirectory = new File(getDownloadDirectory(context), DOWNLOAD_CONTENT_DIRECTORY); @@ -92,7 +88,6 @@ public final class DownloadUtil { return downloadCache; } - @SuppressLint("UnsafeOptInUsageError") private static synchronized void ensureDownloadManagerInitialized(Context context) { if (downloadManager == null) { downloadManager = @@ -107,7 +102,6 @@ public final class DownloadUtil { } } - @SuppressLint("UnsafeOptInUsageError") private static synchronized DatabaseProvider getDatabaseProvider(Context context) { if (databaseProvider == null) { databaseProvider = new StandaloneDatabaseProvider(context); @@ -127,7 +121,6 @@ public final class DownloadUtil { return downloadDirectory; } - @SuppressLint("UnsafeOptInUsageError") private static CacheDataSource.Factory buildReadOnlyCacheDataSource(DataSource.Factory upstreamFactory, Cache cache) { return new CacheDataSource.Factory() .setCache(cache) diff --git a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java index 5133cf0c..26d3a15d 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java @@ -49,7 +49,6 @@ public class MusicUtil { return Uri.parse(uri.toString()); } - @SuppressLint("UnsafeOptInUsageError") public static Uri getDownloadUri(String id) { Map params = App.getSubsonicClientInstance(App.getInstance(), false).getParams(); @@ -124,6 +123,18 @@ public class MusicUtil { return ""; } + public static String getReadableLyrics(String string) { + if (string != null) { + return string + .replaceAll(""", "\"") + .replaceAll("'", "'") + .replaceAll("&", "'") + .replaceAll(" ", "\n"); + } + + return ""; + } + public static String normalizedArtistName(String string) { if (string != null) { if (string.toLowerCase().contains(" feat.")) return Pattern.compile(" feat.", Pattern.CASE_INSENSITIVE).split(string)[0].trim();