package cl.monsoon.s1next.view.adapter;
import android.content.Context;
import android.content.res.Resources;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v7.widget.ThemedSpinnerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.List;
/**
* See http://stackoverflow.com/a/32066279
*/
public final class ArrayAdapterCompat<T> extends ArrayAdapter<T> implements ThemedSpinnerAdapter {
@LayoutRes
private int mDropDownResource;
private final ThemedSpinnerAdapter.Helper mDropDownHelper;
public ArrayAdapterCompat(Context context, @LayoutRes int resource, List<T> objects) {
super(context, resource, objects);
mDropDownResource = resource;
mDropDownHelper = new ThemedSpinnerAdapter.Helper(context);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
// inflate the drop down using the helper's LayoutInflater
LayoutInflater inflater = mDropDownHelper.getDropDownViewInflater();
textView = (TextView) inflater.inflate(mDropDownResource, parent, false);
} else {
textView = (TextView) convertView;
}
T item = getItem(position);
if (item instanceof CharSequence) {
textView.setText((CharSequence) item);
} else {
textView.setText(item.toString());
}
return textView;
}
@Override
public void setDropDownViewResource(@LayoutRes int resource) {
mDropDownResource = resource;
}
@Override
public void setDropDownViewTheme(Resources.Theme theme) {
mDropDownHelper.setDropDownViewTheme(theme);
}
@Override
@Nullable
public Resources.Theme getDropDownViewTheme() {
return mDropDownHelper.getDropDownViewTheme();
}
}