package openfoodfacts.github.scrachx.openfood.views.adapters; import android.app.Activity; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import java.util.List; import openfoodfacts.github.scrachx.openfood.R; import openfoodfacts.github.scrachx.openfood.models.Allergen; import openfoodfacts.github.scrachx.openfood.utils.Utils; public class AllergensAdapter extends RecyclerView.Adapter<AllergensAdapter.ViewHolder> { private List<Allergen> mAllergens; private Activity mActivity; public AllergensAdapter(List<Allergen> allergens, Activity activity) { mAllergens = allergens; mActivity = activity; } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView nameTextView; public Button messageButton; public ViewHolder(View itemView) { super(itemView); nameTextView = (TextView) itemView.findViewById(R.id.allergen_name); messageButton = (Button) itemView.findViewById(R.id.delete_button); } } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { Context context = parent.getContext(); LayoutInflater inflater = LayoutInflater.from(context); View contactView = inflater.inflate(R.layout.item_allergens, parent, false); return new ViewHolder(contactView); } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { final Allergen allergen = mAllergens.get(position); TextView textView = holder.nameTextView; textView.setText(allergen.getName().substring(allergen.getName().indexOf(":")+1)); Button button = holder.messageButton; button.setText(R.string.delete_txt); button.setOnClickListener(v -> { mAllergens.remove(holder.getAdapterPosition()); allergen.setEnable("false"); Utils.getAppDaoSession(mActivity).getAllergenDao().update(allergen); notifyItemRemoved(holder.getAdapterPosition()); }); } @Override public int getItemCount() { return mAllergens.size(); } }