package com.github.glomadrian.mvpcleanarchitecture.ui.adapter;
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.github.glomadrian.mvpcleanarchitecture.R;
import com.github.glomadrian.mvpcleanarchitecture.ui.viewholder.AbstractRecyclerViewHolder;
import com.github.glomadrian.mvpcleanarchitecture.ui.viewmodel.Model;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import butterknife.InjectView;
/**
* @author glomadrian
*/
public class ModelAdapter extends RecyclerView.Adapter<ModelAdapter.ViewHolder> {
private List<Model> models;
public ModelAdapter() {
models = new ArrayList<Model>();
}
public ModelAdapter(List<Model> models) {
this.models = models;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View modelView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.model, viewGroup, false);
return new ViewHolder(modelView);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
Model model = models.get(position);
viewHolder.modelTitle.setText(model.getTitle());
viewHolder.modelSubtitle.setText(model.getSubtitle());
Picasso.with(viewHolder.view.getContext())
.load(model.getImageUrl())
.into(viewHolder.imageView);
}
@Override
public int getItemCount() {
return models.size();
}
public void add(Model model) {
models.add(model);
notifyDataSetChanged();
}
public void add(List<Model> models) {
this.models.addAll(models);
notifyDataSetChanged();
}
public class ViewHolder extends AbstractRecyclerViewHolder {
View view;
@InjectView(R.id.model_title)
TextView modelTitle;
@InjectView(R.id.model_image)
ImageView imageView;
@InjectView(R.id.model_subtitle)
TextView modelSubtitle;
public ViewHolder(View itemView) {
super(itemView);
this.view = itemView;
}
}
}