package com.sdsmdg.harjot.MusicDNA.snappyrecyclerview; 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 com.github.mmin18.widget.RealtimeBlurView; import com.sdsmdg.harjot.MusicDNA.models.UnifiedTrack; import com.sdsmdg.harjot.MusicDNA.R; import com.sdsmdg.harjot.MusicDNA.imageloader.ImageLoader; import com.squareup.picasso.Picasso; import java.util.List; /** * Created by Harjot on 22-Nov-16. */ public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { Context ctx; SnappyRecyclerView recyclerView; List<UnifiedTrack> queue; ImageLoader imgLoader; public CustomAdapter(Context ctx, SnappyRecyclerView recyclerView, List<UnifiedTrack> queue) { this.ctx = ctx; this.recyclerView = recyclerView; this.queue = queue; imgLoader = new ImageLoader(ctx); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.custom_visualizer_element, parent, false); return new ViewHolder(itemView); } @Override public void onBindViewHolder(ViewHolder holder, int position) { UnifiedTrack ut = queue.get(position); holder.albumArt.setAlpha(0.35f); if (ut.getType()) { Bitmap bmp = getBitmap(ut.getLocalTrack().getPath()); if (bmp != null) { holder.albumArt.setScaleType(ImageView.ScaleType.CENTER_CROP); holder.albumArt.setImageBitmap(bmp); } else { holder.albumArt.setScaleType(ImageView.ScaleType.CENTER); holder.albumArt.setImageResource(R.drawable.ic_default); } } else { Picasso.with(ctx).load(ut.getStreamTrack().getArtworkURL()).into(holder.albumArt); } } @Override public int getItemCount() { return queue.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public ImageView albumArt; public RealtimeBlurView blurredAlbumArt; public ViewHolder(View itemView) { super(itemView); albumArt = (ImageView) itemView.findViewById(R.id.album_art_container_v); blurredAlbumArt = (RealtimeBlurView) itemView.findViewById(R.id.blurred_album_art); } } public Bitmap getBitmap(String url) { try { android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(url); Bitmap bitmap = null; byte[] data = mmr.getEmbeddedPicture(); if (data != null) { bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); return bitmap; } else { return null; } } catch (Throwable ex) { ex.printStackTrace(); } return null; } }