Code decontextualization
This commit is contained in:
@@ -1,19 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
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;
|
||||
@@ -23,13 +19,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<AlbumID3> albums;
|
||||
|
||||
public AlbumAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public AlbumAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.albums = Collections.emptyList();
|
||||
}
|
||||
@@ -37,7 +31,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_album, parent, false);
|
||||
ItemLibraryAlbumBinding view = ItemLibraryAlbumBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,14 +39,14 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
AlbumID3 album = albums.get(position);
|
||||
|
||||
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
holder.item.albumNameLabel.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.from(holder.itemView.getContext(), album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.albumCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,19 +64,15 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textAlbumName;
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibraryAlbumBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryAlbumBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textAlbumName = itemView.findViewById(R.id.album_name_label);
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.album_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
textAlbumName.setSelected(true);
|
||||
textArtistName.setSelected(true);
|
||||
item.albumNameLabel.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemLibraryArtistPageOrSimilarAlbumBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.AlbumID3;
|
||||
@@ -23,13 +19,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumArtistPageOrSimilarAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<AlbumID3> albums;
|
||||
|
||||
public AlbumArtistPageOrSimilarAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public AlbumArtistPageOrSimilarAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.albums = Collections.emptyList();
|
||||
}
|
||||
@@ -37,7 +31,7 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_artist_page_or_similar_album, parent, false);
|
||||
ItemLibraryArtistPageOrSimilarAlbumBinding view = ItemLibraryArtistPageOrSimilarAlbumBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,14 +39,14 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
AlbumID3 album = albums.get(position);
|
||||
|
||||
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
holder.item.albumNameLabel.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.from(holder.itemView.getContext(), album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.artistPageAlbumCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,19 +64,15 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textAlbumName;
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibraryArtistPageOrSimilarAlbumBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryArtistPageOrSimilarAlbumBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textAlbumName = itemView.findViewById(R.id.album_name_label);
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.artist_page_album_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
textAlbumName.setSelected(true);
|
||||
textArtistName.setSelected(true);
|
||||
item.albumNameLabel.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemLibraryCatalogueAlbumBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Album;
|
||||
@@ -28,7 +24,6 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAdapter.ViewHolder> implements Filterable {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
private final Filter filtering = new Filter() {
|
||||
@Override
|
||||
@@ -64,8 +59,7 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
||||
private List<AlbumID3> albums;
|
||||
private List<AlbumID3> albumsFull;
|
||||
|
||||
public AlbumCatalogueAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public AlbumCatalogueAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.albums = Collections.emptyList();
|
||||
}
|
||||
@@ -73,7 +67,7 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_catalogue_album, parent, false);
|
||||
ItemLibraryCatalogueAlbumBinding view = ItemLibraryCatalogueAlbumBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -81,14 +75,14 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
AlbumID3 album = albums.get(position);
|
||||
|
||||
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
holder.item.albumNameLabel.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.from(holder.itemView.getContext(), album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.albumCatalogueCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -122,19 +116,15 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textAlbumName;
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibraryCatalogueAlbumBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryCatalogueAlbumBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textAlbumName = itemView.findViewById(R.id.album_name_label);
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.album_catalogue_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
textAlbumName.setSelected(true);
|
||||
textArtistName.setSelected(true);
|
||||
item.albumNameLabel.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
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;
|
||||
@@ -23,14 +19,12 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
private final boolean isOffline;
|
||||
|
||||
private List<AlbumID3> albums;
|
||||
|
||||
public AlbumHorizontalAdapter(Context context, ClickCallback click, boolean isOffline) {
|
||||
this.context = context;
|
||||
public AlbumHorizontalAdapter(ClickCallback click, boolean isOffline) {
|
||||
this.click = click;
|
||||
this.isOffline = isOffline;
|
||||
this.albums = Collections.emptyList();
|
||||
@@ -39,7 +33,7 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_album, parent, false);
|
||||
ItemHorizontalAlbumBinding view = ItemHorizontalAlbumBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -47,14 +41,14 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
AlbumID3 album = albums.get(position);
|
||||
|
||||
holder.albumTitle.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.albumArtist.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
holder.item.albumTitleTextView.setText(MusicUtil.getReadableString(album.getName()));
|
||||
holder.item.albumArtistTextView.setText(MusicUtil.getReadableString(album.getArtist()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.from(holder.itemView.getContext(), album.getCoverArtId(), CustomGlideRequest.ALBUM_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.albumCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -72,25 +66,19 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView albumTitle;
|
||||
TextView albumArtist;
|
||||
ImageView more;
|
||||
ImageView cover;
|
||||
ItemHorizontalAlbumBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalAlbumBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
albumTitle = itemView.findViewById(R.id.album_title_text_view);
|
||||
albumArtist = itemView.findViewById(R.id.album_artist_text_view);
|
||||
more = itemView.findViewById(R.id.album_more_button);
|
||||
cover = itemView.findViewById(R.id.album_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
albumTitle.setSelected(true);
|
||||
item.albumTitleTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
more.setOnClickListener(v -> onLongClick());
|
||||
item.albumMoreButton.setOnClickListener(v -> onLongClick());
|
||||
}
|
||||
|
||||
private void onClick() {
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
@@ -14,7 +10,7 @@ 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.R;
|
||||
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;
|
||||
@@ -25,15 +21,13 @@ import java.util.List;
|
||||
|
||||
@UnstableApi
|
||||
public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
private final boolean mix;
|
||||
private final boolean bestOf;
|
||||
|
||||
private List<ArtistID3> artists;
|
||||
|
||||
public ArtistAdapter(Context context, ClickCallback click, Boolean mix, Boolean bestOf) {
|
||||
this.context = context;
|
||||
public ArtistAdapter(ClickCallback click, Boolean mix, Boolean bestOf) {
|
||||
this.click = click;
|
||||
this.mix = mix;
|
||||
this.bestOf = bestOf;
|
||||
@@ -43,7 +37,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_artist, parent, false);
|
||||
ItemLibraryArtistBinding view = ItemLibraryArtistBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -51,9 +45,13 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
ArtistID3 artist = artists.get(position);
|
||||
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
|
||||
setArtistCover(artist, holder.cover);
|
||||
CustomGlideRequest.Builder
|
||||
.from(holder.itemView.getContext(), artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.item.artistCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,25 +78,15 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
||||
return position;
|
||||
}
|
||||
|
||||
private void setArtistCover(ArtistID3 artist, ImageView cover) {
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(cover);
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibraryArtistBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryArtistBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.artist_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
textArtistName.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemLibraryCatalogueArtistBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Artist;
|
||||
@@ -28,7 +24,6 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogueAdapter.ViewHolder> implements Filterable {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private final Filter filtering = new Filter() {
|
||||
@@ -65,8 +60,7 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
||||
private List<ArtistID3> artists;
|
||||
private List<ArtistID3> artistFull;
|
||||
|
||||
public ArtistCatalogueAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public ArtistCatalogueAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.artists = Collections.emptyList();
|
||||
}
|
||||
@@ -74,7 +68,7 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_catalogue_artist, parent, false);
|
||||
ItemLibraryCatalogueArtistBinding view = ItemLibraryCatalogueArtistBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -82,9 +76,13 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
ArtistID3 artist = artists.get(position);
|
||||
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
|
||||
setArtistCover(artist, holder.cover);
|
||||
CustomGlideRequest.Builder
|
||||
.from(holder.itemView.getContext(), artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.item.artistCatalogueCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,25 +115,15 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
|
||||
return filtering;
|
||||
}
|
||||
|
||||
private void setArtistCover(ArtistID3 artist, ImageView cover) {
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(cover);
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibraryCatalogueArtistBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryCatalogueArtistBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.artist_catalogue_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
textArtistName.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
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;
|
||||
@@ -23,13 +20,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<ArtistID3> artists;
|
||||
|
||||
public ArtistHorizontalAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public ArtistHorizontalAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.artists = Collections.emptyList();
|
||||
}
|
||||
@@ -37,7 +32,7 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_artist, parent, false);
|
||||
ItemHorizontalArtistBinding view = ItemHorizontalArtistBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,15 +40,19 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
ArtistID3 artist = artists.get(position);
|
||||
|
||||
holder.artistName.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
holder.item.artistNameTextView.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
|
||||
if (artist.getAlbumCount() > 0) {
|
||||
holder.artistInfo.setText("Album count: " + artist.getAlbumCount());
|
||||
holder.item.artistInfoTextView.setText("Album count: " + artist.getAlbumCount());
|
||||
} else {
|
||||
holder.artistInfo.setVisibility(View.GONE);
|
||||
holder.item.artistInfoTextView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
setArtistCover(artist, holder.cover);
|
||||
CustomGlideRequest.Builder
|
||||
.from(holder.itemView.getContext(), artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.item.artistCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,35 +79,20 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
|
||||
return position;
|
||||
}
|
||||
|
||||
private void setArtistCover(ArtistID3 artist, ImageView cover) {
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(cover);
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView artistName;
|
||||
TextView artistInfo;
|
||||
ItemHorizontalArtistBinding item;
|
||||
|
||||
ImageView more;
|
||||
ImageView cover;
|
||||
ViewHolder(ItemHorizontalArtistBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
this.item = item;
|
||||
|
||||
artistName = itemView.findViewById(R.id.artist_name_text_view);
|
||||
artistInfo = itemView.findViewById(R.id.artist_info_text_view);
|
||||
more = itemView.findViewById(R.id.artist_more_button);
|
||||
cover = itemView.findViewById(R.id.artist_cover_image_view);
|
||||
|
||||
artistName.setSelected(true);
|
||||
item.artistNameTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
more.setOnClickListener(v -> onLongClick());
|
||||
item.artistMoreButton.setOnClickListener(v -> onLongClick());
|
||||
}
|
||||
|
||||
private void onClick() {
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
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;
|
||||
@@ -23,13 +19,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<SimilarArtistID3> artists;
|
||||
|
||||
public ArtistSimilarAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public ArtistSimilarAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.artists = Collections.emptyList();
|
||||
}
|
||||
@@ -37,7 +31,7 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_similar_artist, parent, false);
|
||||
ItemLibrarySimilarArtistBinding view = ItemLibrarySimilarArtistBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,9 +39,13 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
SimilarArtistID3 artist = artists.get(position);
|
||||
|
||||
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
holder.item.artistNameLabel.setText(MusicUtil.getReadableString(artist.getName()));
|
||||
|
||||
setArtistCover(artist, holder.cover);
|
||||
CustomGlideRequest.Builder
|
||||
.from(holder.itemView.getContext(), artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.item.similarArtistCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -74,28 +72,18 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
|
||||
return position;
|
||||
}
|
||||
|
||||
private void setArtistCover(SimilarArtistID3 artist, ImageView cover) {
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, artist.getCoverArtId(), CustomGlideRequest.ARTIST_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(cover);
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textArtistName;
|
||||
ImageView cover;
|
||||
ItemLibrarySimilarArtistBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibrarySimilarArtistBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textArtistName = itemView.findViewById(R.id.artist_name_label);
|
||||
cover = itemView.findViewById(R.id.similar_artist_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
textArtistName.setSelected(true);
|
||||
item.artistNameLabel.setSelected(true);
|
||||
}
|
||||
|
||||
public void onClick() {
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
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;
|
||||
@@ -22,13 +18,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Child> songs;
|
||||
|
||||
public DiscoverSongAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public DiscoverSongAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.songs = Collections.emptyList();
|
||||
}
|
||||
@@ -36,7 +30,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_home_discover_song, parent, false);
|
||||
ItemHomeDiscoverSongBinding view = ItemHomeDiscoverSongBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -44,13 +38,13 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Child song = songs.get(position);
|
||||
|
||||
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.textAlbum.setText(MusicUtil.getReadableString(song.getAlbum()));
|
||||
holder.item.titleDiscoverSongLabel.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.albumDiscoverSongLabel.setText(MusicUtil.getReadableString(song.getAlbum()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.into(holder.cover);
|
||||
.into(holder.item.discoverSongCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,16 +64,12 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textTitle;
|
||||
TextView textAlbum;
|
||||
ImageView cover;
|
||||
ItemHomeDiscoverSongBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHomeDiscoverSongBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textTitle = itemView.findViewById(R.id.title_discover_song_label);
|
||||
textAlbum = itemView.findViewById(R.id.album_discover_song_label);
|
||||
cover = itemView.findViewById(R.id.discover_song_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
@@ -94,7 +84,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
||||
}
|
||||
|
||||
private void startAnimation(ViewHolder holder) {
|
||||
holder.cover.animate()
|
||||
holder.item.discoverSongCoverImageView.animate()
|
||||
.setDuration(20000)
|
||||
.setStartDelay(10)
|
||||
.setInterpolator(new AccelerateDecelerateInterpolator())
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
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.MusicUtil;
|
||||
@@ -24,13 +22,11 @@ import java.util.Objects;
|
||||
|
||||
@UnstableApi
|
||||
public class DownloadHorizontalAdapter extends RecyclerView.Adapter<DownloadHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Child> songs;
|
||||
|
||||
public DownloadHorizontalAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public DownloadHorizontalAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.songs = Collections.emptyList();
|
||||
}
|
||||
@@ -38,7 +34,7 @@ public class DownloadHorizontalAdapter extends RecyclerView.Adapter<DownloadHori
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_download, parent, false);
|
||||
ItemHorizontalDownloadBinding view = ItemHorizontalDownloadBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -46,14 +42,14 @@ public class DownloadHorizontalAdapter extends RecyclerView.Adapter<DownloadHori
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Child song = songs.get(position);
|
||||
|
||||
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.songArtist.setText(context.getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
|
||||
holder.songAlbum.setText(MusicUtil.getReadableString(song.getAlbum()));
|
||||
holder.item.downloadedSongTitleTextView.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.downloadedSongArtistTextView.setText(holder.itemView.getContext().getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
|
||||
holder.item.downloadedSongAlbumTextView.setText(MusicUtil.getReadableString(song.getAlbum()));
|
||||
|
||||
if (position > 0 && songs.get(position - 1) != null && !Objects.equals(songs.get(position - 1).getAlbum(), songs.get(position).getAlbum())) {
|
||||
holder.divider.setPadding(0, 12, 0, 0);
|
||||
holder.item.divider.setPadding(0, 12, 0, 0);
|
||||
} else {
|
||||
if (position > 0) holder.divider.setVisibility(View.GONE);
|
||||
if (position > 0) holder.item.divider.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,28 +68,20 @@ public class DownloadHorizontalAdapter extends RecyclerView.Adapter<DownloadHori
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
View divider;
|
||||
TextView songTitle;
|
||||
TextView songArtist;
|
||||
TextView songAlbum;
|
||||
ImageView more;
|
||||
ItemHorizontalDownloadBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalDownloadBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
divider = itemView.findViewById(R.id.divider);
|
||||
songTitle = itemView.findViewById(R.id.downloaded_song_title_text_view);
|
||||
songArtist = itemView.findViewById(R.id.downloaded_song_artist_text_view);
|
||||
songAlbum = itemView.findViewById(R.id.downloaded_song_album_text_view);
|
||||
more = itemView.findViewById(R.id.downloaded_song_more_button);
|
||||
this.item = item;
|
||||
|
||||
songTitle.setSelected(true);
|
||||
songArtist.setSelected(true);
|
||||
item.downloadedSongTitleTextView.setSelected(true);
|
||||
item.downloadedSongArtistTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
more.setOnClickListener(v -> onLongClick());
|
||||
item.downloadedSongMoreButton.setOnClickListener(v -> onLongClick());
|
||||
}
|
||||
|
||||
public void onClick() {
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
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;
|
||||
@@ -20,13 +17,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private ClickCallback click;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Genre> genres;
|
||||
|
||||
public GenreAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public GenreAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.genres = Collections.emptyList();
|
||||
}
|
||||
@@ -34,7 +29,7 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_genre, parent, false);
|
||||
ItemLibraryGenreBinding view = ItemLibraryGenreBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -42,7 +37,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.getGenre()));
|
||||
holder.item.genreLabel.setText(MusicUtil.getReadableString(genre.getGenre()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,12 +55,12 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textGenre;
|
||||
ItemLibraryGenreBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryGenreBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textGenre = itemView.findViewById(R.id.genre_label);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
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;
|
||||
@@ -24,7 +21,6 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAdapter.ViewHolder> implements Filterable {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private final Filter filtering = new Filter() {
|
||||
@@ -61,8 +57,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
|
||||
private List<Genre> genres;
|
||||
private List<Genre> genresFull;
|
||||
|
||||
public GenreCatalogueAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public GenreCatalogueAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.genres = Collections.emptyList();
|
||||
}
|
||||
@@ -70,7 +65,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_library_catalogue_genre, parent, false);
|
||||
ItemLibraryCatalogueGenreBinding view = ItemLibraryCatalogueGenreBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -78,7 +73,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.getGenre()));
|
||||
holder.item.genreLabel.setText(MusicUtil.getReadableString(genre.getGenre()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,12 +97,12 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textGenre;
|
||||
ItemLibraryCatalogueGenreBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLibraryCatalogueGenreBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textGenre = itemView.findViewById(R.id.genre_label);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> {
|
||||
Bundle bundle = new Bundle();
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemHomeGridTrackBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Chronology;
|
||||
@@ -22,13 +19,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class GridTrackAdapter extends RecyclerView.Adapter<GridTrackAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Chronology> items;
|
||||
|
||||
public GridTrackAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public GridTrackAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.items = Collections.emptyList();
|
||||
}
|
||||
@@ -36,7 +31,7 @@ public class GridTrackAdapter extends RecyclerView.Adapter<GridTrackAdapter.View
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_home_grid_track, parent, false);
|
||||
ItemHomeGridTrackBinding view = ItemHomeGridTrackBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,10 +40,10 @@ public class GridTrackAdapter extends RecyclerView.Adapter<GridTrackAdapter.View
|
||||
Chronology item = items.get(position);
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, item.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), item.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.trackCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,12 +61,12 @@ public class GridTrackAdapter extends RecyclerView.Adapter<GridTrackAdapter.View
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
ImageView cover;
|
||||
ItemHomeGridTrackBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHomeGridTrackBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
cover = itemView.findViewById(R.id.track_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.media3.session.MediaBrowser;
|
||||
@@ -15,6 +12,7 @@ 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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemPlayerQueueSongBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.service.MediaManager;
|
||||
@@ -27,14 +25,12 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueueAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private ListenableFuture<MediaBrowser> mediaBrowserListenableFuture;
|
||||
private List<Child> songs;
|
||||
|
||||
public PlayerSongQueueAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public PlayerSongQueueAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.songs = Collections.emptyList();
|
||||
}
|
||||
@@ -42,7 +38,7 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_player_queue_song, parent, false);
|
||||
ItemPlayerQueueSongBinding view = ItemPlayerQueueSongBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -50,17 +46,17 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
|
||||
public void onBindViewHolder(ViewHolder holder, int 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.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
|
||||
holder.item.queueSongTitleTextView.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.queueSongSubtitleTextView.setText(holder.itemView.getContext().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)
|
||||
.from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.queueSongCoverImageView);
|
||||
|
||||
MediaManager.getCurrentIndex(mediaBrowserListenableFuture, index -> {
|
||||
holder.play.setVisibility(position == index ? View.VISIBLE : View.INVISIBLE);
|
||||
holder.item.queueSongPlayImageView.setVisibility(position == index ? View.VISIBLE : View.INVISIBLE);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -87,21 +83,15 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView songTitle;
|
||||
TextView songSubtitle;
|
||||
ImageView cover;
|
||||
ImageView play;
|
||||
ItemPlayerQueueSongBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemPlayerQueueSongBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
songTitle = itemView.findViewById(R.id.queue_song_title_text_view);
|
||||
songSubtitle = itemView.findViewById(R.id.queue_song_subtitle_text_view);
|
||||
cover = itemView.findViewById(R.id.queue_song_cover_image_view);
|
||||
play = itemView.findViewById(R.id.queue_song_play_image_view);
|
||||
this.item = item;
|
||||
|
||||
songTitle.setSelected(true);
|
||||
songSubtitle.setSelected(true);
|
||||
item.queueSongTitleTextView.setSelected(true);
|
||||
item.queueSongSubtitleTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
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.MusicUtil;
|
||||
@@ -19,13 +17,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter<PlaylistDialogHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Playlist> playlists;
|
||||
|
||||
public PlaylistDialogHorizontalAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public PlaylistDialogHorizontalAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.playlists = Collections.emptyList();
|
||||
}
|
||||
@@ -33,7 +29,7 @@ public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter<Playli
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_playlist_dialog, parent, false);
|
||||
ItemHorizontalPlaylistDialogBinding view = ItemHorizontalPlaylistDialogBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -41,9 +37,9 @@ public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter<Playli
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Playlist playlist = playlists.get(position);
|
||||
|
||||
holder.playlistTitle.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||
holder.playlistTrackCount.setText(context.getString(R.string.playlist_counted_tracks, playlist.getSongCount()));
|
||||
holder.playlistDuration.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
||||
holder.item.playlistDialogTitleTextView.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||
holder.item.playlistDialogCountTextView.setText(holder.itemView.getContext().getString(R.string.playlist_counted_tracks, playlist.getSongCount()));
|
||||
holder.item.playlistDialogDurationTextView.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,18 +57,14 @@ public class PlaylistDialogHorizontalAdapter extends RecyclerView.Adapter<Playli
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView playlistTitle;
|
||||
TextView playlistTrackCount;
|
||||
TextView playlistDuration;
|
||||
ItemHorizontalPlaylistDialogBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalPlaylistDialogBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
playlistTitle = itemView.findViewById(R.id.playlist_dialog_title_text_view);
|
||||
playlistTrackCount = itemView.findViewById(R.id.playlist_dialog_count_text_view);
|
||||
playlistDuration = itemView.findViewById(R.id.playlist_dialog_duration_text_view);
|
||||
this.item = item;
|
||||
|
||||
playlistTitle.setSelected(true);
|
||||
item.playlistDialogTitleTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemHorizontalPlaylistDialogTrackBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.subsonic.models.Child;
|
||||
import com.cappielloantonio.play.util.MusicUtil;
|
||||
@@ -21,19 +17,16 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<PlaylistDialogSongHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
|
||||
private List<Child> songs;
|
||||
|
||||
public PlaylistDialogSongHorizontalAdapter(Context context) {
|
||||
this.context = context;
|
||||
public PlaylistDialogSongHorizontalAdapter() {
|
||||
this.songs = Collections.emptyList();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_playlist_dialog_track, parent, false);
|
||||
ItemHorizontalPlaylistDialogTrackBinding view = ItemHorizontalPlaylistDialogTrackBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -41,15 +34,15 @@ public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<Pl
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Child song = songs.get(position);
|
||||
|
||||
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtist()));
|
||||
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
|
||||
holder.item.playlistDialogSongTitleTextView.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.playlistDialogAlbumArtistTextView.setText(MusicUtil.getReadableString(song.getArtist()));
|
||||
holder.item.playlistDialogSongDurationTextView.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.playlistDialogSongCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,20 +64,14 @@ public class PlaylistDialogSongHorizontalAdapter extends RecyclerView.Adapter<Pl
|
||||
}
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView songTitle;
|
||||
TextView songArtist;
|
||||
TextView songDuration;
|
||||
ImageView cover;
|
||||
ItemHorizontalPlaylistDialogTrackBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalPlaylistDialogTrackBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
songTitle = itemView.findViewById(R.id.playlist_dialog_song_title_text_view);
|
||||
songArtist = itemView.findViewById(R.id.playlist_dialog_album_artist_text_view);
|
||||
songDuration = itemView.findViewById(R.id.playlist_dialog_song_duration_text_view);
|
||||
cover = itemView.findViewById(R.id.playlist_dialog_song_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
songTitle.setSelected(true);
|
||||
item.playlistDialogSongTitleTextView.setSelected(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
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.MusicUtil;
|
||||
@@ -23,7 +21,6 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHorizontalAdapter.ViewHolder> implements Filterable {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Playlist> playlists;
|
||||
@@ -60,8 +57,7 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
||||
}
|
||||
};
|
||||
|
||||
public PlaylistHorizontalAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public PlaylistHorizontalAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.playlists = Collections.emptyList();
|
||||
}
|
||||
@@ -69,7 +65,7 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_playlist, parent, false);
|
||||
ItemHorizontalPlaylistBinding view = ItemHorizontalPlaylistBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -77,9 +73,9 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Playlist playlist = playlists.get(position);
|
||||
|
||||
holder.playlistTitle.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||
holder.playlistTrackCount.setText(context.getString(R.string.playlist_counted_tracks, playlist.getSongCount()));
|
||||
holder.playlistDuration.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
||||
holder.item.playlistDialogTitleTextView.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||
holder.item.playlistDialogCountTextView.setText(holder.itemView.getContext().getString(R.string.playlist_counted_tracks, playlist.getSongCount()));
|
||||
holder.item.playlistDialogDurationTextView.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -103,18 +99,14 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView playlistTitle;
|
||||
TextView playlistTrackCount;
|
||||
TextView playlistDuration;
|
||||
ItemHorizontalPlaylistBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalPlaylistBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
playlistTitle = itemView.findViewById(R.id.playlist_dialog_title_text_view);
|
||||
playlistTrackCount = itemView.findViewById(R.id.playlist_dialog_count_text_view);
|
||||
playlistDuration = itemView.findViewById(R.id.playlist_dialog_duration_text_view);
|
||||
this.item = item;
|
||||
|
||||
playlistTitle.setSelected(true);
|
||||
item.playlistDialogTitleTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@@ -15,6 +10,7 @@ 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.R;
|
||||
import com.cappielloantonio.play.databinding.ItemHomePodcastEpisodeBinding;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.subsonic.models.PodcastEpisode;
|
||||
@@ -25,13 +21,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<PodcastEpisode> podcastEpisodes;
|
||||
|
||||
public PodcastEpisodeAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public PodcastEpisodeAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.podcastEpisodes = Collections.emptyList();
|
||||
}
|
||||
@@ -39,7 +33,7 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_home_podcast_episode, parent, false);
|
||||
ItemHomePodcastEpisodeBinding view = ItemHomePodcastEpisodeBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -48,16 +42,16 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
|
||||
PodcastEpisode podcastEpisode = podcastEpisodes.get(position);
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM d");
|
||||
|
||||
holder.textTitle.setText(MusicUtil.getReadableString(podcastEpisode.getTitle()));
|
||||
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()));
|
||||
holder.item.podcastTitleLabel.setText(MusicUtil.getReadableString(podcastEpisode.getTitle()));
|
||||
holder.item.podcastSubtitleLabel.setText(MusicUtil.getReadableString(podcastEpisode.getArtist()));
|
||||
holder.item.podcastReleasesAndDurationLabel.setText(holder.itemView.getContext().getString(R.string.podcast_release_date_duration_formatter, simpleDateFormat.format(podcastEpisode.getPublishDate()), MusicUtil.getReadablePodcastDurationString(podcastEpisode.getDuration())));
|
||||
holder.item.podcastDescriptionLabel.setText(MusicUtil.getReadableString(podcastEpisode.getDescription()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, podcastEpisode.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), podcastEpisode.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.podcastCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,28 +65,16 @@ public class PodcastEpisodeAdapter extends RecyclerView.Adapter<PodcastEpisodeAd
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textTitle;
|
||||
TextView textSubtitle;
|
||||
TextView textReleaseAndDuration;
|
||||
TextView textDescription;
|
||||
ImageView cover;
|
||||
Button playButton;
|
||||
Button moreButton;
|
||||
ItemHomePodcastEpisodeBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHomePodcastEpisodeBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textTitle = itemView.findViewById(R.id.podcast_title_label);
|
||||
textSubtitle = itemView.findViewById(R.id.podcast_subtitle_label);
|
||||
textReleaseAndDuration = itemView.findViewById(R.id.podcast_releases_and_duration_label);
|
||||
textDescription = itemView.findViewById(R.id.podcast_description_label);
|
||||
cover = itemView.findViewById(R.id.podcast_cover_image_view);
|
||||
playButton = itemView.findViewById(R.id.podcast_play_button);
|
||||
moreButton = itemView.findViewById(R.id.podcast_more_button);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
|
||||
moreButton.setOnLongClickListener(v -> openMore());
|
||||
item.podcastMoreButton.setOnLongClickListener(v -> openMore());
|
||||
}
|
||||
|
||||
public void onClick() {
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
import com.cappielloantonio.play.databinding.ItemLoginServerBinding;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Server;
|
||||
|
||||
@@ -18,13 +15,11 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Server> servers;
|
||||
|
||||
public ServerAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public ServerAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.servers = new ArrayList<>();
|
||||
}
|
||||
@@ -32,7 +27,7 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_login_server, parent, false);
|
||||
ItemLoginServerBinding view = ItemLoginServerBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -40,8 +35,8 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Server server = servers.get(position);
|
||||
|
||||
holder.serverName.setText(server.getServerName());
|
||||
holder.serverAddress.setText(server.getAddress());
|
||||
holder.item.serverNameTextView.setText(server.getServerName());
|
||||
holder.item.serverAddressTextView.setText(server.getAddress());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,16 +54,14 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView serverName;
|
||||
TextView serverAddress;
|
||||
ItemLoginServerBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemLoginServerBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
serverName = itemView.findViewById(R.id.server_name_text_view);
|
||||
serverAddress = itemView.findViewById(R.id.server_address_text_view);
|
||||
this.item = item;
|
||||
|
||||
serverName.setSelected(true);
|
||||
item.serverNameTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
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.R;
|
||||
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;
|
||||
@@ -23,13 +19,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Child> songs;
|
||||
|
||||
public SimilarTrackAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public SimilarTrackAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.songs = Collections.emptyList();
|
||||
}
|
||||
@@ -37,7 +31,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_home_similar_track, parent, false);
|
||||
ItemHomeSimilarTrackBinding view = ItemHomeSimilarTrackBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -45,13 +39,13 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
Child song = songs.get(position);
|
||||
|
||||
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.titleTrackLabel.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
|
||||
CustomGlideRequest.Builder
|
||||
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.trackCoverImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,14 +63,12 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textTitle;
|
||||
ImageView cover;
|
||||
ItemHomeSimilarTrackBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHomeSimilarTrackBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textTitle = itemView.findViewById(R.id.title_track_label);
|
||||
cover = itemView.findViewById(R.id.track_cover_image_view);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
@@ -15,6 +12,7 @@ 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.R;
|
||||
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;
|
||||
@@ -28,14 +26,12 @@ import java.util.List;
|
||||
|
||||
@UnstableApi
|
||||
public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
private final boolean isCoverVisible;
|
||||
|
||||
private List<Child> songs;
|
||||
|
||||
public SongHorizontalAdapter(Context context, ClickCallback click, boolean isCoverVisible) {
|
||||
this.context = context;
|
||||
public SongHorizontalAdapter(ClickCallback click, boolean isCoverVisible) {
|
||||
this.click = click;
|
||||
this.isCoverVisible = isCoverVisible;
|
||||
this.songs = Collections.emptyList();
|
||||
@@ -44,7 +40,7 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_horizontal_track, parent, false);
|
||||
ItemHorizontalTrackBinding view = ItemHorizontalTrackBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -52,28 +48,28 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||
public void onBindViewHolder(ViewHolder holder, int 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.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
|
||||
holder.trackNumber.setText(String.valueOf(song.getTrack()));
|
||||
holder.item.searchResultSongTitleTextView.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||
holder.item.searchResultSongSubtitleTextView.setText(holder.itemView.getContext().getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
|
||||
holder.item.trackNumberTextView.setText(String.valueOf(song.getTrack()));
|
||||
|
||||
if (DownloadUtil.getDownloadTracker(context).isDownloaded(MappingUtil.mapMediaItem(context, song, false))) {
|
||||
holder.downloadIndicator.setVisibility(View.VISIBLE);
|
||||
if (DownloadUtil.getDownloadTracker(holder.itemView.getContext()).isDownloaded(MappingUtil.mapMediaItem(song, false))) {
|
||||
holder.item.searchResultDowanloadIndicatorImageView.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.downloadIndicator.setVisibility(View.GONE);
|
||||
holder.item.searchResultDowanloadIndicatorImageView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if (isCoverVisible) CustomGlideRequest.Builder
|
||||
.from(context, song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new CenterCrop(), new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(holder.cover);
|
||||
.into(holder.item.songCoverImageView);
|
||||
|
||||
if (isCoverVisible) holder.trackNumber.setVisibility(View.INVISIBLE);
|
||||
if (isCoverVisible) holder.item.trackNumberTextView.setVisibility(View.INVISIBLE);
|
||||
|
||||
if (!isCoverVisible) holder.cover.setVisibility(View.INVISIBLE);
|
||||
if (!isCoverVisible) holder.item.songCoverImageView.setVisibility(View.INVISIBLE);
|
||||
|
||||
if (!isCoverVisible && (position > 0 && songs.get(position - 1) != null && songs.get(position - 1).getDiscNumber() < songs.get(position).getDiscNumber())) {
|
||||
holder.differentDiscDivider.setVisibility(View.VISIBLE);
|
||||
holder.item.differentDiskDivider.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,34 +88,20 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
View differentDiscDivider;
|
||||
TextView songTitle;
|
||||
TextView songSubtitle;
|
||||
TextView trackNumber;
|
||||
View downloadIndicator;
|
||||
View coverSeparator;
|
||||
ImageView more;
|
||||
ImageView cover;
|
||||
ItemHorizontalTrackBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHorizontalTrackBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
differentDiscDivider = itemView.findViewById(R.id.different_disk_divider);
|
||||
songTitle = itemView.findViewById(R.id.search_result_song_title_text_view);
|
||||
songSubtitle = itemView.findViewById(R.id.search_result_song_subtitle_text_view);
|
||||
trackNumber = itemView.findViewById(R.id.track_number_text_view);
|
||||
downloadIndicator = itemView.findViewById(R.id.search_result_dowanload_indicator_image_view);
|
||||
more = itemView.findViewById(R.id.search_result_song_more_button);
|
||||
cover = itemView.findViewById(R.id.song_cover_image_view);
|
||||
coverSeparator = itemView.findViewById(R.id.cover_image_separator);
|
||||
this.item = item;
|
||||
|
||||
songTitle.setSelected(true);
|
||||
songSubtitle.setSelected(true);
|
||||
item.searchResultSongTitleTextView.setSelected(true);
|
||||
item.searchResultSongSubtitleTextView.setSelected(true);
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
itemView.setOnLongClickListener(v -> onLongClick());
|
||||
|
||||
more.setOnClickListener(v -> onLongClick());
|
||||
item.searchResultSongMoreButton.setOnClickListener(v -> onLongClick());
|
||||
}
|
||||
|
||||
public void onClick() {
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
package com.cappielloantonio.play.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
import com.cappielloantonio.play.databinding.ItemHomeYearBinding;
|
||||
import com.cappielloantonio.play.interfaces.ClickCallback;
|
||||
import com.cappielloantonio.play.model.Media;
|
||||
|
||||
@@ -18,13 +15,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class YearAdapter extends RecyclerView.Adapter<YearAdapter.ViewHolder> {
|
||||
private final Context context;
|
||||
private final ClickCallback click;
|
||||
|
||||
private List<Integer> years;
|
||||
|
||||
public YearAdapter(Context context, ClickCallback click) {
|
||||
this.context = context;
|
||||
public YearAdapter(ClickCallback click) {
|
||||
this.click = click;
|
||||
this.years = Collections.emptyList();
|
||||
}
|
||||
@@ -32,7 +27,7 @@ public class YearAdapter extends RecyclerView.Adapter<YearAdapter.ViewHolder> {
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.item_home_year, parent, false);
|
||||
ItemHomeYearBinding view = ItemHomeYearBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@@ -40,7 +35,7 @@ public class YearAdapter extends RecyclerView.Adapter<YearAdapter.ViewHolder> {
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
int year = years.get(position);
|
||||
|
||||
holder.textYear.setText(Integer.toString(year));
|
||||
holder.item.yearLabel.setText(Integer.toString(year));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,12 +53,12 @@ public class YearAdapter extends RecyclerView.Adapter<YearAdapter.ViewHolder> {
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textYear;
|
||||
ItemHomeYearBinding item;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ViewHolder(ItemHomeYearBinding item) {
|
||||
super(item.getRoot());
|
||||
|
||||
textYear = itemView.findViewById(R.id.year_label);
|
||||
this.item = item;
|
||||
|
||||
itemView.setOnClickListener(v -> onClick());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user