// Path: app/src/main/java/bf/io/openshop/entities/SortItem.java
// public class SortItem {
// 
//     private String value;
//     private String description;
// 
//     public SortItem() {
// 
//     }
// 
//     public SortItem(String value, String description) {
//         this.value = value;
//         this.description = description;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         SortItem sortItem = (SortItem) o;
// 
//         if (value != null ? !value.equals(sortItem.value) : sortItem.value != null) return false;
//         return !(description != null ? !description.equals(sortItem.description) : sortItem.description != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = value != null ? value.hashCode() : 0;
//         result = 31 * result + (description != null ? description.hashCode() : 0);
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         return description;
//     }
// }


import android.app.Activity;
import android.widget.ArrayAdapter;
import java.util.ArrayList;
import java.util.List;
import bf.io.openshop.R;
import bf.io.openshop.entities.SortItem;
package bf.io.openshop.UX.adapters;





/**
 * Simple arrayAdapter for sort type selection.
 */
public class SortSpinnerAdapter extends ArrayAdapter<SortItem> {

    private List<SortItem> sortItemList = new ArrayList<>();

    /**
     * Creates an adapter for sort type selection.
     *
     * @param activity activity context.
     */
    public SortSpinnerAdapter(Activity activity) {
        super(activity, R.layout.spinner_item_sort);
        this.setDropDownViewResource(R.layout.spinner_item_sort_dropdown);

        //        this.layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        SortItem newest = new SortItem("newest", activity.getString(R.string.Whats_new));
        sortItemList.add(newest);
        SortItem popularity = new SortItem("popularity", activity.getString(R.string.Recommended));
        sortItemList.add(popularity);
        SortItem priceDesc = new SortItem("price_DESC", activity.getString(R.string.Highest_price));
        sortItemList.add(priceDesc);
        SortItem priceAsc = new SortItem("price_ASC", activity.getString(R.string.Lowest_price));
        sortItemList.add(priceAsc);

    }

// Path: app/src/main/java/bf/io/openshop/entities/SortItem.java
// public class SortItem {
// 
//     private String value;
//     private String description;
// 
//     public SortItem() {
// 
//     }
// 
//     public SortItem(String value, String description) {
//         this.value = value;
//         this.description = description;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         SortItem sortItem = (SortItem) o;
// 
//         if (value != null ? !value.equals(sortItem.value) : sortItem.value != null) return false;
//         return !(description != null ? !description.equals(sortItem.description) : sortItem.description != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = value != null ? value.hashCode() : 0;
//         result = 31 * result + (description != null ? description.hashCode() : 0);
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         return description;
//     }
// }


// Path: app/src/main/java/bf/io/openshop/UX/adapters/SortSpinnerAdapter.java
import android.app.Activity;
import android.widget.ArrayAdapter;
import java.util.ArrayList;
import java.util.List;
import bf.io.openshop.R;
import bf.io.openshop.entities.SortItem;

package bf.io.openshop.UX.adapters;





/**
 * Simple arrayAdapter for sort type selection.
 */
public class SortSpinnerAdapter extends ArrayAdapter<SortItem> {

    private List<SortItem> sortItemList = new ArrayList<>();

    /**
     * Creates an adapter for sort type selection.
     *
     * @param activity activity context.
     */
    public SortSpinnerAdapter(Activity activity) {
        super(activity, R.layout.spinner_item_sort);
        this.setDropDownViewResource(R.layout.spinner_item_sort_dropdown);

        //        this.layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        SortItem newest = new SortItem("newest", activity.getString(R.string.Whats_new));
        sortItemList.add(newest);
        SortItem popularity = new SortItem("popularity", activity.getString(R.string.Recommended));
        sortItemList.add(popularity);
        SortItem priceDesc = new SortItem("price_DESC", activity.getString(R.string.Highest_price));
        sortItemList.add(priceDesc);
        SortItem priceAsc = new SortItem("price_ASC", activity.getString(R.string.Lowest_price));
        sortItemList.add(priceAsc);

    }

    public int getCount() {