/* * This program is part of the OpenLMIS logistics management information * system platform software. * * Copyright © 2015 ThoughtWorks, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. This program is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License for more details. You should * have received a copy of the GNU Affero General Public License along with * this program. If not, see http://www.gnu.org/licenses. For additional * information contact info@OpenLMIS.org */ package org.openlmis.core.view.adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import org.openlmis.core.R; import org.openlmis.core.view.holder.StockCardViewHolder; import org.openlmis.core.view.viewmodel.InventoryViewModel; import java.util.Collections; import java.util.Comparator; import java.util.List; public class StockCardListAdapter extends InventoryListAdapter<StockCardViewHolder> { protected StockCardViewHolder.OnItemViewClickListener listener; public StockCardListAdapter(List<InventoryViewModel> inventoryViewModel, StockCardViewHolder.OnItemViewClickListener listener) { super(inventoryViewModel); this.listener = listener; } @Override public StockCardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_stockcard, parent, false); return createViewHolder(view); } @Override public void onBindViewHolder(StockCardViewHolder holder, final int position) { final InventoryViewModel inventoryViewModel = filteredList.get(position); holder.populate(inventoryViewModel, queryKeyWord); } public void sortBySOH(final boolean asc) { Comparator<InventoryViewModel> stockCardComparator = new Comparator<InventoryViewModel>() { @Override public int compare(InventoryViewModel lhs, InventoryViewModel rhs) { if (asc) { return (int) (lhs.getStockOnHand() - rhs.getStockOnHand()); } else { return (int) (rhs.getStockOnHand() - lhs.getStockOnHand()); } } }; Collections.sort(filteredList, stockCardComparator); Collections.sort(data, stockCardComparator); this.notifyDataSetChanged(); } public void sortByName(final boolean asc) { Comparator<InventoryViewModel> stockCardComparator = new Comparator<InventoryViewModel>() { @Override public int compare(InventoryViewModel lhs, InventoryViewModel rhs) { if (asc) { return lhs.getProduct().getPrimaryName().compareTo(rhs.getProduct().getPrimaryName()); } else { return rhs.getProduct().getPrimaryName().compareTo(lhs.getProduct().getPrimaryName()); } } }; Collections.sort(filteredList, stockCardComparator); Collections.sort(data, stockCardComparator); this.notifyDataSetChanged(); } protected StockCardViewHolder createViewHolder(View view) { return new StockCardViewHolder(view, listener); } }