- Removed middle layer of abstraction for subsonic classes

- Used kotlin for classes
This commit is contained in:
antonio
2023-03-06 21:59:10 +01:00
parent 917c0839de
commit ca15f51c85
168 changed files with 2026 additions and 6588 deletions

View File

@@ -16,10 +16,9 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
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.MusicUtil;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -27,7 +26,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
private final Context context;
private final ClickCallback click;
private List<Album> albums;
private List<AlbumID3> albums;
public AlbumAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -44,13 +43,13 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
AlbumID3 album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC, null)
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(holder.cover);
@@ -61,11 +60,11 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
return albums.size();
}
public Album getItem(int position) {
public AlbumID3 getItem(int position) {
return albums.get(position);
}
public void setItems(List<Album> albums) {
public void setItems(List<AlbumID3> albums) {
this.albums = albums;
notifyDataSetChanged();
}

View File

@@ -16,7 +16,7 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
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.MusicUtil;
import java.util.Collections;
@@ -26,7 +26,7 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
private final Context context;
private final ClickCallback click;
private List<Album> albums;
private List<AlbumID3> albums;
public AlbumArtistPageOrSimilarAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -43,13 +43,13 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
AlbumID3 album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC, null)
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(holder.cover);
@@ -60,11 +60,11 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
return albums.size();
}
public Album getItem(int position) {
public AlbumID3 getItem(int position) {
return albums.get(position);
}
public void setItems(List<Album> albums) {
public void setItems(List<AlbumID3> albums) {
this.albums = albums;
notifyDataSetChanged();
}

View File

@@ -19,6 +19,7 @@ import com.cappielloantonio.play.R;
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.MusicUtil;
import java.util.ArrayList;
@@ -32,15 +33,15 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
private final Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Album> filteredList = new ArrayList<>();
List<AlbumID3> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(albumsFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Album item : albumsFull) {
if (item.getTitle().toLowerCase().contains(filterPattern)) {
for (AlbumID3 item : albumsFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
@@ -60,8 +61,8 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
}
};
private List<Album> albums;
private List<Album> albumsFull;
private List<AlbumID3> albums;
private List<AlbumID3> albumsFull;
public AlbumCatalogueAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -78,13 +79,13 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
AlbumID3 album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC, null)
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(holder.cover);
@@ -95,11 +96,11 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
return albums.size();
}
public Album getItem(int position) {
public AlbumID3 getItem(int position) {
return albums.get(position);
}
public void setItems(List<Album> albums) {
public void setItems(List<AlbumID3> albums) {
this.albums = albums;
this.albumsFull = new ArrayList<>(albums);
notifyDataSetChanged();
@@ -160,13 +161,13 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
public void sort(String order) {
switch (order) {
case Album.ORDER_BY_NAME:
albums.sort(Comparator.comparing(Album::getTitle));
albums.sort(Comparator.comparing(AlbumID3::getName));
break;
case Album.ORDER_BY_ARTIST:
albums.sort(Comparator.comparing(Album::getArtistName));
albums.sort(Comparator.comparing(AlbumID3::getArtist));
break;
case Album.ORDER_BY_YEAR:
albums.sort(Comparator.comparing(Album::getYear));
albums.sort(Comparator.comparing(AlbumID3::getYear));
break;
case Album.ORDER_BY_RANDOM:
Collections.shuffle(albums);

View File

@@ -16,7 +16,7 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
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.MusicUtil;
import java.util.Collections;
@@ -27,7 +27,7 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
private final ClickCallback click;
private final boolean isOffline;
private List<Album> albums;
private List<AlbumID3> albums;
public AlbumHorizontalAdapter(Context context, ClickCallback click, boolean isOffline) {
this.context = context;
@@ -45,13 +45,13 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
AlbumID3 album = albums.get(position);
holder.albumTitle.setText(MusicUtil.getReadableString(album.getTitle()));
holder.albumArtist.setText(MusicUtil.getReadableString(album.getArtistName()));
holder.albumTitle.setText(MusicUtil.getReadableString(album.getName()));
holder.albumArtist.setText(MusicUtil.getReadableString(album.getArtist()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC, null)
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(holder.cover);
@@ -62,12 +62,12 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
return albums.size();
}
public void setItems(List<Album> albums) {
public void setItems(List<AlbumID3> albums) {
this.albums = albums;
notifyDataSetChanged();
}
public Album getItem(int id) {
public AlbumID3 getItem(int id) {
return albums.get(id);
}

View File

@@ -9,28 +9,19 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.session.MediaBrowser;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.subsonic.models.ArtistID3;
import com.cappielloantonio.play.util.MusicUtil;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@UnstableApi
public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder> {
@@ -39,7 +30,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
private final boolean mix;
private final boolean bestOf;
private List<Artist> artists;
private List<ArtistID3> artists;
public ArtistAdapter(Context context, ClickCallback click, Boolean mix, Boolean bestOf) {
this.context = context;
@@ -58,7 +49,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
ArtistID3 artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
@@ -70,11 +61,11 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
return artists.size();
}
public Artist getItem(int position) {
public ArtistID3 getItem(int position) {
return artists.get(position);
}
public void setItems(List<Artist> artists) {
public void setItems(List<ArtistID3> artists) {
this.artists = artists;
notifyDataSetChanged();
}
@@ -89,9 +80,9 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
return position;
}
private void setArtistCover(Artist artist, ImageView cover) {
private void setArtistCover(ArtistID3 artist, ImageView cover) {
CustomGlideRequest.Builder
.from(context, artist.getPrimary(), CustomGlideRequest.ARTIST_PIC, null)
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(cover);

View File

@@ -11,18 +11,15 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.subsonic.models.ArtistID3;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.ArrayList;
@@ -37,14 +34,14 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
private final Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Artist> filteredList = new ArrayList<>();
List<ArtistID3> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(artistFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Artist item : artistFull) {
for (ArtistID3 item : artistFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
@@ -65,8 +62,8 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
}
};
private List<Artist> artists;
private List<Artist> artistFull;
private List<ArtistID3> artists;
private List<ArtistID3> artistFull;
public ArtistCatalogueAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -83,7 +80,7 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
ArtistID3 artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
@@ -95,11 +92,11 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
return artists.size();
}
public Artist getItem(int position) {
public ArtistID3 getItem(int position) {
return artists.get(position);
}
public void setItems(List<Artist> artists) {
public void setItems(List<ArtistID3> artists) {
this.artists = artists;
this.artistFull = new ArrayList<>(artists);
notifyDataSetChanged();
@@ -120,9 +117,9 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
return filtering;
}
private void setArtistCover(Artist artist, ImageView cover) {
private void setArtistCover(ArtistID3 artist, ImageView cover) {
CustomGlideRequest.Builder
.from(context, artist.getPrimary(), CustomGlideRequest.ARTIST_PIC, null)
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(cover);
@@ -164,7 +161,7 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
public void sort(String order) {
switch (order) {
case Artist.ORDER_BY_NAME:
artists.sort(Comparator.comparing(Artist::getName));
artists.sort(Comparator.comparing(ArtistID3::getName));
break;
case Artist.ORDER_BY_RANDOM:
Collections.shuffle(artists);

View File

@@ -9,18 +9,14 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.subsonic.models.ArtistID3;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.Collections;
@@ -30,7 +26,7 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
private final Context context;
private final ClickCallback click;
private List<Artist> artists;
private List<ArtistID3> artists;
public ArtistHorizontalAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -47,7 +43,7 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
ArtistID3 artist = artists.get(position);
holder.artistName.setText(MusicUtil.getReadableString(artist.getName()));
@@ -65,12 +61,12 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
return artists.size();
}
public void setItems(List<Artist> artists) {
public void setItems(List<ArtistID3> artists) {
this.artists = artists;
notifyDataSetChanged();
}
public Artist getItem(int id) {
public ArtistID3 getItem(int id) {
return artists.get(id);
}
@@ -84,9 +80,9 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
return position;
}
private void setArtistCover(Artist artist, ImageView cover) {
private void setArtistCover(ArtistID3 artist, ImageView cover) {
CustomGlideRequest.Builder
.from(context, artist.getPrimary(), CustomGlideRequest.ARTIST_PIC, null)
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(cover);

View File

@@ -9,23 +9,17 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.subsonic.models.SimilarArtistID3;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -33,7 +27,7 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
private final Context context;
private final ClickCallback click;
private List<Artist> artists;
private List<SimilarArtistID3> artists;
public ArtistSimilarAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -50,7 +44,7 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
SimilarArtistID3 artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
@@ -62,11 +56,11 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
return artists.size();
}
public Artist getItem(int position) {
public SimilarArtistID3 getItem(int position) {
return artists.get(position);
}
public void setItems(List<Artist> artists) {
public void setItems(List<SimilarArtistID3> artists) {
this.artists = artists;
notifyDataSetChanged();
}
@@ -81,9 +75,9 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
return position;
}
private void setArtistCover(Artist artist, ImageView cover) {
private void setArtistCover(SimilarArtistID3 artist, ImageView cover) {
CustomGlideRequest.Builder
.from(context, artist.getPrimary(), CustomGlideRequest.ARTIST_PIC, null)
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
.build()
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
.into(cover);

View File

@@ -15,7 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.Collections;
@@ -25,7 +25,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
private final Context context;
private final ClickCallback click;
private List<Media> songs;
private List<Child> songs;
public DiscoverSongAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -42,10 +42,10 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media song = songs.get(position);
Child song = songs.get(position);
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.textAlbum.setText(MusicUtil.getReadableString(song.getAlbumName()));
holder.textAlbum.setText(MusicUtil.getReadableString(song.getAlbum()));
CustomGlideRequest.Builder
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
@@ -64,7 +64,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
return songs.size();
}
public void setItems(List<Media> songs) {
public void setItems(List<Child> songs) {
this.songs = songs;
notifyDataSetChanged();
}

View File

@@ -12,8 +12,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Genre;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.subsonic.models.Genre;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.Collections;
@@ -42,7 +42,7 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
public void onBindViewHolder(ViewHolder holder, int position) {
Genre genre = genres.get(position);
holder.textGenre.setText(MusicUtil.getReadableString(genre.getName()));
holder.textGenre.setText(MusicUtil.getReadableString(genre.getGenre()));
}
@Override

View File

@@ -14,9 +14,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Genre;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.subsonic.models.Genre;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.ArrayList;
@@ -39,7 +38,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
String filterPattern = constraint.toString().toLowerCase().trim();
for (Genre item : genresFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
if (item.getGenre().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
@@ -79,7 +78,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
public void onBindViewHolder(ViewHolder holder, int position) {
Genre genre = genres.get(position);
holder.textGenre.setText(MusicUtil.getReadableString(genre.getName()));
holder.textGenre.setText(MusicUtil.getReadableString(genre.getGenre()));
}
@Override
@@ -122,10 +121,10 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
public void sort(String order) {
switch (order) {
case Genre.ORDER_BY_NAME:
genres.sort(Comparator.comparing(Genre::getName));
case com.cappielloantonio.play.model.Genre.ORDER_BY_NAME:
genres.sort(Comparator.comparing(Genre::getGenre));
break;
case Genre.ORDER_BY_RANDOM:
case com.cappielloantonio.play.model.Genre.ORDER_BY_RANDOM:
Collections.shuffle(genres);
break;
}

View File

@@ -17,8 +17,8 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.service.MediaManager;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.util.MusicUtil;
import com.google.common.util.concurrent.ListenableFuture;
@@ -31,7 +31,7 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
private final ClickCallback click;
private ListenableFuture<MediaBrowser> mediaBrowserListenableFuture;
private List<Media> songs;
private List<Child> songs;
public PlayerSongQueueAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -48,10 +48,10 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media song = songs.get(position);
Child song = songs.get(position);
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.songSubtitle.setText(context.getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtistName()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
holder.songSubtitle.setText(context.getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
CustomGlideRequest.Builder
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
@@ -69,11 +69,11 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
return songs.size();
}
public List<Media> getItems() {
public List<Child> getItems() {
return this.songs;
}
public void setItems(List<Media> songs) {
public void setItems(List<Child> songs) {
this.songs = songs;
notifyDataSetChanged();
}
@@ -82,7 +82,7 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
this.mediaBrowserListenableFuture = mediaBrowserListenableFuture;
}
public Media getItem(int id) {
public Child getItem(int id) {
return songs.get(id);
}

View File

@@ -12,12 +12,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Playlist;
import com.cappielloantonio.play.ui.dialog.PlaylistChooserDialog;
import com.cappielloantonio.play.subsonic.models.Playlist;
import com.cappielloantonio.play.util.MusicUtil;
import com.cappielloantonio.play.viewmodel.PlaylistChooserViewModel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -27,7 +24,7 @@ public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter<Playli
private List<Playlist> playlists;
public PlaylistDialogHorizontalAdapter(Context context,ClickCallback click) {
public PlaylistDialogHorizontalAdapter(Context context, ClickCallback click) {
this.context = context;
this.click = click;
this.playlists = Collections.emptyList();

View File

@@ -14,7 +14,7 @@ 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.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.Collections;
@@ -23,7 +23,7 @@ import java.util.List;
public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<PlaylistDialogSongHorizontalAdapter.ViewHolder> {
private final Context context;
private List<Media> songs;
private List<Child> songs;
public PlaylistDialogSongHorizontalAdapter(Context context) {
this.context = context;
@@ -39,10 +39,10 @@ public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<Pl
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media song = songs.get(position);
Child song = songs.get(position);
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtistName()));
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtist()));
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
CustomGlideRequest.Builder
@@ -57,16 +57,16 @@ public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<Pl
return songs.size();
}
public List<Media> getItems() {
public List<Child> getItems() {
return this.songs;
}
public void setItems(List<Media> songs) {
public void setItems(List<Child> songs) {
this.songs = songs;
notifyDataSetChanged();
}
public Media getItem(int id) {
public Child getItem(int id) {
return songs.get(id);
}

View File

@@ -14,7 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Playlist;
import com.cappielloantonio.play.subsonic.models.Playlist;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.ArrayList;
@@ -139,10 +139,10 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
public void sort(String order) {
switch (order) {
case Playlist.ORDER_BY_NAME:
case com.cappielloantonio.play.model.Playlist.ORDER_BY_NAME:
playlists.sort(Comparator.comparing(Playlist::getName));
break;
case Playlist.ORDER_BY_RANDOM:
case com.cappielloantonio.play.model.Playlist.ORDER_BY_RANDOM:
Collections.shuffle(playlists);
break;
}

View File

@@ -17,7 +17,7 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.subsonic.models.PodcastEpisode;
import com.cappielloantonio.play.util.MusicUtil;
import java.text.SimpleDateFormat;
@@ -28,7 +28,7 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
private final Context context;
private final ClickCallback click;
private List<Media> podcastEpisodes;
private List<PodcastEpisode> podcastEpisodes;
public PodcastEpisodeAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -45,11 +45,11 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media podcastEpisode = podcastEpisodes.get(position);
PodcastEpisode podcastEpisode = podcastEpisodes.get(position);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM d");
holder.textTitle.setText(MusicUtil.getReadableString(podcastEpisode.getTitle()));
holder.textSubtitle.setText(MusicUtil.getReadableString(podcastEpisode.getArtistName()));
holder.textSubtitle.setText(MusicUtil.getReadableString(podcastEpisode.getArtist()));
holder.textReleaseAndDuration.setText(context.getString(R.string.podcast_release_date_duration_formatter, simpleDateFormat.format(podcastEpisode.getPublishDate()), MusicUtil.getReadablePodcastDurationString(podcastEpisode.getDuration())));
holder.textDescription.setText(MusicUtil.getReadableString(podcastEpisode.getDescription()));
@@ -65,7 +65,7 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
return podcastEpisodes.size();
}
public void setItems(List<Media> podcastEpisodes) {
public void setItems(List<PodcastEpisode> podcastEpisodes) {
this.podcastEpisodes = podcastEpisodes;
notifyDataSetChanged();
}

View File

@@ -16,8 +16,7 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.util.MusicUtil;
import java.util.Collections;
@@ -27,7 +26,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
private final Context context;
private final ClickCallback click;
private List<Media> songs;
private List<Child> songs;
public SimilarTrackAdapter(Context context, ClickCallback click) {
this.context = context;
@@ -44,7 +43,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media song = songs.get(position);
Child song = songs.get(position);
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
@@ -60,11 +59,11 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
return songs.size();
}
public Media getItem(int position) {
public Child getItem(int position) {
return songs.get(position);
}
public void setItems(List<Media> songs) {
public void setItems(List<Child> songs) {
this.songs = songs;
notifyDataSetChanged();
}

View File

@@ -10,8 +10,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.session.MediaBrowser;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
@@ -19,13 +17,8 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.model.Media;
import com.cappielloantonio.play.service.MediaManager;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.util.MappingUtil;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.util.MusicUtil;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.Collections;
@@ -37,7 +30,7 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
private final ClickCallback click;
private final boolean isCoverVisible;
private List<Media> songs;
private List<Child> songs;
public SongHorizontalAdapter(Context context, ClickCallback click, boolean isCoverVisible) {
this.context = context;
@@ -55,17 +48,18 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Media song = songs.get(position);
Child song = songs.get(position);
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.songSubtitle.setText(context.getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtistName()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
holder.trackNumber.setText(String.valueOf(song.getTrackNumber()));
holder.songSubtitle.setText(context.getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
holder.trackNumber.setText(String.valueOf(song.getTrack()));
if (DownloadUtil.getDownloadTracker(context).isDownloaded(MappingUtil.mapMediaItem(context, song, false))) {
// TODO
/* if (DownloadUtil.getDownloadTracker(context).isDownloaded(MappingUtil.mapMediaItem(context, song, false))) {
holder.downloadIndicator.setVisibility(View.VISIBLE);
} else {
holder.downloadIndicator.setVisibility(View.GONE);
}
} */
if (isCoverVisible) CustomGlideRequest.Builder
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
@@ -87,12 +81,12 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
return songs.size();
}
public void setItems(List<Media> songs) {
public void setItems(List<Child> songs) {
this.songs = songs;
notifyDataSetChanged();
}
public Media getItem(int id) {
public Child getItem(int id) {
return songs.get(id);
}