package com.linroid.sky31radio.ui.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.ImageView;
import android.widget.TextView;
import com.linroid.sky31radio.R;
import com.linroid.sky31radio.model.Album;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* Created by linroid on 1/15/15.
*/
public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder> {
List<Album> albumList = new ArrayList<>();
Picasso picasso;
String programCountTpl;
OnAlbumSelectedListener listener;
public AlbumAdapter(Context ctx, Picasso picasso) {
this.picasso = picasso;
programCountTpl = ctx.getResources().getString(R.string.tpl_program_count);
}
public void setOnAlbumSelectedListener(OnAlbumSelectedListener listener) {
this.listener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
View view = inflater.inflate(R.layout.list_album, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int i) {
Album album = albumList.get(i);
holder.nameTV.setText(album.getName());
holder.programCountTV.setText(String.format(programCountTpl, album.getProgramCount()));
picasso.load(album.getCover()).placeholder(R.drawable.holde_image).into(holder.thumbnailIV);
}
@Override
public int getItemCount() {
return albumList==null ? 0 : albumList.size();
}
public void setListData(List<Album> listData) {
this.albumList.clear();
this.albumList = listData;
}
public List<Album> getAlbumList() {
return albumList;
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
@InjectView(R.id.album_thumbnail)
ImageView thumbnailIV;
@InjectView(R.id.album_name)
TextView nameTV;
@InjectView(R.id.album_program_count)
TextView programCountTV;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.inject(this, itemView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getPosition();
if(listener!=null){
Album album = albumList.get(position);
listener.onAlbumSelected(album);
}
}
}
public static interface OnAlbumSelectedListener{
void onAlbumSelected(Album album);
}
}