package edu.stanford.cs.sujogger.viewer;
import java.util.ArrayList;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import edu.stanford.cs.sujogger.R;
import edu.stanford.cs.sujogger.db.DatabaseHelper;
import edu.stanford.cs.sujogger.db.GPStracking;
import edu.stanford.cs.sujogger.db.GPStracking.Stats;
import edu.stanford.cs.sujogger.util.Common;
import edu.stanford.cs.sujogger.util.Constants;
import edu.stanford.cs.sujogger.util.Statistic;
import android.app.ListActivity;
public class StatisticsView extends ListActivity {
ArrayList<Statistic> mStats;
DatabaseHelper mDb;
long mGroupId;
public static final String TAG = "StatisticsView";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGroupId = getIntent().getExtras().getLong("group_id");
Common.log(TAG, "mGroupId is " + mGroupId);
mDb = new DatabaseHelper(this);
mStats = mDb.getStatistics(mGroupId);
setContentView(R.layout.list_simple);
setTitle("Statistics");
StatsListAdapter adapter = new StatsListAdapter(this, R.layout.ach_line, mStats);
setListAdapter(adapter);
}
public void setStatistics() {
mDb = new DatabaseHelper(this);
mDb.getStatistics(mGroupId);
}
class StatsListAdapter extends ArrayAdapter<Statistic> {
private ArrayList<Statistic> items;
Context context;
public StatsListAdapter(Context context, int textViewResourceId, ArrayList<Statistic> items) {
super(context, textViewResourceId, items);
this.context = context;
this.items = items;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.ach_line, null);
}
Statistic o = items.get(position);
if (o != null) {
TextView titleView = (TextView) v.findViewById(R.id.lb_name);
Common.log(TAG, "O.STAT_ID IS " + o.stat_id);
titleView.setText(GPStracking.Stats.ALL_STAT_TITLES[o.stat_id]);
double value = o.value;
TextView valueText = (TextView) v.findViewById(R.id.lb_value);
Context context = StatisticsView.this;
switch (o.stat_id) {
case Stats.DISTANCE_RAN_ID:
case Stats.DISTANCE_RAN_WEEK_ID:
case Stats.DISTANCE_RAN_MONTH_ID:
valueText.setText(Common.distanceString(context, value));
break;
case Stats.RUNNING_TIME_ID:
case Stats.RUNNING_TIME_WEEK_ID:
case Stats.RUNNING_TIME_MONTH_ID:
valueText.setText(Common.durationString(context, (long) value));
break;
case Stats.AVG_SPEED_ID:
case Stats.AVG_SPEED_WEEK_ID:
case Stats.AVG_SPEED_MONTH_ID:
valueText.setText(Common.speedString(context, value/((double)Constants.SPEED_CONVERSION_RATIO)));
break;
case Stats.NUM_RUNS_ID:
case Stats.NUM_RUNS_WEEK_ID:
case Stats.NUM_RUNS_MONTH_ID:
case Stats.NUM_PARTNER_RUNS_ID:
case Stats.NUM_PARTNER_RUNS_WEEK_ID:
case Stats.NUM_PARTNER_RUNS_MONTH_ID:
valueText.setText(String.valueOf((int) value));
break;
}
titleView.setText(GPStracking.Stats.ALL_STAT_TITLES[o.stat_id]);
}
return v;
}
}
}