package org.openlmis.core.view.adapter; import android.view.LayoutInflater; import android.view.ViewGroup; import org.openlmis.core.R; import org.openlmis.core.view.holder.SelectEmergencyProductsViewHolder; import org.openlmis.core.view.viewmodel.InventoryViewModel; import org.roboguice.shaded.goole.common.base.Predicate; import java.util.List; import static org.roboguice.shaded.goole.common.collect.FluentIterable.from; public class SelectEmergencyProductAdapter extends InventoryListAdapter<SelectEmergencyProductsViewHolder> implements FilterableAdapter { public static final int MAX_CHECKED_LIMIT = 10; public SelectEmergencyProductAdapter(List<InventoryViewModel> data) { super(data); } public List<InventoryViewModel> getCheckedProducts() { return from(data).filter(new Predicate<InventoryViewModel>() { @Override public boolean apply(InventoryViewModel viewModel) { return viewModel.isChecked(); } }).toList(); } @Override public SelectEmergencyProductsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new SelectEmergencyProductsViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_select_product, parent, false)); } @Override public void onBindViewHolder(SelectEmergencyProductsViewHolder holder, int position) { holder.populate(this, queryKeyWord, filteredList.get(position)); } public boolean isReachLimit() { return getCheckedProducts().size() == MAX_CHECKED_LIMIT; } }