package com.artemzin.qualitymatters.ui.adapters; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; import com.artemzin.qualitymatters.R; import com.artemzin.qualitymatters.api.entities.Item; import com.artemzin.qualitymatters.models.QualityMattersImageLoader; import java.util.List; import static java.util.Collections.emptyList; import static java.util.Collections.unmodifiableList; public class ItemsAdapter extends RecyclerView.Adapter<ItemViewHolder> { @NonNull private final LayoutInflater layoutInflater; @NonNull private final QualityMattersImageLoader imageLoader; @NonNull private List<Item> items = emptyList(); public ItemsAdapter(@NonNull LayoutInflater layoutInflater, @NonNull QualityMattersImageLoader imageLoader) { this.layoutInflater = layoutInflater; this.imageLoader = imageLoader; } @Override public int getItemCount() { return items.size(); } public void setData(@NonNull List<Item> items) { this.items = unmodifiableList(items); // Prevent possible side-effects. notifyDataSetChanged(); } @Override @NonNull public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ItemViewHolder(layoutInflater.inflate(R.layout.list_item, parent, false), imageLoader); } @Override public void onBindViewHolder(@NonNull ItemViewHolder viewHolder, int position) { viewHolder.bind(items.get(position)); } }