package com.quinn.githubknife.ui.adapter;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.quinn.githubknife.R;
import com.quinn.githubknife.ui.widget.AnimateFirstDisplayListener;
import com.quinn.githubknife.ui.widget.RecycleItemClickListener;
import com.quinn.httpknife.github.User;
import java.util.List;
import de.hdodenhof.circleimageview.CircleImageView;
/**
* Created by Quinn on 7/19/15.
*/
public class UsersAdapter extends
RecyclerView.Adapter<UsersAdapter.ViewHolder>{
private List<User> dataItems;
private ImageLoader imageLoader;
private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
private DisplayImageOptions option;
private RecycleItemClickListener itemClickListener;
public UsersAdapter(List<User> dataItems){
this.dataItems = dataItems;
imageLoader = ImageLoader.getInstance();
option = new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true)
.considerExifParams(true).build();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final LayoutInflater mInflater = LayoutInflater.from(parent
.getContext());
final View sView = mInflater.inflate(R.layout.item_userslist, parent,
false);
return new ViewHolder(sView,itemClickListener);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.name.setText(dataItems.get(position).getLogin());
holder.avatar.setImageResource(R.drawable.ic_headset);
imageLoader.displayImage(dataItems.get(position).getAvatar_url(),holder.avatar,option,animateFirstListener);
}
@Override
public int getItemCount() {
return dataItems.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private RecycleItemClickListener mItemClickListener;
public CircleImageView avatar;
public TextView name;
public ViewHolder(View view,RecycleItemClickListener itemClickListener){
super(view);
avatar = (CircleImageView) view.findViewById(R.id.avatar);
name = (TextView) view.findViewById(R.id.name);
mItemClickListener = itemClickListener;
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(mItemClickListener != null){
mItemClickListener.onItemClick(v,getPosition());
}
}
}
public void setOnItemClickListener(RecycleItemClickListener listener) {
this.itemClickListener = listener;
}
}