package ie.cathalcoffey.android.projecteuler;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class CustomArrayAdapter extends ArrayAdapter<Object> {
Context context;
Object[] labels;
public CustomArrayAdapter(Context context, int resource, Object[] objects) {
super(context, resource, objects);
this.context = context;
this.labels = objects;
}
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
if(convertView == null)
{
LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = vi.inflate(R.layout.spinner_item, parent, false);
}
TextView label = (TextView)row.findViewById(R.id.text1);
String label_text = labels[position].toString();
label.setText(label_text);
return row;
}
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
if(convertView == null)
{
LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = vi.inflate(R.layout.spinner_dropdown_item, parent, false);
}
TextView label = (TextView)row.findViewById(R.id.text1);
String label_text = labels[position].toString();
label.setText(label_text);
TextView count = (TextView)row.findViewById(R.id.text2);
count.setVisibility(View.GONE);
String text = count.getText().toString();
if (!((Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && ViewConfiguration.get(context).hasPermanentMenuKey()) || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB))
{
int count_text = 0;
switch(Label.valueOf(label_text))
{
case All:
count_text = MyApplication.COUNT_ALL;
break;
case Solved:
count_text = MyApplication.COUNT_SOLVED;
break;
case Starred:
count_text = MyApplication.stars.size();
break;
case Unsolved:
count_text = MyApplication.COUNT_ALL - MyApplication.COUNT_SOLVED;
break;
}
count.setText("" + count_text);
count.setVisibility(View.VISIBLE);
}
return row;
}
}