package apps.makarov.com.whereismycurrency.view.adapters.sections; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; import apps.makarov.com.whereismycurrency.view.adapters.HistoryAdapter; import apps.makarov.com.whereismycurrency.view.adapters.sections.holder.ModelWrapper; import apps.makarov.com.whereismycurrency.view.adapters.viewholders.ViewHolderWrapper; /** * Created by makarov on 02/08/15. */ public abstract class SectionsAdapter<T extends ViewHolderWrapper> extends RecyclerView.Adapter<T> { public static final String TAG = HistoryAdapter.class.getSimpleName(); private List<ModelWrapper> mModelWrapperList = new ArrayList<>(); public SectionsAdapter(List<ModelWrapper> modelWrapperList) { mModelWrapperList = modelWrapperList; } @Override public int getItemViewType(int position) { return mModelWrapperList.get(position).getType(); } @Override public T onCreateViewHolder(ViewGroup parent, int viewType) { return getHolder(parent, viewType); } protected abstract T getHolder(ViewGroup parent, int viewType); @Override public void onBindViewHolder(ViewHolderWrapper holder, final int position) { holder.bindModelToView(getWrapperModel(position)); createdListeners(holder, getWrapperModel(position), getItemViewType(position)); } protected abstract void createdListeners(ViewHolderWrapper holder, Object object, int type); private Object getWrapperModel(int position){ return mModelWrapperList.get(position).getModel(); } @Override public int getItemCount() { return mModelWrapperList.size(); } }