package openfoodfacts.github.scrachx.openfood.views.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import openfoodfacts.github.scrachx.openfood.R;
import openfoodfacts.github.scrachx.openfood.models.NutrimentItem;
/**
* @author herau
*/
public class NutrimentsRecyclerViewAdapter extends RecyclerView.Adapter {
private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
private final List<NutrimentItem> nutrimentItems;
public NutrimentsRecyclerViewAdapter(List<NutrimentItem> nutrimentItems) {
super();
this.nutrimentItems = nutrimentItems;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
boolean isViewTypeHeader = viewType == TYPE_HEADER;
int layoutResourceId = isViewTypeHeader ? R.layout.nutriment_item_list_header : R.layout.nutriment_item_list;
View v = LayoutInflater.from(parent.getContext()).inflate(layoutResourceId, parent, false);
return isViewTypeHeader ? new NutrimentHeaderViewHolder(v) : new NutrimentViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (!(holder instanceof NutrimentViewHolder)) {
return;
}
NutrimentItem item = nutrimentItems.get(position);
NutrimentViewHolder nutrimentViewHolder = (NutrimentViewHolder) holder;
nutrimentViewHolder.vNutrimentName.setText(item.getTitle());
nutrimentViewHolder.vNutrimentValue.append(item.getValue());
nutrimentViewHolder.vNutrimentValue.append(" ");
nutrimentViewHolder.vNutrimentValue.append(item.getUnit());
nutrimentViewHolder.vNutrimentServingValue.append(item.getServingValue());
nutrimentViewHolder.vNutrimentServingValue.append(" ");
nutrimentViewHolder.vNutrimentServingValue.append(item.getUnit());
}
@Override
public int getItemViewType(int position) {
return isPositionHeader(position) ? TYPE_HEADER : TYPE_ITEM;
}
private boolean isPositionHeader(int position) {
return position == 0;
}
@Override
public int getItemCount() {
return nutrimentItems.size();
}
class NutrimentViewHolder extends RecyclerView.ViewHolder {
TextView vNutrimentName;
TextView vNutrimentValue;
TextView vNutrimentServingValue;
public NutrimentViewHolder(View v) {
super(v);
vNutrimentName = (TextView) v.findViewById(R.id.nutriment_name);
vNutrimentValue = (TextView) v.findViewById(R.id.nutriment_value);
vNutrimentServingValue = (TextView) v.findViewById(R.id.nutriment_serving_value);
}
}
class NutrimentHeaderViewHolder extends RecyclerView.ViewHolder {
public NutrimentHeaderViewHolder(View itemView) {
super(itemView);
}
}
}