package org.glucosio.android.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import org.glucosio.android.R; import org.glucosio.android.db.DatabaseHandler; import org.glucosio.android.object.A1cEstimate; import org.glucosio.android.tools.GlucosioConverter; import java.text.NumberFormat; import java.util.List; public class A1cEstimateAdapter extends ArrayAdapter<A1cEstimate> { private DatabaseHandler db; public A1cEstimateAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); } public A1cEstimateAdapter(Context context, int resource, List<A1cEstimate> items) { super(context, resource, items); db = new DatabaseHandler(context); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi; vi = LayoutInflater.from(getContext()); v = vi.inflate(R.layout.dialog_a1c_item, parent, false); } A1cEstimate p = getItem(position); if (p != null) { TextView value = (TextView) v.findViewById(R.id.dialog_a1c_item_value); TextView month = (TextView) v.findViewById(R.id.dialog_a1c_item_month); TextView glucoseAverage = (TextView) v.findViewById(R.id.dialog_a1c_item_glucose_value); if (value != null) { if ("percentage".equals(db.getUser(1).getPreferred_unit_a1c())) { String stringValue = p.getValue() + " %"; value.setText(stringValue); } else { String stringValue = GlucosioConverter.a1cNgspToIfcc(p.getValue()) + " mmol/mol"; value.setText(stringValue); } } if (month != null) { month.setText(p.getMonth()); } if (glucoseAverage != null) { if ("mg/dL".equals(db.getUser(1).getPreferred_unit())) { glucoseAverage.setText(getContext().getString(R.string.mg_dL_value, p.getGlucoseAverage())); } else { int mmol = GlucosioConverter.glucoseToMgDl(Double.parseDouble(p.getGlucoseAverage())); String reading = NumberFormat.getInstance().format(mmol); glucoseAverage.setText(getContext().getString(R.string.mmol_L_value, reading)); } } } return v; } }