mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Removed almost all hardcoded constants
This commit is contained in:
parent
d16db8e36d
commit
e98429503b
57 changed files with 345 additions and 374 deletions
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<AlbumAdapter.ViewHolder>
|
|||
|
||||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<AlbumA
|
|||
|
||||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||
import com.cappielloantonio.play.databinding.ItemLibraryCatalogueAlbumBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Album;
|
||||
import com.cappielloantonio.play.subsonic.models.AlbumID3;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -132,14 +132,14 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
|||
|
||||
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);
|
||||
|
||||
|
|
@ -149,16 +149,16 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
|||
|
||||
public void sort(String order) {
|
||||
switch (order) {
|
||||
case Album.ORDER_BY_NAME:
|
||||
case Constants.ALBUM_ORDER_BY_NAME:
|
||||
albums.sort(Comparator.comparing(AlbumID3::getName));
|
||||
break;
|
||||
case Album.ORDER_BY_ARTIST:
|
||||
case Constants.ALBUM_ORDER_BY_ARTIST:
|
||||
albums.sort(Comparator.comparing(AlbumID3::getArtist));
|
||||
break;
|
||||
case Album.ORDER_BY_YEAR:
|
||||
case Constants.ALBUM_ORDER_BY_YEAR:
|
||||
albums.sort(Comparator.comparing(AlbumID3::getYear));
|
||||
break;
|
||||
case Album.ORDER_BY_RANDOM:
|
||||
case Constants.ALBUM_ORDER_BY_RANDOM:
|
||||
Collections.shuffle(albums);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemHorizontalAlbumBinding;
|
|||
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;
|
||||
|
|
@ -83,14 +84,14 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
|
|||
|
||||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.cappielloantonio.play.databinding.ItemLibraryArtistBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.ArtistID3;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -94,7 +95,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
bundle.putBoolean("is_mix", mix);
|
||||
bundle.putBoolean("is_best_of", bestOf);
|
||||
|
||||
|
|
@ -103,7 +104,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
|||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistLongClick(bundle);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||
import com.cappielloantonio.play.databinding.ItemLibraryCatalogueArtistBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Artist;
|
||||
import com.cappielloantonio.play.subsonic.models.ArtistID3;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -131,14 +131,14 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistClick(bundle);
|
||||
}
|
||||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistLongClick(bundle);
|
||||
|
||||
|
|
@ -148,10 +148,10 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
|||
|
||||
public void sort(String order) {
|
||||
switch (order) {
|
||||
case Artist.ORDER_BY_NAME:
|
||||
case Constants.ARTIST_ORDER_BY_NAME:
|
||||
artists.sort(Comparator.comparing(ArtistID3::getName));
|
||||
break;
|
||||
case Artist.ORDER_BY_RANDOM:
|
||||
case Constants.ARTIST_ORDER_BY_RANDOM:
|
||||
Collections.shuffle(artists);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.cappielloantonio.play.databinding.ItemHorizontalArtistBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.ArtistID3;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -97,14 +98,14 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
|
|||
|
||||
private void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistClick(bundle);
|
||||
}
|
||||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistLongClick(bundle);
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemLibrarySimilarArtistBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.SimilarArtistID3;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -88,14 +89,14 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistClick(bundle);
|
||||
}
|
||||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("artist_object", artists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.ARTIST_OBJECT, artists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onArtistLongClick(bundle);
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.cappielloantonio.play.databinding.ItemHomeDiscoverSongBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.Child;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -76,7 +77,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("song_object", songs.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.TRACK_OBJECT, songs.get(getBindingAdapterPosition()));
|
||||
bundle.putBoolean("is_mix", true);
|
||||
|
||||
click.onMediaClick(bundle);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.R;
|
|||
import com.cappielloantonio.play.databinding.ItemHorizontalDownloadBinding;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.Child;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -86,15 +87,15 @@ public class DownloadHorizontalAdapter extends RecyclerView.Adapter<DownloadHori
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelableArrayList("songs_object", new ArrayList<>(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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<GenreAdapter.ViewHolder>
|
|||
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<GenreCatalogueAd
|
|||
|
||||
itemView.setOnClickListener(v -> {
|
||||
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<GenreCatalogueAd
|
|||
|
||||
public void sort(String order) {
|
||||
switch (order) {
|
||||
case com.cappielloantonio.play.model.Genre.ORDER_BY_NAME:
|
||||
case Constants.GENRE_ORDER_BY_NAME:
|
||||
genres.sort(Comparator.comparing(Genre::getGenre));
|
||||
break;
|
||||
case com.cappielloantonio.play.model.Genre.ORDER_BY_RANDOM:
|
||||
case Constants.GENRE_ORDER_BY_RANDOM:
|
||||
Collections.shuffle(genres);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemHomeGridTrackBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Chronology;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
|
@ -73,9 +74,9 @@ public class GridTrackAdapter extends RecyclerView.Adapter<GridTrackAdapter.View
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelableArrayList("songs_object", new ArrayList<>(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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<PlayerSongQueue
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelableArrayList("songs_object", new ArrayList<>(songs));
|
||||
bundle.putInt("position", getBindingAdapterPosition());
|
||||
bundle.putParcelableArrayList(Constants.TRACKS_OBJECT, new ArrayList<>(songs));
|
||||
bundle.putInt(Constants.ITEM_POSITION, getBindingAdapterPosition());
|
||||
|
||||
click.onMediaClick(bundle);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Playli
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("playlist_object", playlists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.PLAYLIST_OBJECT, playlists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onPlaylistClick(bundle);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.R;
|
|||
import com.cappielloantonio.play.databinding.ItemHorizontalPlaylistBinding;
|
||||
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.ArrayList;
|
||||
|
|
@ -114,14 +115,14 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("playlist_object", playlists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.PLAYLIST_OBJECT, playlists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onPlaylistClick(bundle);
|
||||
}
|
||||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("playlist_object", playlists.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.PLAYLIST_OBJECT, playlists.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onPlaylistLongClick(bundle);
|
||||
|
||||
|
|
@ -131,10 +132,10 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
|||
|
||||
public void sort(String order) {
|
||||
switch (order) {
|
||||
case com.cappielloantonio.play.model.Playlist.ORDER_BY_NAME:
|
||||
case Constants.PLAYLIST_ORDER_BY_NAME:
|
||||
playlists.sort(Comparator.comparing(Playlist::getName));
|
||||
break;
|
||||
case com.cappielloantonio.play.model.Playlist.ORDER_BY_RANDOM:
|
||||
case Constants.PLAYLIST_ORDER_BY_RANDOM:
|
||||
Collections.shuffle(playlists);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.cappielloantonio.play.databinding.ItemHomeSimilarTrackBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.Child;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -76,7 +77,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("song_object", songs.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.TRACK_OBJECT, songs.get(getBindingAdapterPosition()));
|
||||
bundle.putBoolean("is_mix", true);
|
||||
|
||||
click.onMediaClick(bundle);
|
||||
|
|
@ -84,7 +85,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
|||
|
||||
public boolean onLongClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("song_object", songs.get(getBindingAdapterPosition()));
|
||||
bundle.putParcelable(Constants.TRACK_OBJECT, songs.get(getBindingAdapterPosition()));
|
||||
|
||||
click.onMediaLongClick(bundle);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.cappielloantonio.play.databinding.ItemHorizontalTrackBinding;
|
|||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.Child;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.DownloadUtil;
|
||||
import com.cappielloantonio.play.util.MappingUtil;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
|
|
@ -106,15 +107,15 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
|||
|
||||
public void onClick() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelableArrayList("songs_object", new ArrayList<>(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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<YearAdapter.ViewHolder> {
|
|||
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Child> media = bundle.getParcelableArrayList("songs_object");
|
||||
MediaManager.startQueue(mediaBrowserListenableFuture, requireContext(), media, bundle.getInt("position"));
|
||||
List<Child> 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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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<Download> unique = downloads
|
||||
.stream()
|
||||
|
|
|
|||
|
|
@ -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<List<ArtistID3>> downloadedArtistSample = new MutableLiveData<>(null);
|
||||
private final MutableLiveData<List<AlbumID3>> downloadedAlbumSample = new MutableLiveData<>(null);
|
||||
private final MutableLiveData<List<Child>> downloadedTrackSample = new MutableLiveData<>(null);
|
||||
private final MutableLiveData<List<Playlist>> downloadedPlaylistSample = new MutableLiveData<>(null);
|
||||
|
||||
public DownloadViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Playlist> playlists) {
|
||||
if (type.equals(com.cappielloantonio.play.model.Playlist.ALL)) {
|
||||
if (type.equals(Constants.PLAYLIST_ALL)) {
|
||||
for (Playlist playlist : playlists) {
|
||||
playlistRepository.delete(playlist);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue