package com.geecko.QuickLyric.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.geecko.QuickLyric.MainActivity;
import com.geecko.QuickLyric.R;
import com.geecko.QuickLyric.model.Recents;
import java.io.File;
/**
* Created by steve on 4/7/17.
*/
public class RecentTracksAdapter extends RecyclerView.Adapter<RecentTracksAdapter.ViewHolder> {
private final Context mContext;
private Recents mData;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mArtistTextView;
public TextView mTitleTextView;
public ImageView mImageView;
public FrameLayout mContainer;
public ViewHolder(View v) {
super(v);
mArtistTextView = (TextView) v.findViewById(R.id.recents_artist_text);
mTitleTextView = (TextView) v.findViewById(R.id.recents_title_text);
mImageView = (ImageView) v.findViewById(R.id.recents_image_view_cover_art);
mContainer = (FrameLayout) v.findViewById(R.id.item_container);
}
}
public RecentTracksAdapter(Context context) {
mContext = context.getApplicationContext();
mData = Recents.getInstance(context);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
final ViewGroup v = (ViewGroup) inflater.inflate(R.layout.list_item_track, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
String artist = mData.get(position).mArtist;
String title = mData.get(position).mTitle;
holder.mArtistTextView.setText(artist);
holder.mTitleTextView.setText(title);
File artworksDir = new File(mContext.getCacheDir(), "artworks");
File artworkFile = new File(artworksDir, artist + title + ".png");
holder.mContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getAdapterPosition();
String artist = mData.get(pos).mArtist;
String title = mData.get(pos).mTitle;
MainActivity mainActivity = ((MainActivity) holder.mContainer.getContext());
mainActivity.updateLyricsFragment(R.animator.slide_out_end, artist, title);
}
});
Glide.with(mContext)
.load(artworkFile)
.fitCenter()
.crossFade()
.fallback(R.drawable.no_cover)
.placeholder(R.drawable.no_cover)
.into(holder.mImageView);
}
@Override
public int getItemCount() {
return Recents.getInstance(mContext).size();
}
}