package com.robert.maps.applib.kml;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;
import com.robert.maps.applib.R;
import com.robert.maps.applib.kml.constants.PoiConstants;
import com.robert.maps.applib.utils.DistanceFormatter;
import com.robert.maps.applib.utils.Units;
public class TrackStatActivity extends Activity {
private DistanceFormatter mDf;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDf = new DistanceFormatter(this);
this.setContentView(R.layout.track_stat);
Bundle extras = getIntent().getExtras();
if(extras == null) extras = new Bundle();
final int id = extras.getInt("id", PoiConstants.EMPTY_ID);
if (id >= 0) {
final PoiManager mPoiManager = new PoiManager(this);
final Track tr = mPoiManager.getTrack(id);
if (tr != null){
final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
final TrackStatHelper stat = tr.CalculateStatFull();
final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
final Units units = new Units(pref);
((TextView)findViewById(R.id.duration_unit)).setText(String.format("(%s-%s)", sdf.format(stat.Date1), sdf.format(stat.Date2)));
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
sdf.applyPattern("HH:mm:ss");
((TextView)findViewById(R.id.Name)).setText(tr.Name);
((TextView)findViewById(R.id.duration_data)).setText(sdf.format(new Date((long) (tr.Duration*1000))));
((TextView)findViewById(R.id.distance_data)).setText(String.format("%.2f", units.KM(tr.Distance/1000)));
((TextView)findViewById(R.id.points_data)).setText(String.format("%d", tr.Cnt));
((TextView)findViewById(R.id.avgspeed_data)).setText(mDf.formatSpeed2(stat.AvgSpeed)[0]);
((TextView)findViewById(R.id.avgpace_data)).setText(String.format("%d:%02d", (int)(units.MINKM(stat.AvgPace)/60), (int)(units.MINKM(stat.AvgPace) - 60 * (int)(units.MINKM(stat.AvgPace)/60))));
((TextView)findViewById(R.id.maxspeed_data)).setText(mDf.formatSpeed2(stat.MaxSpeed)[0]);
((TextView)findViewById(R.id.movetime_data)).setText(sdf.format(new Date((long) (stat.MoveTime))));
((TextView)findViewById(R.id.moveavgspeed_data)).setText(mDf.formatSpeed2(stat.AvgMoveSpeed)[0]);
((TextView)findViewById(R.id.minele_data)).setText(String.format("%.1f", units.M(stat.MinEle)));
((TextView)findViewById(R.id.maxele_data)).setText(String.format("%.1f", units.M(stat.MaxEle)));
((TextView)findViewById(R.id.distance_unit)).setText(units.KM());
((TextView)findViewById(R.id.points_unit)).setText(R.string.blank);
((TextView)findViewById(R.id.avgspeed_unit)).setText(units.KMH());
((TextView)findViewById(R.id.avgpace_unit)).setText(units.MINKM());
((TextView)findViewById(R.id.maxspeed_unit)).setText(units.KMH());
((TextView)findViewById(R.id.movetime_unit)).setText(R.string.blank);
((TextView)findViewById(R.id.moveavgspeed_unit)).setText(units.KMH());
((TextView)findViewById(R.id.minele_unit)).setText(units.M());
((TextView)findViewById(R.id.maxele_unit)).setText(units.M());
((ChartView) findViewById(R.id.chart)).setTrack(tr);
}
}
}
}