package net.qiujuer.tips.view.adapter;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import net.qiujuer.tips.R;
import net.qiujuer.tips.factory.model.adapter.RecordViewModel;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class TimeLineAdapter extends RecyclerView.Adapter<RecordsViewHolder> implements net.qiujuer.tips.factory.adapter.BaseAdapter<RecordViewModel> {
private List<RecordViewModel> mDataSet;
private AdapterSelectCallback mCallback;
@Override
public RecordsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// Create a new view.
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_list_records_recycler, parent, false);
RecordsViewHolder holder = new RecordsViewHolder(v, viewType);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Object object = v.getTag();
if (object != null) {
mCallback.onItemSelected((UUID) object);
}
}
});
return holder;
}
@Override
public void onBindViewHolder(RecordsViewHolder holder, int position) {
holder.setData(mDataSet.get(position));
}
@Override
public int getItemViewType(int position) {
final int size = mDataSet.size() - 1;
if (size == 0)
return ItemType.ATOM;
else if (position == 0)
return ItemType.START;
else if (position == size)
return ItemType.END;
else return ItemType.NORMAL;
}
@Override
public int getItemCount() {
return mDataSet.size();
}
@Override
public List<RecordViewModel> getDataSet() {
return mDataSet;
}
@Override
public void setDataSet(List<RecordViewModel> dataSet) {
if (dataSet == null)
dataSet = new ArrayList<RecordViewModel>();
this.mDataSet = dataSet;
}
@Override
public void setNull(boolean isNull) {
}
public void setCallback(AdapterSelectCallback callback) {
mCallback = callback;
}
}