diff --git a/app/src/main/java/com/cappielloantonio/play/model/Album.kt b/app/src/main/java/com/cappielloantonio/play/model/Album.kt deleted file mode 100644 index 3ab4ec28..00000000 --- a/app/src/main/java/com/cappielloantonio/play/model/Album.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.cappielloantonio.play.model - -import android.os.Parcelable -import androidx.annotation.Keep -import kotlinx.android.parcel.Parcelize - -@Keep -@Parcelize -class Album : Parcelable { - companion object { - const val RECENTLY_PLAYED = "RECENTLY_PLAYED" - const val MOST_PLAYED = "MOST_PLAYED" - const val RECENTLY_ADDED = "RECENTLY_ADDED" - const val DOWNLOADED = "DOWNLOADED" - const val STARRED = "STARRED" - const val FROM_ARTIST = "FROM_ARTIST" - const val NEW_RELEASES = "NEW_RELEASES" - const val ORDER_BY_NAME = "ORDER_BY_NAME" - const val ORDER_BY_ARTIST = "ORDER_BY_ARTIST" - const val ORDER_BY_YEAR = "ORDER_BY_YEAR" - const val ORDER_BY_RANDOM = "ORDER_BY_RANDOM" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/model/Artist.kt b/app/src/main/java/com/cappielloantonio/play/model/Artist.kt deleted file mode 100644 index 9c34580d..00000000 --- a/app/src/main/java/com/cappielloantonio/play/model/Artist.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.cappielloantonio.play.model - -import android.os.Parcelable -import androidx.annotation.Keep -import kotlinx.android.parcel.Parcelize - -@Keep -@Parcelize -class Artist : Parcelable { - companion object { - const val DOWNLOADED = "DOWNLOADED" - const val STARRED = "STARRED" - const val ORDER_BY_NAME = "ORDER_BY_NAME" - const val ORDER_BY_RANDOM = "ORDER_BY_RANDOM" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/model/Genre.kt b/app/src/main/java/com/cappielloantonio/play/model/Genre.kt deleted file mode 100644 index c82c4c5a..00000000 --- a/app/src/main/java/com/cappielloantonio/play/model/Genre.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.cappielloantonio.play.model - -import android.os.Parcelable -import androidx.annotation.Keep -import kotlinx.android.parcel.Parcelize - -@Keep -@Parcelize -class Genre : Parcelable { - companion object { - const val ORDER_BY_NAME = "ORDER_BY_NAME" - const val ORDER_BY_RANDOM = "ORDER_BY_RANDOM" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/model/Media.kt b/app/src/main/java/com/cappielloantonio/play/model/Media.kt deleted file mode 100644 index 1943e891..00000000 --- a/app/src/main/java/com/cappielloantonio/play/model/Media.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.cappielloantonio.play.model - -import android.os.Parcelable -import androidx.annotation.Keep -import kotlinx.android.parcel.Parcelize - -@Keep -@Parcelize -class Media : Parcelable { - companion object { - const val MEDIA_TYPE_MUSIC = "music" - const val MEDIA_TYPE_PODCAST = "podcast" - const val MEDIA_TYPE_AUDIOBOOK = "audiobook" - const val MEDIA_TYPE_VIDEO = "video" - - const val MEDIA_PLAYBACK_SPEED_080 = 0.8f - const val MEDIA_PLAYBACK_SPEED_100 = 1.0f - const val MEDIA_PLAYBACK_SPEED_125 = 1.25f - const val MEDIA_PLAYBACK_SPEED_150 = 1.50f - const val MEDIA_PLAYBACK_SPEED_175 = 1.75f - const val MEDIA_PLAYBACK_SPEED_200 = 2.0f - - const val RECENTLY_PLAYED = "RECENTLY_PLAYED" - const val MOST_PLAYED = "MOST_PLAYED" - const val RECENTLY_ADDED = "RECENTLY_ADDED" - const val BY_GENRE = "BY_GENRE" - const val BY_GENRES = "BY_GENRES" - const val BY_ARTIST = "BY_ARTIST" - const val BY_YEAR = "BY_YEAR" - const val STARRED = "STARRED" - const val DOWNLOADED = "DOWNLOADED" - const val FROM_ALBUM = "FROM_ALBUM" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/model/Playlist.kt b/app/src/main/java/com/cappielloantonio/play/model/Playlist.kt deleted file mode 100644 index b86089c7..00000000 --- a/app/src/main/java/com/cappielloantonio/play/model/Playlist.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.cappielloantonio.play.model - -import android.os.Parcelable -import androidx.annotation.Keep -import kotlinx.android.parcel.Parcelize - -@Keep -@Parcelize -class Playlist : Parcelable { - companion object { - const val ALL = "ALL" - const val DOWNLOADED = "DOWNLOADED" - const val ORDER_BY_NAME = "ORDER_BY_NAME" - const val ORDER_BY_RANDOM = "ORDER_BY_RANDOM" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/service/MediaService.kt b/app/src/main/java/com/cappielloantonio/play/service/MediaService.kt index f604c77b..a552451f 100644 --- a/app/src/main/java/com/cappielloantonio/play/service/MediaService.kt +++ b/app/src/main/java/com/cappielloantonio/play/service/MediaService.kt @@ -15,8 +15,8 @@ import androidx.media3.exoplayer.source.DefaultMediaSourceFactory import androidx.media3.session.* import androidx.media3.session.MediaSession.ControllerInfo import com.cappielloantonio.play.R -import com.cappielloantonio.play.model.Media import com.cappielloantonio.play.ui.activity.MainActivity +import com.cappielloantonio.play.util.Constants import com.cappielloantonio.play.util.DownloadUtil import com.cappielloantonio.play.util.UIUtil import com.google.android.gms.cast.framework.CastContext @@ -234,7 +234,7 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { override fun onMediaItemTransition(mediaItem: MediaItem?, reason: Int) { if (mediaItem == null) return - if (mediaItem.mediaMetadata.extras?.getString("type") == Media.MEDIA_TYPE_MUSIC) { + if (mediaItem.mediaMetadata.extras?.getString("type") == Constants.MEDIA_TYPE_MUSIC) { MediaManager.scrobble(mediaItem) MediaManager.saveChronology(mediaItem) } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumAdapter.java index e37dd85a..b8877f1e 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumAdapter.java @@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemLibraryAlbumBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.subsonic.models.AlbumID3; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import java.util.Collections; @@ -80,14 +81,14 @@ public class AlbumAdapter extends RecyclerView.Adapter private void onClick() { Bundle bundle = new Bundle(); - bundle.putParcelable("album_object", albums.get(getBindingAdapterPosition())); + bundle.putParcelable(Constants.ALBUM_OBJECT, albums.get(getBindingAdapterPosition())); click.onAlbumClick(bundle); } private boolean onLongClick() { Bundle bundle = new Bundle(); - bundle.putParcelable("album_object", albums.get(getBindingAdapterPosition())); + bundle.putParcelable(Constants.ALBUM_OBJECT, albums.get(getBindingAdapterPosition())); click.onAlbumLongClick(bundle); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumArtistPageOrSimilarAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumArtistPageOrSimilarAdapter.java index 7f6e154e..503fd847 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumArtistPageOrSimilarAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/AlbumArtistPageOrSimilarAdapter.java @@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemLibraryArtistPageOrSimilarAlbum import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.subsonic.models.AlbumID3; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import java.util.Collections; @@ -80,14 +81,14 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter(songs)); - bundle.putInt("position", getBindingAdapterPosition()); + bundle.putParcelableArrayList(Constants.TRACKS_OBJECT, new ArrayList<>(songs)); + bundle.putInt(Constants.ITEM_POSITION, getBindingAdapterPosition()); click.onMediaClick(bundle); } private boolean onLongClick() { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", songs.get(getBindingAdapterPosition())); + bundle.putParcelable(Constants.TRACK_OBJECT, songs.get(getBindingAdapterPosition())); click.onMediaLongClick(bundle); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreAdapter.java index 0162b3c4..10657420 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreAdapter.java @@ -9,8 +9,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.databinding.ItemLibraryGenreBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.subsonic.models.Genre; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import java.util.Collections; @@ -67,8 +67,8 @@ public class GenreAdapter extends RecyclerView.Adapter private void onClick() { Bundle bundle = new Bundle(); - bundle.putString(Media.BY_GENRE, Media.BY_GENRE); - bundle.putParcelable("genre_object", genres.get(getBindingAdapterPosition())); + bundle.putString(Constants.MEDIA_BY_GENRES, Constants.MEDIA_BY_GENRE); + bundle.putParcelable(Constants.GENRE_OBJECT, genres.get(getBindingAdapterPosition())); click.onGenreClick(bundle); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreCatalogueAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreCatalogueAdapter.java index f09aac41..099f2df5 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreCatalogueAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/GenreCatalogueAdapter.java @@ -11,8 +11,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.databinding.ItemLibraryCatalogueGenreBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.subsonic.models.Genre; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; @@ -106,8 +106,8 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter { Bundle bundle = new Bundle(); - bundle.putString(Media.BY_GENRE, Media.BY_GENRE); - bundle.putParcelable("genre_object", genres.get(getBindingAdapterPosition())); + bundle.putString(Constants.MEDIA_BY_GENRE, Constants.MEDIA_BY_GENRE); + bundle.putParcelable(Constants.GENRE_OBJECT, genres.get(getBindingAdapterPosition())); click.onGenreClick(bundle); }); @@ -116,10 +116,10 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter(items)); + bundle.putParcelableArrayList(Constants.TRACKS_OBJECT, new ArrayList<>(items)); bundle.putBoolean("is_chronology", true); - bundle.putInt("position", getBindingAdapterPosition()); + bundle.putInt(Constants.ITEM_POSITION, getBindingAdapterPosition()); click.onMediaClick(bundle); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlayerSongQueueAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlayerSongQueueAdapter.java index 9ccd9fd7..0ee73f6c 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlayerSongQueueAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlayerSongQueueAdapter.java @@ -17,6 +17,7 @@ import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.google.common.util.concurrent.ListenableFuture; @@ -98,8 +99,8 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter(songs)); - bundle.putInt("position", getBindingAdapterPosition()); + bundle.putParcelableArrayList(Constants.TRACKS_OBJECT, new ArrayList<>(songs)); + bundle.putInt(Constants.ITEM_POSITION, getBindingAdapterPosition()); click.onMediaClick(bundle); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlaylistDialogHorizontalAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlaylistDialogHorizontalAdapter.java index adbe2b7e..35c62578 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlaylistDialogHorizontalAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/PlaylistDialogHorizontalAdapter.java @@ -11,6 +11,7 @@ import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.ItemHorizontalPlaylistDialogBinding; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.subsonic.models.Playlist; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import java.util.Collections; @@ -71,7 +72,7 @@ public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter(songs)); - bundle.putInt("position", getBindingAdapterPosition()); + bundle.putParcelableArrayList(Constants.TRACKS_OBJECT, new ArrayList<>(songs)); + bundle.putInt(Constants.ITEM_POSITION, getBindingAdapterPosition()); click.onMediaClick(bundle); } private boolean onLongClick() { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", songs.get(getBindingAdapterPosition())); + bundle.putParcelable(Constants.TRACK_OBJECT, songs.get(getBindingAdapterPosition())); click.onMediaLongClick(bundle); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/adapter/YearAdapter.java b/app/src/main/java/com/cappielloantonio/play/ui/adapter/YearAdapter.java index bfba3ceb..a8741a90 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/adapter/YearAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/adapter/YearAdapter.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.databinding.ItemHomeYearBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Media; +import com.cappielloantonio.play.util.Constants; import java.util.Collections; import java.util.List; @@ -65,7 +65,7 @@ public class YearAdapter extends RecyclerView.Adapter { public void onClick() { Bundle bundle = new Bundle(); - bundle.putString(Media.BY_YEAR, Media.BY_YEAR); + bundle.putString(Constants.MEDIA_BY_YEAR, Constants.MEDIA_BY_YEAR); bundle.putInt("year_object", years.get(getBindingAdapterPosition())); click.onYearClick(bundle); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistChooserDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistChooserDialog.java index e6217718..1039d2a7 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistChooserDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistChooserDialog.java @@ -12,10 +12,11 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.PlaylistDialogHorizontalAdapter; import com.cappielloantonio.play.databinding.DialogPlaylistChooserBinding; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.subsonic.models.Playlist; +import com.cappielloantonio.play.ui.adapter.PlaylistDialogHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.PlaylistChooserViewModel; import java.util.Objects; @@ -59,13 +60,13 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba } private void setSongInfo() { - playlistChooserViewModel.setSongToAdd(requireArguments().getParcelable("song_object")); + playlistChooserViewModel.setSongToAdd(requireArguments().getParcelable(Constants.TRACK_OBJECT)); } private void setButtonAction() { ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", playlistChooserViewModel.getSongToAdd()); + bundle.putParcelable(Constants.TRACK_OBJECT, playlistChooserViewModel.getSongToAdd()); PlaylistEditorDialog dialog = new PlaylistEditorDialog(); dialog.setArguments(bundle); @@ -98,7 +99,7 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba @Override public void onPlaylistClick(Bundle bundle) { - Playlist playlist = bundle.getParcelable("playlist_object"); + Playlist playlist = bundle.getParcelable(Constants.PLAYLIST_OBJECT); playlistChooserViewModel.addSongToPlaylist(playlist.getId()); dismiss(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistEditorDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistEditorDialog.java index 7bd4c255..57b05d80 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/dialog/PlaylistEditorDialog.java @@ -14,8 +14,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.PlaylistDialogSongHorizontalAdapter; import com.cappielloantonio.play.databinding.DialogPlaylistEditorBinding; +import com.cappielloantonio.play.ui.adapter.PlaylistDialogSongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.PlaylistEditorViewModel; @@ -63,12 +64,12 @@ public class PlaylistEditorDialog extends DialogFragment { } private void setParameterInfo() { - if (requireArguments().getParcelable("song_object") != null) { - playlistEditorViewModel.setSongToAdd(requireArguments().getParcelable("song_object")); + if (requireArguments().getParcelable(Constants.TRACK_OBJECT) != null) { + playlistEditorViewModel.setSongToAdd(requireArguments().getParcelable(Constants.TRACK_OBJECT)); playlistEditorViewModel.setPlaylistToEdit(null); - } else if (requireArguments().getParcelable("playlist_object") != null) { + } else if (requireArguments().getParcelable(Constants.PLAYLIST_OBJECT) != null) { playlistEditorViewModel.setSongToAdd(null); - playlistEditorViewModel.setPlaylistToEdit(requireArguments().getParcelable("playlist_object")); + playlistEditorViewModel.setPlaylistToEdit(requireArguments().getParcelable(Constants.PLAYLIST_OBJECT)); if (playlistEditorViewModel.getPlaylistToEdit() != null) { bind.playlistNameTextView.setText(MusicUtil.getReadableString(playlistEditorViewModel.getPlaylistToEdit().getName())); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/dialog/RatingDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/dialog/RatingDialog.java index e503b909..e95ee508 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/dialog/RatingDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/dialog/RatingDialog.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.DialogRatingBinding; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.RatingViewModel; public class RatingDialog extends DialogFragment { @@ -50,12 +51,12 @@ public class RatingDialog extends DialogFragment { } private void setElementInfo() { - if (requireArguments().getParcelable("song_object") != null) { - ratingViewModel.setSong(requireArguments().getParcelable("song_object")); - } else if (requireArguments().getParcelable("album_object") != null) { - ratingViewModel.setAlbum(requireArguments().getParcelable("album_object")); - } else if (requireArguments().getParcelable("artist_object") != null) { - ratingViewModel.setArtist(requireArguments().getParcelable("artist_object")); + if (requireArguments().getParcelable(Constants.TRACK_OBJECT) != null) { + ratingViewModel.setSong(requireArguments().getParcelable(Constants.TRACK_OBJECT)); + } else if (requireArguments().getParcelable(Constants.ALBUM_OBJECT) != null) { + ratingViewModel.setAlbum(requireArguments().getParcelable(Constants.ALBUM_OBJECT)); + } else if (requireArguments().getParcelable(Constants.ARTIST_OBJECT) != null) { + ratingViewModel.setArtist(requireArguments().getParcelable(Constants.ARTIST_OBJECT)); } } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumCatalogueFragment.java index 713c92dc..2335359e 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumCatalogueFragment.java @@ -29,9 +29,9 @@ import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.FragmentAlbumCatalogueBinding; import com.cappielloantonio.play.helper.recyclerview.GridItemDecoration; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.adapter.AlbumCatalogueAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.AlbumCatalogueViewModel; @OptIn(markerClass = UnstableApi.class) @@ -154,16 +154,16 @@ public class AlbumCatalogueFragment extends Fragment implements ClickCallback { popup.setOnMenuItemClickListener(menuItem -> { if (menuItem.getItemId() == R.id.menu_album_sort_name) { - albumAdapter.sort(Album.ORDER_BY_NAME); + albumAdapter.sort(Constants.ALBUM_ORDER_BY_NAME); return true; } else if (menuItem.getItemId() == R.id.menu_album_sort_artist) { - albumAdapter.sort(Album.ORDER_BY_ARTIST); + albumAdapter.sort(Constants.ALBUM_ORDER_BY_ARTIST); return true; } else if (menuItem.getItemId() == R.id.menu_album_sort_year) { - albumAdapter.sort(Album.ORDER_BY_YEAR); + albumAdapter.sort(Constants.ALBUM_ORDER_BY_YEAR); return true; } else if (menuItem.getItemId() == R.id.menu_album_sort_random) { - albumAdapter.sort(Album.ORDER_BY_RANDOM); + albumAdapter.sort(Constants.ALBUM_ORDER_BY_RANDOM); return true; } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java index 463d17dd..cf4880ca 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java @@ -15,11 +15,11 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.AlbumHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumListPageBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.AlbumHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.AlbumListPageViewModel; @@ -53,27 +53,27 @@ public class AlbumListPageFragment extends Fragment implements ClickCallback { } private void init() { - if (requireArguments().getString(Album.RECENTLY_PLAYED) != null) { - albumListPageViewModel.title = Album.RECENTLY_PLAYED; + if (requireArguments().getString(Constants.ALBUM_RECENTLY_PLAYED) != null) { + albumListPageViewModel.title = Constants.ALBUM_RECENTLY_PLAYED; bind.pageTitleLabel.setText(R.string.album_list_page_recently_played); - } else if (requireArguments().getString(Album.MOST_PLAYED) != null) { - albumListPageViewModel.title = Album.MOST_PLAYED; + } else if (requireArguments().getString(Constants.ALBUM_MOST_PLAYED) != null) { + albumListPageViewModel.title = Constants.ALBUM_MOST_PLAYED; bind.pageTitleLabel.setText(R.string.album_list_page_most_played); - } else if (requireArguments().getString(Album.RECENTLY_ADDED) != null) { - albumListPageViewModel.title = Album.RECENTLY_ADDED; + } else if (requireArguments().getString(Constants.ALBUM_RECENTLY_ADDED) != null) { + albumListPageViewModel.title = Constants.ALBUM_RECENTLY_ADDED; bind.pageTitleLabel.setText(R.string.album_list_page_recently_added); - } else if (requireArguments().getString(Album.STARRED) != null) { - albumListPageViewModel.title = Album.STARRED; + } else if (requireArguments().getString(Constants.ALBUM_STARRED) != null) { + albumListPageViewModel.title = Constants.ALBUM_STARRED; bind.pageTitleLabel.setText(R.string.album_list_page_starred); - } else if (requireArguments().getString(Album.NEW_RELEASES) != null) { - albumListPageViewModel.title = Album.NEW_RELEASES; + } else if (requireArguments().getString(Constants.ALBUM_NEW_RELEASES) != null) { + albumListPageViewModel.title = Constants.ALBUM_NEW_RELEASES; bind.pageTitleLabel.setText(R.string.album_list_page_new_releases); - } else if (requireArguments().getString(Album.DOWNLOADED) != null) { - albumListPageViewModel.title = Album.DOWNLOADED; + } else if (requireArguments().getString(Constants.ALBUM_DOWNLOADED) != null) { + albumListPageViewModel.title = Constants.ALBUM_DOWNLOADED; bind.pageTitleLabel.setText(R.string.album_list_page_downloaded); - } else if (requireArguments().getParcelable("artist_object") != null) { - albumListPageViewModel.artist = requireArguments().getParcelable("artist_object"); - albumListPageViewModel.title = Album.FROM_ARTIST; + } else if (requireArguments().getParcelable(Constants.ARTIST_OBJECT) != null) { + albumListPageViewModel.artist = requireArguments().getParcelable(Constants.ARTIST_OBJECT); + albumListPageViewModel.title = Constants.ALBUM_FROM_ARTIST; bind.pageTitleLabel.setText(MusicUtil.getReadableString(albumListPageViewModel.artist.getName())); } } @@ -103,7 +103,7 @@ public class AlbumListPageFragment extends Fragment implements ClickCallback { albumHorizontalAdapter = new AlbumHorizontalAdapter( this, - (albumListPageViewModel.title.equals(Album.DOWNLOADED) || albumListPageViewModel.title.equals(Album.FROM_ARTIST)) + (albumListPageViewModel.title.equals(Constants.ALBUM_DOWNLOADED) || albumListPageViewModel.title.equals(Constants.ALBUM_FROM_ARTIST)) ); bind.albumListRecyclerView.setAdapter(albumHorizontalAdapter); 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 647042d3..974ad5fd 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 @@ -23,7 +23,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; @@ -31,6 +30,8 @@ import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.MusicUtil; @@ -116,7 +117,7 @@ public class AlbumPageFragment extends Fragment implements ClickCallback { } private void init() { - albumPageViewModel.setAlbum(requireArguments().getParcelable("album_object")); + albumPageViewModel.setAlbum(requireArguments().getParcelable(Constants.ALBUM_OBJECT)); } private void initAppBar() { @@ -142,7 +143,7 @@ public class AlbumPageFragment extends Fragment implements ClickCallback { bind.albumArtistLabel.setOnClickListener(v -> albumPageViewModel.getArtist().observe(getViewLifecycleOwner(), artist -> { if (artist != null) { Bundle bundle = new Bundle(); - bundle.putParcelable("artist_object", artist); + bundle.putParcelable(Constants.ARTIST_OBJECT, artist); activity.navController.navigate(R.id.action_albumPageFragment_to_artistPageFragment, bundle); } else Toast.makeText(requireContext(), getString(R.string.album_error_retrieving_artist), Toast.LENGTH_SHORT).show(); @@ -199,7 +200,7 @@ public class AlbumPageFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java index 317e1685..7afcc9e4 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java @@ -25,12 +25,12 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.ArtistCatalogueAdapter; import com.cappielloantonio.play.databinding.FragmentArtistCatalogueBinding; import com.cappielloantonio.play.helper.recyclerview.GridItemDecoration; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.ArtistCatalogueAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.ArtistCatalogueViewModel; @UnstableApi @@ -153,10 +153,10 @@ public class ArtistCatalogueFragment extends Fragment implements ClickCallback { popup.setOnMenuItemClickListener(menuItem -> { if (menuItem.getItemId() == R.id.menu_artist_sort_name) { - artistAdapter.sort(Artist.ORDER_BY_NAME); + artistAdapter.sort(Constants.ARTIST_ORDER_BY_NAME); return true; } else if (menuItem.getItemId() == R.id.menu_artist_sort_random) { - artistAdapter.sort(Artist.ORDER_BY_RANDOM); + artistAdapter.sort(Constants.ARTIST_ORDER_BY_RANDOM); return true; } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java index 0254bb6d..31d0894e 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java @@ -14,11 +14,11 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.ArtistHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentArtistListPageBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.ArtistHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.ArtistListPageViewModel; @UnstableApi @@ -52,11 +52,11 @@ public class ArtistListPageFragment extends Fragment implements ClickCallback { } private void init() { - if (requireArguments().getString(Artist.STARRED) != null) { - artistListPageViewModel.title = Artist.STARRED; + if (requireArguments().getString(Constants.ARTIST_STARRED) != null) { + artistListPageViewModel.title = Constants.ARTIST_STARRED; bind.pageTitleLabel.setText(R.string.artist_list_page_starred); - } else if (requireArguments().getString(Artist.DOWNLOADED) != null) { - artistListPageViewModel.title = Artist.DOWNLOADED; + } else if (requireArguments().getString(Constants.ARTIST_DOWNLOADED) != null) { + artistListPageViewModel.title = Constants.ARTIST_DOWNLOADED; bind.pageTitleLabel.setText(R.string.artist_list_page_downloaded); } } 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 b25c5774..ad2efaee 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 @@ -23,13 +23,13 @@ import com.cappielloantonio.play.databinding.FragmentArtistPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.adapter.AlbumArtistPageOrSimilarAdapter; import com.cappielloantonio.play.ui.adapter.ArtistSimilarAdapter; import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.ArtistPageViewModel; import com.google.common.util.concurrent.ListenableFuture; @@ -85,12 +85,12 @@ public class ArtistPageFragment extends Fragment implements ClickCallback { } private void init() { - artistPageViewModel.setArtist(requireArguments().getParcelable("artist_object")); + artistPageViewModel.setArtist(requireArguments().getParcelable(Constants.ARTIST_OBJECT)); bind.mostStreamedSongTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Media.BY_ARTIST, Media.BY_ARTIST); - bundle.putParcelable("artist_object", artistPageViewModel.getArtist()); + bundle.putString(Constants.MEDIA_BY_ARTIST, Constants.MEDIA_BY_ARTIST); + bundle.putParcelable(Constants.ARTIST_OBJECT, artistPageViewModel.getArtist()); activity.navController.navigate(R.id.action_artistPageFragment_to_songListPageFragment, bundle); }); } @@ -211,7 +211,7 @@ public class ArtistPageFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } 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 8d025527..52ce33cf 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 @@ -20,12 +20,13 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.DownloadHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentDownloadBinding; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.DownloadHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.DownloadViewModel; import com.google.android.gms.cast.framework.CastButtonFactory; import com.google.common.util.concurrent.ListenableFuture; @@ -153,7 +154,7 @@ public class DownloadFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java index 1a28e658..39447c74 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java @@ -16,9 +16,9 @@ import androidx.media3.common.util.UnstableApi; import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.FragmentFilterBinding; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.subsonic.models.Genre; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.FilterViewModel; import com.google.android.material.chip.Chip; @@ -54,7 +54,7 @@ public class FilterFragment extends Fragment { private void init() { Bundle bundle = new Bundle(); - bundle.putString(Media.BY_GENRES, Media.BY_GENRES); + bundle.putString(Constants.MEDIA_BY_GENRES, Constants.MEDIA_BY_GENRES); bundle.putStringArrayList("filters_list", filterViewModel.getFilters()); bundle.putStringArrayList("filter_name_list", filterViewModel.getFilterNames()); bind.finishFilteringTextViewClickable.setOnClickListener(v -> { diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java index 89bfe327..59d069a5 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java @@ -26,12 +26,12 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.GenreCatalogueAdapter; import com.cappielloantonio.play.databinding.FragmentGenreCatalogueBinding; import com.cappielloantonio.play.helper.recyclerview.GridItemDecoration; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.GenreCatalogueAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.GenreCatalogueViewModel; @OptIn(markerClass = UnstableApi.class) @@ -151,10 +151,10 @@ public class GenreCatalogueFragment extends Fragment implements ClickCallback { popup.setOnMenuItemClickListener(menuItem -> { if (menuItem.getItemId() == R.id.menu_genre_sort_name) { - genreCatalogueAdapter.sort(Genre.ORDER_BY_NAME); + genreCatalogueAdapter.sort(Constants.GENRE_ORDER_BY_NAME); return true; } else if (menuItem.getItemId() == R.id.menu_genre_sort_random) { - genreCatalogueAdapter.sort(Genre.ORDER_BY_RANDOM); + genreCatalogueAdapter.sort(Constants.GENRE_ORDER_BY_RANDOM); return true; } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java index 75b561ec..5ce0aba6 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java @@ -27,6 +27,16 @@ import androidx.recyclerview.widget.SnapHelper; import androidx.viewpager2.widget.ViewPager2; import com.cappielloantonio.play.R; +import com.cappielloantonio.play.databinding.FragmentHomeBinding; +import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; +import com.cappielloantonio.play.helper.recyclerview.DotsIndicatorDecoration; +import com.cappielloantonio.play.helper.recyclerview.GridItemDecoration; +import com.cappielloantonio.play.interfaces.ClickCallback; +import com.cappielloantonio.play.service.MediaManager; +import com.cappielloantonio.play.service.MediaService; +import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.subsonic.models.Playlist; +import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.adapter.AlbumAdapter; import com.cappielloantonio.play.ui.adapter.AlbumHorizontalAdapter; import com.cappielloantonio.play.ui.adapter.ArtistAdapter; @@ -37,19 +47,7 @@ import com.cappielloantonio.play.ui.adapter.PodcastEpisodeAdapter; import com.cappielloantonio.play.ui.adapter.SimilarTrackAdapter; import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.ui.adapter.YearAdapter; -import com.cappielloantonio.play.databinding.FragmentHomeBinding; -import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; -import com.cappielloantonio.play.helper.recyclerview.DotsIndicatorDecoration; -import com.cappielloantonio.play.helper.recyclerview.GridItemDecoration; -import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.model.Media; -import com.cappielloantonio.play.service.MediaManager; -import com.cappielloantonio.play.service.MediaService; -import com.cappielloantonio.play.subsonic.models.Child; -import com.cappielloantonio.play.subsonic.models.Playlist; -import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.util.UIUtil; import com.cappielloantonio.play.viewmodel.HomeViewModel; @@ -191,37 +189,37 @@ public class HomeFragment extends Fragment implements ClickCallback { bind.starredTracksTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Media.STARRED, Media.STARRED); + bundle.putString(Constants.MEDIA_STARRED, Constants.MEDIA_STARRED); activity.navController.navigate(R.id.action_homeFragment_to_songListPageFragment, bundle); }); bind.starredAlbumsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Album.STARRED, Album.STARRED); + bundle.putString(Constants.ALBUM_STARRED, Constants.ALBUM_STARRED); activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); }); bind.starredArtistsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Artist.STARRED, Artist.STARRED); + bundle.putString(Constants.ARTIST_STARRED, Constants.ARTIST_STARRED); activity.navController.navigate(R.id.action_homeFragment_to_artistListPageFragment, bundle); }); bind.recentlyAddedAlbumsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Album.RECENTLY_ADDED, Album.RECENTLY_ADDED); + bundle.putString(Constants.ALBUM_RECENTLY_ADDED, Constants.ALBUM_RECENTLY_ADDED); activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); }); bind.recentlyPlayedAlbumsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Album.RECENTLY_PLAYED, Album.RECENTLY_PLAYED); + bundle.putString(Constants.ALBUM_RECENTLY_PLAYED, Constants.ALBUM_RECENTLY_PLAYED); activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); }); bind.mostPlayedAlbumsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Album.MOST_PLAYED, Album.MOST_PLAYED); + bundle.putString(Constants.ALBUM_MOST_PLAYED, Constants.ALBUM_MOST_PLAYED); activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); }); @@ -632,7 +630,7 @@ public class HomeFragment extends Fragment implements ClickCallback { genericPlaylistCickableTextView.setOnClickListener(view -> { Bundle bundle = new Bundle(); - bundle.putParcelable("playlist_object", playlist); + bundle.putParcelable(Constants.PLAYLIST_OBJECT, playlist); bundle.putBoolean("is_offline", false); activity.navController.navigate(R.id.action_homeFragment_to_playlistPageFragment, bundle); }); @@ -743,22 +741,22 @@ public class HomeFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { if (bundle.containsKey("is_mix")) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelable("song_object")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelable(Constants.TRACK_OBJECT)); activity.setBottomSheetInPeek(true); if (mediaBrowserListenableFuture != null) { - homeViewModel.getMediaInstantMix(getViewLifecycleOwner(), bundle.getParcelable("song_object")).observe(getViewLifecycleOwner(), songs -> { + homeViewModel.getMediaInstantMix(getViewLifecycleOwner(), bundle.getParcelable(Constants.TRACK_OBJECT)).observe(getViewLifecycleOwner(), songs -> { if (songs.size() > 0) { MediaManager.enqueue(mediaBrowserListenableFuture, requireContext(), songs, true); } }); } } else if (bundle.containsKey("is_chronology")) { - List media = bundle.getParcelableArrayList("songs_object"); - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), media, bundle.getInt("position")); + List media = bundle.getParcelableArrayList(Constants.TRACKS_OBJECT); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), media, bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } else { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } } @@ -786,7 +784,7 @@ public class HomeFragment extends Fragment implements ClickCallback { .show(); if (mediaBrowserListenableFuture != null) { - homeViewModel.getArtistInstantMix(bundle.getParcelable("artist_object")).observe(getViewLifecycleOwner(), songs -> { + homeViewModel.getArtistInstantMix(bundle.getParcelable(Constants.ARTIST_OBJECT)).observe(getViewLifecycleOwner(), songs -> { if (songs.size() > 0) { MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), songs, 0); activity.setBottomSheetInPeek(true); @@ -795,7 +793,7 @@ public class HomeFragment extends Fragment implements ClickCallback { } } else if (bundle.containsKey("is_best_of") && bundle.getBoolean("is_best_of")) { if (mediaBrowserListenableFuture != null) { - homeViewModel.getArtistBestOf(bundle.getParcelable("artist_object")).observe(getViewLifecycleOwner(), songs -> { + homeViewModel.getArtistBestOf(bundle.getParcelable(Constants.ARTIST_OBJECT)).observe(getViewLifecycleOwner(), songs -> { if (songs.size() > 0) { MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), songs, 0); activity.setBottomSheetInPeek(true); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java index ad85fa0b..25796883 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java @@ -18,16 +18,16 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; +import com.cappielloantonio.play.databinding.FragmentLibraryBinding; +import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; +import com.cappielloantonio.play.interfaces.ClickCallback; +import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.adapter.AlbumAdapter; import com.cappielloantonio.play.ui.adapter.ArtistAdapter; import com.cappielloantonio.play.ui.adapter.GenreAdapter; import com.cappielloantonio.play.ui.adapter.PlaylistHorizontalAdapter; -import com.cappielloantonio.play.databinding.FragmentLibraryBinding; -import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; -import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Playlist; -import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.dialog.PlaylistEditorDialog; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.LibraryViewModel; import com.google.android.gms.cast.framework.CastButtonFactory; @@ -114,7 +114,7 @@ public class LibraryFragment extends Fragment implements ClickCallback { bind.genreCatalogueTextViewClickable.setOnClickListener(v -> activity.navController.navigate(R.id.action_libraryFragment_to_genreCatalogueFragment)); bind.playlistCatalogueTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putString(Playlist.ALL, Playlist.ALL); + bundle.putString(Constants.PLAYLIST_ALL, Constants.PLAYLIST_ALL); activity.navController.navigate(R.id.action_libraryFragment_to_playlistCatalogueFragment, bundle); }); 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 bf75f33e..3076f115 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 @@ -25,9 +25,9 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.FragmentPlayerBottomSheetBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.fragment.pager.PlayerControllerVerticalPager; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel; import com.google.android.material.elevation.SurfaceColors; @@ -159,13 +159,13 @@ public class PlayerBottomSheetFragment extends Fragment { private void setMediaControllerUI(MediaBrowser mediaBrowser) { if (mediaBrowser.getMediaMetadata().extras != null) { - switch (mediaBrowser.getMediaMetadata().extras.getString("type", Media.MEDIA_TYPE_MUSIC)) { - case Media.MEDIA_TYPE_PODCAST: + switch (mediaBrowser.getMediaMetadata().extras.getString("type", Constants.MEDIA_TYPE_MUSIC)) { + case Constants.MEDIA_TYPE_PODCAST: bind.playerHeaderLayout.playerHeaderFastForwardMediaButton.setVisibility(View.VISIBLE); bind.playerHeaderLayout.playerHeaderRewindMediaButton.setVisibility(View.VISIBLE); bind.playerHeaderLayout.playerHeaderNextMediaButton.setVisibility(View.GONE); break; - case Media.MEDIA_TYPE_MUSIC: + case Constants.MEDIA_TYPE_MUSIC: default: bind.playerHeaderLayout.playerHeaderFastForwardMediaButton.setVisibility(View.GONE); bind.playerHeaderLayout.playerHeaderRewindMediaButton.setVisibility(View.GONE); 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 e4f1407b..d46a04c3 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 @@ -25,11 +25,11 @@ import androidx.viewpager2.widget.ViewPager2; import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.InnerFragmentPlayerControllerBinding; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.dialog.RatingDialog; import com.cappielloantonio.play.ui.fragment.pager.PlayerControllerHorizontalPager; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.util.Preferences; import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel; @@ -190,8 +190,8 @@ public class PlayerControllerFragment extends Fragment { initPlaybackSpeedButton(mediaBrowser); if (mediaBrowser.getMediaMetadata().extras != null) { - switch (mediaBrowser.getMediaMetadata().extras.getString("type", Media.MEDIA_TYPE_MUSIC)) { - case Media.MEDIA_TYPE_PODCAST: + switch (mediaBrowser.getMediaMetadata().extras.getString("type", Constants.MEDIA_TYPE_MUSIC)) { + case Constants.MEDIA_TYPE_PODCAST: bind.getRoot().setShowShuffleButton(false); bind.getRoot().setShowRewindButton(true); bind.getRoot().setShowPreviousButton(false); @@ -202,7 +202,7 @@ public class PlayerControllerFragment extends Fragment { bind.getRoot().findViewById(R.id.player_skip_silence_toggle_button).setVisibility(View.VISIBLE); setPlaybackParameters(mediaBrowser); break; - case Media.MEDIA_TYPE_MUSIC: + case Constants.MEDIA_TYPE_MUSIC: default: bind.getRoot().setShowShuffleButton(true); bind.getRoot().setShowRewindButton(false); @@ -243,7 +243,7 @@ public class PlayerControllerFragment extends Fragment { buttonFavorite.setOnClickListener(v -> playerBottomSheetViewModel.setFavorite(requireContext(), media)); buttonFavorite.setOnLongClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", media); + bundle.putParcelable(Constants.TRACK_OBJECT, media); RatingDialog dialog = new RatingDialog(); dialog.setArguments(bundle); @@ -264,7 +264,7 @@ public class PlayerControllerFragment extends Fragment { if (artist != null) { playerArtistNameLabel.setOnClickListener(view -> { Bundle bundle = new Bundle(); - bundle.putParcelable("artist_object", artist); + bundle.putParcelable(Constants.ARTIST_OBJECT, artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); activity.collapseBottomSheet(); }); @@ -276,30 +276,30 @@ public class PlayerControllerFragment extends Fragment { playbackSpeedButton.setOnClickListener(view -> { float currentSpeed = Preferences.getPlaybackSpeed(); - if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_080) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_100)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_100)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_100); - } else if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_100) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_125)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_125)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_125); - } else if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_125) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_150)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_150)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_150); - } else if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_150) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_175)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_175)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_175); - } else if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_175) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_200)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_200)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_200); - } else if (currentSpeed == Media.MEDIA_PLAYBACK_SPEED_200) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_080)); - playbackSpeedButton.setText(getString(R.string.player_playback_speed, Media.MEDIA_PLAYBACK_SPEED_080)); - Preferences.setPlaybackSpeed(Media.MEDIA_PLAYBACK_SPEED_080); + if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_080) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_100)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_100)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_100); + } else if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_100) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_125)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_125)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_125); + } else if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_125) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_150)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_150)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_150); + } else if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_150) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_175)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_175)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_175); + } else if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_175) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_200)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_200)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_200); + } else if (currentSpeed == Constants.MEDIA_PLAYBACK_SPEED_200) { + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_080)); + playbackSpeedButton.setText(getString(R.string.player_playback_speed, Constants.MEDIA_PLAYBACK_SPEED_080)); + Preferences.setPlaybackSpeed(Constants.MEDIA_PLAYBACK_SPEED_080); } }); @@ -329,7 +329,7 @@ public class PlayerControllerFragment extends Fragment { } private void resetPlaybackParameters(MediaBrowser mediaBrowser) { - mediaBrowser.setPlaybackParameters(new PlaybackParameters(Media.MEDIA_PLAYBACK_SPEED_100)); + mediaBrowser.setPlaybackParameters(new PlaybackParameters(Constants.MEDIA_PLAYBACK_SPEED_100)); // TODO Resettare lo skip del silenzio } } \ No newline at end of file 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 02b8d5dc..afcba424 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 @@ -26,6 +26,7 @@ import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.dialog.PlaylistChooserDialog; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel; @@ -97,7 +98,7 @@ public class PlayerCoverFragment extends Fragment { bind.innerButtonTopRight.setOnClickListener(view -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", song); + bundle.putParcelable(Constants.TRACK_OBJECT, song); PlaylistChooserDialog dialog = new PlaylistChooserDialog(); dialog.setArguments(bundle); 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 1e376873..7b9afc0e 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 @@ -16,12 +16,13 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.cappielloantonio.play.ui.adapter.PlayerSongQueueAdapter; import com.cappielloantonio.play.databinding.InnerFragmentPlayerQueueBinding; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.ui.adapter.PlayerSongQueueAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel; import com.google.common.util.concurrent.ListenableFuture; @@ -151,6 +152,6 @@ public class PlayerQueueFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); } } \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java index efc6d05b..8c90fb03 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java @@ -24,13 +24,13 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.PlaylistHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentPlaylistCatalogueBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.subsonic.models.Playlist; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.PlaylistHorizontalAdapter; import com.cappielloantonio.play.ui.dialog.PlaylistEditorDialog; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.viewmodel.PlaylistCatalogueViewModel; import java.util.ArrayList; @@ -72,10 +72,10 @@ public class PlaylistCatalogueFragment extends Fragment implements ClickCallback } private void init() { - if (requireArguments().getString(com.cappielloantonio.play.model.Playlist.ALL) != null) { - playlistCatalogueViewModel.setType(com.cappielloantonio.play.model.Playlist.ALL); - } else if (requireArguments().getString(com.cappielloantonio.play.model.Playlist.DOWNLOADED) != null) { - playlistCatalogueViewModel.setType(com.cappielloantonio.play.model.Playlist.DOWNLOADED); + if (requireArguments().getString(Constants.PLAYLIST_ALL) != null) { + playlistCatalogueViewModel.setType(Constants.PLAYLIST_ALL); + } else if (requireArguments().getString(Constants.PLAYLIST_DOWNLOADED) != null) { + playlistCatalogueViewModel.setType(Constants.PLAYLIST_DOWNLOADED); } } @@ -183,10 +183,10 @@ public class PlaylistCatalogueFragment extends Fragment implements ClickCallback popup.setOnMenuItemClickListener(menuItem -> { if (menuItem.getItemId() == R.id.menu_playlist_sort_name) { - playlistHorizontalAdapter.sort(Genre.ORDER_BY_NAME); + playlistHorizontalAdapter.sort(Constants.GENRE_ORDER_BY_NAME); return true; } else if (menuItem.getItemId() == R.id.menu_playlist_sort_random) { - playlistHorizontalAdapter.sort(Genre.ORDER_BY_RANDOM); + playlistHorizontalAdapter.sort(Constants.GENRE_ORDER_BY_RANDOM); return true; } 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 1a7b1ff2..5155529f 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 @@ -22,7 +22,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.GranularRoundedCorners; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentPlaylistPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; @@ -30,6 +29,8 @@ import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.MusicUtil; @@ -128,7 +129,7 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback { } private void init() { - playlistPageViewModel.setPlaylist(requireArguments().getParcelable("playlist_object")); + playlistPageViewModel.setPlaylist(requireArguments().getParcelable(Constants.PLAYLIST_OBJECT)); playlistPageViewModel.setOffline(requireArguments().getBoolean("is_offline")); } @@ -236,7 +237,7 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } 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 7334e48c..9a40f1f6 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 @@ -18,15 +18,16 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.AlbumAdapter; -import com.cappielloantonio.play.ui.adapter.ArtistAdapter; -import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentSearchBinding; import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.AlbumAdapter; +import com.cappielloantonio.play.ui.adapter.ArtistAdapter; +import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.SearchViewModel; import com.google.common.util.concurrent.ListenableFuture; @@ -228,7 +229,7 @@ public class SearchFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } 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 1b2ea833..d7072a50 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 @@ -17,13 +17,13 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.R; -import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentSongListPageBinding; import com.cappielloantonio.play.interfaces.ClickCallback; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.ui.adapter.SongHorizontalAdapter; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.SongListPageViewModel; import com.google.common.util.concurrent.ListenableFuture; @@ -75,50 +75,50 @@ public class SongListPageFragment extends Fragment implements ClickCallback { } private void init() { - if (requireArguments().getString(Media.RECENTLY_PLAYED) != null) { - songListPageViewModel.title = Media.RECENTLY_PLAYED; + if (requireArguments().getString(Constants.MEDIA_RECENTLY_PLAYED) != null) { + songListPageViewModel.title = Constants.MEDIA_RECENTLY_PLAYED; songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_recently_played); bind.pageTitleLabel.setText(R.string.song_list_page_recently_played); - } else if (requireArguments().getString(Media.MOST_PLAYED) != null) { - songListPageViewModel.title = Media.MOST_PLAYED; + } else if (requireArguments().getString(Constants.MEDIA_MOST_PLAYED) != null) { + songListPageViewModel.title = Constants.MEDIA_MOST_PLAYED; songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_most_played); bind.pageTitleLabel.setText(R.string.song_list_page_most_played); - } else if (requireArguments().getString(Media.RECENTLY_ADDED) != null) { - songListPageViewModel.title = Media.RECENTLY_ADDED; + } else if (requireArguments().getString(Constants.MEDIA_RECENTLY_ADDED) != null) { + songListPageViewModel.title = Constants.MEDIA_RECENTLY_ADDED; songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_recently_added); bind.pageTitleLabel.setText(R.string.song_list_page_recently_added); - } else if (requireArguments().getString(Media.BY_GENRE) != null) { - songListPageViewModel.title = Media.BY_GENRE; - songListPageViewModel.genre = requireArguments().getParcelable("genre_object"); + } else if (requireArguments().getString(Constants.MEDIA_BY_GENRE) != null) { + songListPageViewModel.title = Constants.MEDIA_BY_GENRE; + songListPageViewModel.genre = requireArguments().getParcelable(Constants.GENRE_OBJECT); songListPageViewModel.toolbarTitle = MusicUtil.getReadableString(songListPageViewModel.genre.getGenre()); bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.genre.getGenre())); - } else if (requireArguments().getString(Media.BY_ARTIST) != null) { - songListPageViewModel.title = Media.BY_ARTIST; - songListPageViewModel.artist = requireArguments().getParcelable("artist_object"); + } else if (requireArguments().getString(Constants.MEDIA_BY_ARTIST) != null) { + songListPageViewModel.title = Constants.MEDIA_BY_ARTIST; + songListPageViewModel.artist = requireArguments().getParcelable(Constants.ARTIST_OBJECT); songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_top, MusicUtil.getReadableString(songListPageViewModel.artist.getName())); bind.pageTitleLabel.setText(getString(R.string.song_list_page_top, MusicUtil.getReadableString(songListPageViewModel.artist.getName()))); - } else if (requireArguments().getString(Media.BY_GENRES) != null) { - songListPageViewModel.title = Media.BY_GENRES; + } else if (requireArguments().getString(Constants.MEDIA_BY_GENRES) != null) { + songListPageViewModel.title = Constants.MEDIA_BY_GENRES; songListPageViewModel.filters = requireArguments().getStringArrayList("filters_list"); songListPageViewModel.filterNames = requireArguments().getStringArrayList("filter_name_list"); songListPageViewModel.toolbarTitle = songListPageViewModel.getFiltersTitle(); bind.pageTitleLabel.setText(songListPageViewModel.getFiltersTitle()); - } else if (requireArguments().getString(Media.BY_YEAR) != null) { - songListPageViewModel.title = Media.BY_YEAR; + } else if (requireArguments().getString(Constants.MEDIA_BY_YEAR) != null) { + songListPageViewModel.title = Constants.MEDIA_BY_YEAR; songListPageViewModel.year = requireArguments().getInt("year_object"); songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_year, songListPageViewModel.year); bind.pageTitleLabel.setText(getString(R.string.song_list_page_year, songListPageViewModel.year)); - } else if (requireArguments().getString(Media.STARRED) != null) { - songListPageViewModel.title = Media.STARRED; + } else if (requireArguments().getString(Constants.MEDIA_STARRED) != null) { + songListPageViewModel.title = Constants.MEDIA_STARRED; songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_starred); bind.pageTitleLabel.setText(R.string.song_list_page_starred); - } else if (requireArguments().getString(Media.DOWNLOADED) != null) { - songListPageViewModel.title = Media.DOWNLOADED; + } else if (requireArguments().getString(Constants.MEDIA_DOWNLOADED) != null) { + songListPageViewModel.title = Constants.MEDIA_DOWNLOADED; songListPageViewModel.toolbarTitle = getString(R.string.song_list_page_downloaded); bind.pageTitleLabel.setText(getString(R.string.song_list_page_downloaded)); - } else if (requireArguments().getParcelable("album_object") != null) { - songListPageViewModel.album = requireArguments().getParcelable("album_object"); - songListPageViewModel.title = Media.FROM_ALBUM; + } else if (requireArguments().getParcelable(Constants.ALBUM_OBJECT) != null) { + songListPageViewModel.album = requireArguments().getParcelable(Constants.ALBUM_OBJECT); + songListPageViewModel.title = Constants.MEDIA_FROM_ALBUM; songListPageViewModel.toolbarTitle = MusicUtil.getReadableString(songListPageViewModel.album.getName()); bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.album.getName())); } @@ -176,7 +176,7 @@ public class SongListPageFragment extends Fragment implements ClickCallback { @Override public void onMediaClick(Bundle bundle) { - MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList("songs_object"), bundle.getInt("position")); + MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), bundle.getParcelableArrayList(Constants.TRACKS_OBJECT), bundle.getInt(Constants.ITEM_POSITION)); activity.setBottomSheetInPeek(true); } 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 fede89c6..2698573a 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 @@ -30,6 +30,7 @@ import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.subsonic.models.AlbumID3; import com.cappielloantonio.play.subsonic.models.Child; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.MusicUtil; @@ -54,7 +55,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.bottom_sheet_album_dialog, container, false); - album = this.requireArguments().getParcelable("album_object"); + album = this.requireArguments().getParcelable(Constants.ALBUM_OBJECT); albumBottomSheetViewModel = new ViewModelProvider(requireActivity()).get(AlbumBottomSheetViewModel.class); albumBottomSheetViewModel.setAlbum(album); @@ -175,7 +176,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements goToArtist.setOnClickListener(v -> albumBottomSheetViewModel.getArtist().observe(getViewLifecycleOwner(), artist -> { if (artist != null) { Bundle bundle = new Bundle(); - bundle.putParcelable("artist_object", artist); + bundle.putParcelable(Constants.ARTIST_OBJECT, artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); } else { Toast.makeText(requireContext(), getString(R.string.album_error_retrieving_artist), Toast.LENGTH_SHORT).show(); 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 8e5fe6a8..86448deb 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 @@ -25,6 +25,7 @@ import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.ArtistBottomSheetViewModel; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -44,7 +45,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.bottom_sheet_artist_dialog, container, false); - artist = this.requireArguments().getParcelable("artist_object"); + artist = this.requireArguments().getParcelable(Constants.ARTIST_OBJECT); artistBottomSheetViewModel = new ViewModelProvider(requireActivity()).get(ArtistBottomSheetViewModel.class); artistBottomSheetViewModel.setArtist(artist); 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 c470ec94..f5647f16 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 @@ -28,6 +28,7 @@ import com.cappielloantonio.play.subsonic.models.Child; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.dialog.PlaylistChooserDialog; import com.cappielloantonio.play.ui.dialog.RatingDialog; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.MusicUtil; @@ -35,8 +36,6 @@ import com.cappielloantonio.play.viewmodel.SongBottomSheetViewModel; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.common.util.concurrent.ListenableFuture; -import java.util.List; - @UnstableApi public class SongBottomSheetDialog extends BottomSheetDialogFragment implements View.OnClickListener { private static final String TAG = "SongBottomSheetDialog"; @@ -51,7 +50,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.bottom_sheet_song_dialog, container, false); - song = requireArguments().getParcelable("song_object"); + song = requireArguments().getParcelable(Constants.TRACK_OBJECT); songBottomSheetViewModel = new ViewModelProvider(requireActivity()).get(SongBottomSheetViewModel.class); songBottomSheetViewModel.setSong(song); @@ -98,7 +97,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements }); favoriteToggle.setOnLongClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", song); + bundle.putParcelable(Constants.TRACK_OBJECT, song); RatingDialog dialog = new RatingDialog(); dialog.setArguments(bundle); @@ -143,7 +142,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements TextView rate = view.findViewById(R.id.rate_text_view); rate.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", song); + bundle.putParcelable(Constants.TRACK_OBJECT, song); RatingDialog dialog = new RatingDialog(); dialog.setArguments(bundle); @@ -175,7 +174,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements TextView addToPlaylist = view.findViewById(R.id.add_to_playlist_text_view); addToPlaylist.setOnClickListener(v -> { Bundle bundle = new Bundle(); - bundle.putParcelable("song_object", song); + bundle.putParcelable(Constants.TRACK_OBJECT, song); PlaylistChooserDialog dialog = new PlaylistChooserDialog(); dialog.setArguments(bundle); @@ -188,7 +187,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements goToAlbum.setOnClickListener(v -> songBottomSheetViewModel.getAlbum().observe(getViewLifecycleOwner(), album -> { if (album != null) { Bundle bundle = new Bundle(); - bundle.putParcelable("album_object", album); + bundle.putParcelable(Constants.ALBUM_OBJECT, album); NavHostFragment.findNavController(this).navigate(R.id.albumPageFragment, bundle); } else Toast.makeText(requireContext(), getString(R.string.song_bottom_sheet_error_retrieving_album), Toast.LENGTH_SHORT).show(); @@ -200,7 +199,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements goToArtist.setOnClickListener(v -> songBottomSheetViewModel.getArtist().observe(getViewLifecycleOwner(), artist -> { if (artist != null) { Bundle bundle = new Bundle(); - bundle.putParcelable("artist_object", artist); + bundle.putParcelable(Constants.ARTIST_OBJECT, artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); } else Toast.makeText(requireContext(), getString(R.string.song_bottom_sheet_error_retrieving_artist), Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/cappielloantonio/play/util/Constants.kt b/app/src/main/java/com/cappielloantonio/play/util/Constants.kt index 92a558d7..59fe4204 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/Constants.kt +++ b/app/src/main/java/com/cappielloantonio/play/util/Constants.kt @@ -2,4 +2,61 @@ package com.cappielloantonio.play.util object Constants { const val SHARED_PREF_KEY = "play-shared-preferences" + + const val ITEM_POSITION = "ITEM_POSITION" + + const val TRACK_OBJECT = "TRACK_OBJECT" + const val TRACKS_OBJECT = "TRACKS_OBJECT" + + const val ALBUM_OBJECT = "ALBUM_OBJECT" + const val ALBUM_RECENTLY_PLAYED = "ALBUM_RECENTLY_PLAYED" + const val ALBUM_MOST_PLAYED = "ALBUM_MOST_PLAYED" + const val ALBUM_RECENTLY_ADDED = "ALBUM_RECENTLY_ADDED" + const val ALBUM_DOWNLOADED = "ALBUM_DOWNLOADED" + const val ALBUM_STARRED = "ALBUM_STARRED" + const val ALBUM_FROM_ARTIST = "ALBUM_FROM_ARTIST" + const val ALBUM_NEW_RELEASES = "ALBUM_NEW_RELEASES" + const val ALBUM_ORDER_BY_NAME = "ALBUM_ORDER_BY_NAME" + const val ALBUM_ORDER_BY_ARTIST = "ALBUM_ORDER_BY_ARTIST" + const val ALBUM_ORDER_BY_YEAR = "ALBUM_ORDER_BY_YEAR" + const val ALBUM_ORDER_BY_RANDOM = "ALBUM_ORDER_BY_RANDOM" + + const val ARTIST_OBJECT = "ARTIST_OBJECT" + const val ARTIST_DOWNLOADED = "ARTIST_DOWNLOADED" + const val ARTIST_STARRED = "ARTIST_STARRED" + const val ARTIST_ORDER_BY_NAME = "ARTIST_ORDER_BY_NAME" + const val ARTIST_ORDER_BY_RANDOM = "ARTIST_ORDER_BY_RANDOM" + + const val GENRE_OBJECT = "GENRE_OBJECT" + const val GENRE_ORDER_BY_NAME = "GENRE_ORDER_BY_NAME" + const val GENRE_ORDER_BY_RANDOM = "GENRE_ORDER_BY_RANDOM" + + const val PLAYLIST_OBJECT = "PLAYLIST_OBJECT" + const val PLAYLIST_ALL = "ALL" + const val PLAYLIST_DOWNLOADED = "DOWNLOADED" + const val PLAYLIST_ORDER_BY_NAME = "ORDER_BY_NAME" + const val PLAYLIST_ORDER_BY_RANDOM = "ORDER_BY_RANDOM" + + const val MEDIA_TYPE_MUSIC = "music" + const val MEDIA_TYPE_PODCAST = "podcast" + const val MEDIA_TYPE_AUDIOBOOK = "audiobook" + const val MEDIA_TYPE_VIDEO = "video" + + const val MEDIA_PLAYBACK_SPEED_080 = 0.8f + const val MEDIA_PLAYBACK_SPEED_100 = 1.0f + const val MEDIA_PLAYBACK_SPEED_125 = 1.25f + const val MEDIA_PLAYBACK_SPEED_150 = 1.50f + const val MEDIA_PLAYBACK_SPEED_175 = 1.75f + const val MEDIA_PLAYBACK_SPEED_200 = 2.0f + + const val MEDIA_RECENTLY_PLAYED = "MEDIA_RECENTLY_PLAYED" + const val MEDIA_MOST_PLAYED = "MEDIA_MOST_PLAYED" + const val MEDIA_RECENTLY_ADDED = "MEDIA_RECENTLY_ADDED" + const val MEDIA_BY_GENRE = "MEDIA_BY_GENRE" + const val MEDIA_BY_GENRES = "MEDIA_BY_GENRES" + const val MEDIA_BY_ARTIST = "MEDIA_BY_ARTIST" + const val MEDIA_BY_YEAR = "MEDIA_BY_YEAR" + const val MEDIA_STARRED = "MEDIA_STARRED" + const val MEDIA_DOWNLOADED = "MEDIA_DOWNLOADED" + const val MEDIA_FROM_ALBUM = "MEDIA_FROM_ALBUM" } \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java index ee309d7c..cad4dfd6 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java @@ -8,11 +8,11 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.subsonic.models.AlbumID3; import com.cappielloantonio.play.subsonic.models.ArtistID3; +import com.cappielloantonio.play.util.Constants; import java.util.ArrayList; import java.util.Calendar; @@ -39,19 +39,19 @@ public class AlbumListPageViewModel extends AndroidViewModel { albumList = new MutableLiveData<>(new ArrayList<>()); switch (title) { - case Album.RECENTLY_PLAYED: + case Constants.ALBUM_RECENTLY_PLAYED: albumRepository.getAlbums("recent", 500, null, null).observe(owner, albums -> albumList.setValue(albums)); break; - case Album.MOST_PLAYED: + case Constants.ALBUM_MOST_PLAYED: albumRepository.getAlbums("frequent", 500, null, null).observe(owner, albums -> albumList.setValue(albums)); break; - case Album.RECENTLY_ADDED: + case Constants.ALBUM_RECENTLY_ADDED: albumRepository.getAlbums("newest", 500, null, null).observe(owner, albums -> albumList.setValue(albums)); break; - case Album.STARRED: + case Constants.ALBUM_STARRED: albumList = albumRepository.getStarredAlbums(false, -1); break; - case Album.NEW_RELEASES: + case Constants.ALBUM_NEW_RELEASES: int currentYear = Calendar.getInstance().get(Calendar.YEAR); albumRepository.getAlbums("byYear", 500, currentYear, currentYear).observe(owner, albums -> { albums.sort(Comparator.comparing(AlbumID3::getCreated).reversed()); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java index 170adab9..dcb7d6c9 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java @@ -8,11 +8,11 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.subsonic.models.ArtistID3; +import com.cappielloantonio.play.util.Constants; import java.util.ArrayList; import java.util.Comparator; @@ -39,10 +39,10 @@ public class ArtistListPageViewModel extends AndroidViewModel { artistList = new MutableLiveData<>(new ArrayList<>()); switch (title) { - case Artist.STARRED: + case Constants.ARTIST_STARRED: artistList = artistRepository.getStarredArtists(false, -1); break; - case Artist.DOWNLOADED: + case Constants.ARTIST_DOWNLOADED: downloadRepository.getLiveDownload().observe(owner, downloads -> { List unique = downloads .stream() diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java index 1fdea12c..f9a67759 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java @@ -8,10 +8,7 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.repository.DownloadRepository; -import com.cappielloantonio.play.subsonic.models.AlbumID3; -import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.subsonic.models.Child; import java.util.List; @@ -22,10 +19,7 @@ public class DownloadViewModel extends AndroidViewModel { private final DownloadRepository downloadRepository; - private final MutableLiveData> downloadedArtistSample = new MutableLiveData<>(null); - private final MutableLiveData> downloadedAlbumSample = new MutableLiveData<>(null); private final MutableLiveData> downloadedTrackSample = new MutableLiveData<>(null); - private final MutableLiveData> downloadedPlaylistSample = new MutableLiveData<>(null); public DownloadViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java index 49e194f6..b949dbbe 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java @@ -11,13 +11,13 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.media3.common.util.UnstableApi; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.model.Queue; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.util.Constants; import java.util.Collections; import java.util.Date; @@ -85,10 +85,10 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { public void setLiveMedia(LifecycleOwner owner, String mediaType, String mediaId) { if (mediaType != null) { switch (mediaType) { - case Media.MEDIA_TYPE_MUSIC: + case Constants.MEDIA_TYPE_MUSIC: songRepository.getSong(mediaId).observe(owner, liveMedia::postValue); break; - case Media.MEDIA_TYPE_PODCAST: + case Constants.MEDIA_TYPE_PODCAST: liveMedia.postValue(null); break; } @@ -102,10 +102,10 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { public void setLiveArtist(LifecycleOwner owner, String mediaType, String ArtistId) { if (mediaType != null) { switch (mediaType) { - case Media.MEDIA_TYPE_MUSIC: + case Constants.MEDIA_TYPE_MUSIC: artistRepository.getArtist(ArtistId).observe(owner, liveArtist::postValue); break; - case Media.MEDIA_TYPE_PODCAST: + case Constants.MEDIA_TYPE_PODCAST: liveArtist.postValue(null); break; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java index 11c0c55d..f472f3d1 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java @@ -11,6 +11,7 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import com.cappielloantonio.play.subsonic.models.Playlist; +import com.cappielloantonio.play.util.Constants; import com.cappielloantonio.play.util.Preferences; import java.util.ArrayList; @@ -36,10 +37,10 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel { playlistList = new MutableLiveData<>(new ArrayList<>()); switch (type) { - case com.cappielloantonio.play.model.Playlist.ALL: + case Constants.PLAYLIST_ALL: playlistRepository.getPlaylists(false, -1).observe(owner, playlists -> playlistList.postValue(playlists)); break; - case com.cappielloantonio.play.model.Playlist.DOWNLOADED: + case Constants.PLAYLIST_DOWNLOADED: // TODO //downloadRepository.getLivePlaylist().observe(owner, downloads -> playlistList.setValue(MappingUtil.mapDownloadToPlaylist(downloads))); break; @@ -57,7 +58,7 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel { } public void unpinPlaylist(List playlists) { - if (type.equals(com.cappielloantonio.play.model.Playlist.ALL)) { + if (type.equals(Constants.PLAYLIST_ALL)) { for (Playlist playlist : playlists) { playlistRepository.delete(playlist); } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java index 43109841..05b3057a 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java @@ -9,7 +9,6 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.model.Media; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.repository.SongRepository; @@ -17,6 +16,7 @@ import com.cappielloantonio.play.subsonic.models.AlbumID3; import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.subsonic.models.Child; import com.cappielloantonio.play.subsonic.models.Genre; +import com.cappielloantonio.play.util.Constants; import java.util.ArrayList; import java.util.List; @@ -51,19 +51,19 @@ public class SongListPageViewModel extends AndroidViewModel { songList = new MutableLiveData<>(new ArrayList<>()); switch (title) { - case Media.BY_GENRE: + case Constants.MEDIA_BY_GENRE: songList = songRepository.getSongsByGenre(genre.getGenre()); break; - case Media.BY_ARTIST: + case Constants.MEDIA_BY_ARTIST: songList = artistRepository.getTopSongs(artist.getName(), 50); break; - case Media.BY_GENRES: + case Constants.MEDIA_BY_GENRES: songList = songRepository.getSongsByGenres(filters); break; - case Media.BY_YEAR: + case Constants.MEDIA_BY_YEAR: songList = songRepository.getRandomSample(500, year, year + 10); break; - case Media.STARRED: + case Constants.MEDIA_STARRED: songList = songRepository.getStarredSongs(false, -1); break; }