package com.tevinjeffrey.rutgersct.ui.subject;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tevinjeffrey.rutgersct.R;
import com.tevinjeffrey.rutgersct.ui.utils.ItemClickListener;
import com.tevinjeffrey.rutgersct.rutgersapi.model.Subject;
import java.util.List;
public class SubjectFragmentAdapter extends RecyclerView.Adapter<SubjectVH> {
private final List<Subject> subjectList;
private final ItemClickListener<Subject, View> itemClickListener;
public SubjectFragmentAdapter(List<Subject> subjectList, @NonNull ItemClickListener<Subject, View> listener) {
this.subjectList = subjectList;
this.itemClickListener = listener;
setHasStableIds(true);
}
@Override
public SubjectVH onCreateViewHolder(ViewGroup viewGroup, int viewType) {
final Context context = viewGroup.getContext();
final View parent = LayoutInflater.from(context).inflate(R.layout.subject_list_item, viewGroup, false);
return SubjectVH.newInstance(parent);
}
@Override
public void onBindViewHolder(final SubjectVH holder, int position) {
final Subject subject = subjectList.get(position);
holder.setSubjectTitle(subject);
holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemClickListener.onItemClicked(subject, v);
}
});
}
@Override
public long getItemId(int position) {
return Long.valueOf(subjectList.get(position).getCode());
}
@Override
public int getItemCount() {
return subjectList.size();
}
}