package com.evancharlton.mileage.adapters;
import com.evancharlton.mileage.R;
import com.evancharlton.mileage.provider.tables.FillupsTable;
import android.content.Context;
import android.database.DataSetObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
public class CsvFieldAdapter implements SpinnerAdapter {
private final LayoutInflater mInflater;
public CsvFieldAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(android.R.layout.simple_dropdown_item_1line, parent,
false);
}
Holder holder = (Holder) convertView.getTag();
if (holder == null) {
holder = new Holder((TextView) convertView.findViewById(android.R.id.text1));
convertView.setTag(holder);
}
holder.text.setText(getText(position));
return convertView;
}
@Override
public int getCount() {
return FillupsTable.PROJECTION.length + 1;
}
@Override
public Object getItem(int position) {
if (position == FillupsTable.PROJECTION.length) {
return "skip";
}
return FillupsTable.PROJECTION[position];
}
@Override
public long getItemId(int position) {
return getItem(position).hashCode();
}
private int getText(int position) {
if (position == FillupsTable.PLAINTEXT.length) {
return R.string.column_none;
}
return FillupsTable.PLAINTEXT[position];
}
@Override
public int getItemViewType(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(android.R.layout.simple_spinner_item, parent, false);
}
TextView tv = (TextView) convertView.getTag();
if (tv == null) {
tv = (TextView) convertView.findViewById(android.R.id.text1);
convertView.setTag(tv);
}
tv.setText(getText(position));
return convertView;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
private static class Holder {
public final TextView text;
public Holder(TextView text) {
this.text = text;
}
}
}