package com.florianmski.tracktoid.adapters;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
public abstract class RecyclerAdapter<E, VH extends RecyclerAdapter.ViewHolder> extends RecyclerView.Adapter<VH> implements AdapterInterface<E>
{
protected Context context;
protected List<E> data;
protected OnItemClickListener listener;
public RecyclerAdapter(Context context, List<E> data, OnItemClickListener listener)
{
this.context = context;
this.data = data;
this.listener = listener;
}
public RecyclerAdapter(Context context, List<E> data)
{
this(context, data, null);
}
@Override
public int getItemCount()
{
return data.size();
}
@Override
public void refresh(List<E> data)
{
this.data = data;
notifyDataSetChanged();
}
@Override
public void reset()
{
this.data = new ArrayList<E>();
notifyDataSetChanged();
}
@Override
public E getItem2(int position)
{
return data.get(position);
}
public interface OnItemClickListener
{
public void onItemClick(View v, int position);
}
public static class ViewHolder extends RecyclerView.ViewHolder
{
public ViewHolder(final View itemView, final OnItemClickListener listener)
{
super(itemView);
if(listener != null)
itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
listener.onItemClick(itemView, getPosition());
}
});
}
public ViewHolder(final View itemView)
{
this(itemView, null);
}
}
}