Aggregated stats in first working state.

This commit is contained in:
FNelson
2010-08-04 11:58:43 +01:00
parent 0ccd05e605
commit b464526d5e
5 changed files with 34 additions and 31 deletions
@@ -1,24 +1,22 @@
package com.google.android.apps.mytracks;
import java.util.Collection;
import java.util.List;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Window;
import android.widget.ScrollView;
import android.widget.TextView;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.maps.mytracks.R;
/**
* Activity for viewing the combined statistics for all the recorded tracks.
*
@@ -50,6 +48,7 @@ public class AggregatedStatsActivity extends Activity
MyTracksSettings.METRIC_UNITS, true);
utils.setMetricUnits(metricUnits);
utils.updateUnits();
loadAggregatedStats();
}
}
}
@@ -60,7 +59,6 @@ public class AggregatedStatsActivity extends Activity
// We don't need a window title bar:
requestWindowFeature(Window.FEATURE_NO_TITLE);
//TODO - change to custom layout - without dynamic fields
setContentView(R.layout.stats);
ScrollView sv = ((ScrollView) findViewById(R.id.scrolly));
@@ -83,8 +81,14 @@ public class AggregatedStatsActivity extends Activity
if (metrics.heightPixels > 600) {
((TextView) findViewById(R.id.speed_register)).setTextSize(80.0f);
}
loadAggregatedStats();
}
/**
* 1. Reads tracks from the db
* 2. Merges the trip stats from the tracks
* 3. Updates the view
*/
private void loadAggregatedStats() {
List<Track> tracks = retrieveTracks();
TripStatistics rollingStats = null;
@@ -98,14 +102,13 @@ public class AggregatedStatsActivity extends Activity
updateView(rollingStats);
}
private List<Track> retrieveTracks() {
return tracksProvider.retrieveAllTracks();
}
private void updateView(TripStatistics aggStats) {
if (aggStats != null) {
utils.setAllStats(aggStats);
}
}
}
@@ -15,12 +15,6 @@
*/
package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.content.WaypointsColumns;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.content.ContentValues;
import android.content.SharedPreferences;
@@ -34,6 +28,12 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.content.WaypointsColumns;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.maps.mytracks.R;
/**
* Screen in which the user enters details about a waypoint.
*
@@ -135,7 +135,6 @@ public class MyTracksWaypointDetails extends Activity
iconId = R.drawable.ylw_pushpin;
TripStatistics waypointStats = waypoint.getStatistics();
utils.setAllStats(waypointStats);
utils.setTime(R.id.total_time_register, waypointStats.getTotalTime());
utils.setAltitude(
R.id.elevation_register, waypoint.getLocation().getAltitude());
break;
@@ -15,17 +15,17 @@
*/
package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.UnitConversions;
import com.google.android.maps.mytracks.R;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import android.app.Activity;
import android.util.Log;
import android.widget.TextView;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.UnitConversions;
import com.google.android.maps.mytracks.R;
/**
* Various utility functions for views that display statistics information.
@@ -218,7 +218,7 @@ public class StatsUtilities {
setGrade(R.id.max_grade_register, maxGrade);
}
public void setAllStats(TripStatistics stats) {
public void setAllStats(TripStatistics stats) {
setTime(R.id.moving_time_register, stats.getMovingTime());
setDistance(R.id.total_distance_register, stats.getTotalDistance() / 1000);
setSpeed(R.id.average_speed_register, stats.getAverageSpeed() * 3.6);
@@ -230,6 +230,8 @@ public class StatsUtilities {
setAltitude(R.id.elevation_gain_register, stats.getTotalElevationGain());
setGrade(R.id.min_grade_register, stats.getMinGrade());
setGrade(R.id.max_grade_register, stats.getMaxGrade());
setTime(R.id.total_time_register, stats.getTotalTime());
}
public void setSpeedLabel(int id, int speedString, int paceString) {
@@ -15,7 +15,6 @@
*/
package com.google.android.apps.mytracks.content;
import java.util.Collection;
import java.util.List;
import android.content.Context;
@@ -189,10 +188,10 @@ public interface MyTracksProviderUtils {
/**
* Retrieves all tracks without track points. If no tracks exist an empty
* collection will be returns. Use {@link #getTrackPoints(Track, int)} to load
* list will be returned. Use {@link #getTrackPoints(Track, int)} to load
* the track points.
*
* @return a collection of all the recorded tracks
* @return a list of all the recorded tracks
*/
List<Track> retrieveAllTracks();
@@ -15,12 +15,9 @@
*/
package com.google.android.apps.mytracks.content;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import com.google.android.apps.mytracks.stats.TripStatistics;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -28,6 +25,8 @@ import android.location.Location;
import android.net.Uri;
import android.util.Log;
import com.google.android.apps.mytracks.stats.TripStatistics;
/**
* Helper class providing easy access to locations and tracks in the
* MyTracksProvider. All static members.
@@ -807,10 +806,11 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils {
return findTrackBy(select);
}
@Override
public List<Track> retrieveAllTracks() {
List<Track> tracks = new LinkedList<Track>();
Cursor cursor = getTracksCursor(null);
if (cursor != null) {
if (cursor != null && cursor.moveToFirst()) {
do {
tracks.add(createTrack(cursor));
} while(cursor.moveToNext());