package in.vesely.eclub.yodaqa.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by vesely on 2/3/15.
*/
public abstract class RecyclerViewAdapterBase<T, V extends View & Binder<T>> extends RecyclerView.Adapter<ViewWrapper<T, V>> {
@Override
public final ViewWrapper<T, V> onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewWrapper<T, V>(onCreateItemView(parent, viewType));
}
protected abstract V onCreateItemView(ViewGroup parent, int viewType);
@Override
public void onBindViewHolder(ViewWrapper<T, V> viewHolder, int position) {
V view = viewHolder.getView();
T data = getItem(position);
view.bind(data, recalculateBindPosition(position));
}
protected int recalculateBindPosition(int position) {
return position;
}
protected abstract T getItem(int position);
}