Skip to content

Instantly share code, notes, and snippets.

@bengongon97
Last active August 10, 2020 05:43
Show Gist options
  • Save bengongon97/681b7a51099b0d4bf63ab3aeb4bbb758 to your computer and use it in GitHub Desktop.
Save bengongon97/681b7a51099b0d4bf63ab3aeb4bbb758 to your computer and use it in GitHub Desktop.
public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.PlayListView> {
public interface OnItemClickListener {
void onItemClick (List<HwAudioPlayItem> myPlayList, int position);
}
private PlaylistAdapter.OnItemClickListener onItemClickListener;
List<HwAudioPlayItem> myPlayList;
public PlaylistAdapter(List<HwAudioPlayItem> myPlayList){
this.myPlayList = myPlayList;
}
public void setOnItemClickListener(PlaylistAdapter.OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
static class PlayListView extends RecyclerView.ViewHolder {
TextView songNameTextView;
TextView songArtistTextView;
TextView durationTextView;
ImageView moreOptionsImageView;
public PlayListView(View itemView) {
super(itemView);
songNameTextView = itemView.findViewById(R.id.songTitleTextView);
songArtistTextView = itemView.findViewById(R.id.songArtistTextView);
durationTextView = itemView.findViewById(R.id.durationTextView);
moreOptionsImageView = itemView.findViewById(R.id.moreOptionsImageView);
}
}
@NonNull
@Override
public PlayListView onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.playlist_detail_layout, parent, false);
return new PlayListView(layoutView);
}
@Override
public void onBindViewHolder(final PlayListView holder, final int position) {
HwAudioPlayItem currentItem = myPlayList.get(holder.getAdapterPosition());
holder.songNameTextView.setText(currentItem.getAudioTitle());
holder.songArtistTextView.setText(currentItem.getSinger());
long durationOfSong = currentItem.getDuration();
String totalDurationText = String.format(Locale.US, "%02d:%02d",
TimeUnit.MILLISECONDS.toMinutes(durationOfSong),
TimeUnit.MILLISECONDS.toSeconds(durationOfSong) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(durationOfSong))
);
holder.durationTextView.setText(totalDurationText);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(onItemClickListener != null) {
onItemClickListener.onItemClick(myPlayList, position);
}
}
});
}
@Override
public int getItemCount() {
return myPlayList.size();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment