package com.sdsmdg.harjot.MusicDNA.fragments.LocalMusicFragments; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.MediaMetadataRetriever; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.sdsmdg.harjot.MusicDNA.models.LocalTrack; import com.sdsmdg.harjot.MusicDNA.R; import com.sdsmdg.harjot.MusicDNA.imageloader.ImageLoader; import java.util.List; /** * Created by Harjot on 09-May-16. */ public class LocalTrackRecyclerAdapter extends RecyclerView.Adapter<LocalTrackRecyclerAdapter.MyViewHolder> { private List<LocalTrack> localTracks; private Context ctx; ImageLoader imgLoader; public class MyViewHolder extends RecyclerView.ViewHolder { ImageView art; TextView title, artist; public MyViewHolder(View view) { super(view); art = (ImageView) view.findViewById(R.id.img_2); title = (TextView) view.findViewById(R.id.title_2); artist = (TextView) view.findViewById(R.id.url_2); } } public LocalTrackRecyclerAdapter(List<LocalTrack> localTracks, Context ctx) { this.localTracks = localTracks; this.ctx = ctx; imgLoader = new ImageLoader(ctx); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item_2, parent, false); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { LocalTrack track = localTracks.get(position); holder.title.setText(track.getTitle()); holder.artist.setText(track.getArtist()); imgLoader.DisplayImage(track.getPath(), holder.art); } @Override public int getItemCount() { return localTracks.size(); } public static Bitmap getAlbumArt(String path) { android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(path); Bitmap bitmap = null; byte[] data = mmr.getEmbeddedPicture(); if (data != null) { bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); return bitmap; } else { return null; } } }