diff --git a/MyTracks/.settings/org.eclipse.jdt.core.prefs b/MyTracks/.settings/org.eclipse.jdt.core.prefs
index dec15e80b..65082d868 100644
--- a/MyTracks/.settings/org.eclipse.jdt.core.prefs
+++ b/MyTracks/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Thu Aug 12 18:54:52 BRT 2010
+#Wed Sep 29 18:44:16 BRT 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml
index 2b14aad27..79f8ff518 100755
--- a/MyTracks/AndroidManifest.xml
+++ b/MyTracks/AndroidManifest.xml
@@ -56,8 +56,11 @@
+
+
+ android:label="@string/statistics" />
diff --git a/MyTracks/res/drawable/btn_arrow_left_default.png b/MyTracks/res/drawable/btn_arrow_left_default.png
deleted file mode 100644
index a9709aaba..000000000
Binary files a/MyTracks/res/drawable/btn_arrow_left_default.png and /dev/null differ
diff --git a/MyTracks/res/drawable/btn_arrow_left_press.png b/MyTracks/res/drawable/btn_arrow_left_press.png
deleted file mode 100644
index 262c928c6..000000000
Binary files a/MyTracks/res/drawable/btn_arrow_left_press.png and /dev/null differ
diff --git a/MyTracks/res/drawable/btn_arrow_right_default.png b/MyTracks/res/drawable/btn_arrow_right_default.png
deleted file mode 100644
index a4f78dc0d..000000000
Binary files a/MyTracks/res/drawable/btn_arrow_right_default.png and /dev/null differ
diff --git a/MyTracks/res/drawable/btn_arrow_right_press.png b/MyTracks/res/drawable/btn_arrow_right_press.png
deleted file mode 100644
index 4b37b0df2..000000000
Binary files a/MyTracks/res/drawable/btn_arrow_right_press.png and /dev/null differ
diff --git a/MyTracks/res/drawable/left_arrow_chart.png b/MyTracks/res/drawable/left_arrow_chart.png
new file mode 100644
index 000000000..1dca36914
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_chart.png differ
diff --git a/MyTracks/res/drawable/left_arrow_chart_press.png b/MyTracks/res/drawable/left_arrow_chart_press.png
new file mode 100644
index 000000000..58810b417
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_chart_press.png differ
diff --git a/MyTracks/res/drawable/btn_arrow_left.xml b/MyTracks/res/drawable/left_arrow_chart_stateful.xml
similarity index 80%
rename from MyTracks/res/drawable/btn_arrow_left.xml
rename to MyTracks/res/drawable/left_arrow_chart_stateful.xml
index 042c8bd06..d76183f4d 100644
--- a/MyTracks/res/drawable/btn_arrow_left.xml
+++ b/MyTracks/res/drawable/left_arrow_chart_stateful.xml
@@ -17,11 +17,11 @@ limitations under the License.
+ android:drawable="@drawable/left_arrow_chart" />
+ android:drawable="@drawable/left_arrow_chart_press" />
-
+
diff --git a/MyTracks/res/drawable/left_arrow_stats.png b/MyTracks/res/drawable/left_arrow_stats.png
new file mode 100644
index 000000000..841377b58
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_stats.png differ
diff --git a/MyTracks/res/drawable/left_arrow_stats_press.png b/MyTracks/res/drawable/left_arrow_stats_press.png
new file mode 100644
index 000000000..517293a7a
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_stats_press.png differ
diff --git a/MyTracks/res/drawable/btn_arrow_right.xml b/MyTracks/res/drawable/left_arrow_stats_stateful.xml
similarity index 80%
rename from MyTracks/res/drawable/btn_arrow_right.xml
rename to MyTracks/res/drawable/left_arrow_stats_stateful.xml
index 762436c9c..5b3169af4 100644
--- a/MyTracks/res/drawable/btn_arrow_right.xml
+++ b/MyTracks/res/drawable/left_arrow_stats_stateful.xml
@@ -17,11 +17,11 @@ limitations under the License.
+ android:drawable="@drawable/left_arrow_stats" />
+ android:drawable="@drawable/left_arrow_stats_press" />
-
+
diff --git a/MyTracks/res/drawable/left_arrow_track.png b/MyTracks/res/drawable/left_arrow_track.png
new file mode 100644
index 000000000..415e5dbf2
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_track.png differ
diff --git a/MyTracks/res/drawable/left_arrow_track_press.png b/MyTracks/res/drawable/left_arrow_track_press.png
new file mode 100644
index 000000000..acf9fb36d
Binary files /dev/null and b/MyTracks/res/drawable/left_arrow_track_press.png differ
diff --git a/MyTracks/res/drawable/left_arrow_track_stateful.xml b/MyTracks/res/drawable/left_arrow_track_stateful.xml
new file mode 100644
index 000000000..3ae27009c
--- /dev/null
+++ b/MyTracks/res/drawable/left_arrow_track_stateful.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/res/drawable/right_arrow_chart.png b/MyTracks/res/drawable/right_arrow_chart.png
new file mode 100644
index 000000000..43e3d57b8
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_chart.png differ
diff --git a/MyTracks/res/drawable/right_arrow_chart_press.png b/MyTracks/res/drawable/right_arrow_chart_press.png
new file mode 100644
index 000000000..c2c8ad37f
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_chart_press.png differ
diff --git a/MyTracks/res/drawable/right_arrow_chart_stateful.xml b/MyTracks/res/drawable/right_arrow_chart_stateful.xml
new file mode 100644
index 000000000..eeb6b33f8
--- /dev/null
+++ b/MyTracks/res/drawable/right_arrow_chart_stateful.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/res/drawable/right_arrow_stats.png b/MyTracks/res/drawable/right_arrow_stats.png
new file mode 100644
index 000000000..57094ed4d
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_stats.png differ
diff --git a/MyTracks/res/drawable/right_arrow_stats_press.png b/MyTracks/res/drawable/right_arrow_stats_press.png
new file mode 100644
index 000000000..e57fc81fc
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_stats_press.png differ
diff --git a/MyTracks/res/drawable/right_arrow_stats_stateful.xml b/MyTracks/res/drawable/right_arrow_stats_stateful.xml
new file mode 100644
index 000000000..3ade4f429
--- /dev/null
+++ b/MyTracks/res/drawable/right_arrow_stats_stateful.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/res/drawable/right_arrow_track.png b/MyTracks/res/drawable/right_arrow_track.png
new file mode 100644
index 000000000..5accdf690
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_track.png differ
diff --git a/MyTracks/res/drawable/right_arrow_track_press.png b/MyTracks/res/drawable/right_arrow_track_press.png
new file mode 100644
index 000000000..feba85b1c
Binary files /dev/null and b/MyTracks/res/drawable/right_arrow_track_press.png differ
diff --git a/MyTracks/res/drawable/right_arrow_track_stateful.xml b/MyTracks/res/drawable/right_arrow_track_stateful.xml
new file mode 100644
index 000000000..9e5c364fd
--- /dev/null
+++ b/MyTracks/res/drawable/right_arrow_track_stateful.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/res/menu/main.xml b/MyTracks/res/menu/main.xml
index 23053e2d5..9acffc9b3 100644
--- a/MyTracks/res/menu/main.xml
+++ b/MyTracks/res/menu/main.xml
@@ -20,10 +20,15 @@
android:icon="@android:drawable/ic_menu_preferences"
android:orderInCategory="1001"
android:title="@string/settings"/>
+
+
diff --git a/MyTracks/res/values-de/strings.xml b/MyTracks/res/values-de/strings.xml
index 1a6c5b61f..af2c04ed5 100644
--- a/MyTracks/res/values-de/strings.xml
+++ b/MyTracks/res/values-de/strings.xml
@@ -155,7 +155,6 @@ limitations under the License.
Dauer zwischen Ansagen:
Kürzeste Zeit zwichen zwei Ansagen
- Gesprochene Ansagen sind mit Ihrer Version von Android nicht verfügbar.
Kleinste Entfernung zwischen Punkten:
Kleinste Entfernung zwischen zwei Positionsaufzeichnungen
diff --git a/MyTracks/res/values-es/strings.xml b/MyTracks/res/values-es/strings.xml
index 4e905cd18..5e6a29f8b 100644
--- a/MyTracks/res/values-es/strings.xml
+++ b/MyTracks/res/values-es/strings.xml
@@ -158,7 +158,6 @@ limitations under the License.
Tiempo entre anuncios
Tiempo mínimo entre dos anuncios de voz
- Conversión de anuncios de texto a voz no esta disponible en su versión de Android
Distancia mínima entre puntos consecutivos
Distancia mínima entre dos grabaciones de posición
diff --git a/MyTracks/res/values-fr/strings.xml b/MyTracks/res/values-fr/strings.xml
index 6de3c3823..a67f90749 100644
--- a/MyTracks/res/values-fr/strings.xml
+++ b/MyTracks/res/values-fr/strings.xml
@@ -158,7 +158,6 @@ limitations under the License.
Fréquence des annonces
Temps minimum entre eux annonces vocales
- La synthèse vocale n\'est pas disponible pour cette version d\'Android
Distance min. entre 2 points
Plus petite distance entre deux enregistrements de votre position
diff --git a/MyTracks/res/values-it/strings.xml b/MyTracks/res/values-it/strings.xml
index 344770cf2..2f9024552 100644
--- a/MyTracks/res/values-it/strings.xml
+++ b/MyTracks/res/values-it/strings.xml
@@ -164,7 +164,6 @@ limitations under the License.
Intervallo fra due annunci:
Tempo minimo fra due annunci audio
- Gli annunci audio non sono disponibili in questa varsione di Android
Distanza minima fra due punti successivi:
Distanza minima fra due successive registrazioni della posizione
diff --git a/MyTracks/res/values-ja/strings.xml b/MyTracks/res/values-ja/strings.xml
index 447a48540..b88304819 100644
--- a/MyTracks/res/values-ja/strings.xml
+++ b/MyTracks/res/values-ja/strings.xml
@@ -164,7 +164,7 @@ limitations under the License.
定期通知
音声通知間隔の最小時間
- お使いのAndroidの版では音声読み上げ機能がありません
+
ポイント間の最短距離
位置記録間の最短距離
diff --git a/MyTracks/res/values-pl/strings.xml b/MyTracks/res/values-pl/strings.xml
index e15093745..b22ab3119 100644
--- a/MyTracks/res/values-pl/strings.xml
+++ b/MyTracks/res/values-pl/strings.xml
@@ -164,7 +164,7 @@ limitations under the License.
Częstotliwość komunikatów
Minimalny czas między dwoma komunikatami głosowymi
- Brak wsparcia dla syntezy mowy w twojej wersji Androida
+
Min. odległość między punktami
Najmniejsza odległość między dwoma zapisami twojej pozycji
diff --git a/MyTracks/res/values-pt-rBR/strings.xml b/MyTracks/res/values-pt-rBR/strings.xml
index 6efc9338f..f84c710ce 100644
--- a/MyTracks/res/values-pt-rBR/strings.xml
+++ b/MyTracks/res/values-pt-rBR/strings.xml
@@ -157,7 +157,6 @@ limitations under the License.
Compartilhamento
Tempo entre anúncios
Tempo mínimo entre dois anúncios de voz
- Anúncios de voz não estão disponíveis em sua versão do Android
Dist. mín. entre pontos
Menor distância entre duas gravações da sua posição
Dist. máx. entre pontos
diff --git a/MyTracks/res/values-sv/strings.xml b/MyTracks/res/values-sv/strings.xml
index 541327a22..43cd3eba0 100644
--- a/MyTracks/res/values-sv/strings.xml
+++ b/MyTracks/res/values-sv/strings.xml
@@ -43,19 +43,19 @@ limitations under the License.
Ett fel uppstod. Försök igen.
Spåret finns inte.
Den här filen är för stor (måste vara mindre än 500 KB). Avbryter.
- Kan inte skapa markör. Ingen possition tillgänglig.
+ Kan inte skapa markör. Ingen position tillgänglig.
- Väntar på bättre GPS-posstion. Se till att himlen är synlig.
+ Väntar på bättre GPS-position. Se till att himlen är synlig.
Spelar nu in ett nytt spår.
Stoppade inspelning av ditt spår.
En ny Google My Map har skapats på maps.google.com.
Ditt spår har skickats till maps.google.com.
- Ditt spår har skockats till ett nytt kalkylblad på docs.google.com.
+ Ditt spår har skickats till ett nytt kalkylblad på docs.google.com.
Ditt spår har skickats till docs.google.com.
Det kan ibland ta några minuter innan nya spår visas.
Klicka här för att gå till Säkerhet och Platsinställningar och kryssa i \'aktivera gps-satteliter\'. Tryck på tillbakaknappen för att återgå.
- OBS: En ungerfärlig position som avgörs från mobilmaster och WIFI-nät visas.
+ OBS: En ungefärlig position som avgörs från mobilmaster och WIFI-nät visas.
En position kan för närvarande inte fastställas. Aktivera mer platskällor (se Säkerhet och Platsinställningar) och se till att himlen är synlig. Försök igen senare.
En positionsmarkör har lagts in.
En statistikmarkör har lagts in.
@@ -71,7 +71,7 @@ limitations under the License.
Skickar spår till Google Maps...
Skapar en ny My Map...
Importerar ett GPS-spår. Detta kan ta en stund.
- Skriver til till SD-kortet. Detta kan ta en stund.
+ Skriver till SD-kortet. Detta kan ta en stund.
Uppdaterar spårstatistik...
@@ -125,7 +125,7 @@ limitations under the License.
Exportera alla spår
Exporteringen slutfördes
- Välj ett spår. TryckPress&håll för fler alternativ.
+ Välj ett spår. Tryck&håll för fler alternativ.
Alla spår:
Det här spåret
Dela med vänner...
@@ -143,13 +143,13 @@ limitations under the License.
Visa på karta
Infoga positionspunkt
Infoga statistik
- Välj en markör. TryckPress&håll för fler alternativ.
+ Välj en markör. Tryck&håll för fler alternativ.
Spårdetaljer
Spårnamn
Spårbeskrivning
- Aktivitetstyp (t ex vandring, cyckling, låpning, klättring...)
+ Aktivitetstyp (t ex vandring, cyckling, löpning, klättring...)
Markördetaljer
@@ -165,7 +165,7 @@ limitations under the License.
Meddelandefrekvens
Minimumtid mellan två röstmeddelanden
- Text-till-talmeddelanden är inte tillgängligt i din version av Android
+
Min distans mellan två punkter
Minsta distans mellan två inspelningar av din position
@@ -199,11 +199,11 @@ limitations under the License.
Tid mellan två inspelningar av telefonens signalstyrka
Delningsfrekvens
- Maximala tiden eller distansen varefter en ny delnginsmarkör kommer infogas
+ Maximala tiden eller distansen varefter en ny delningsmarkör kommer infogas
Tempo
- GPS-satteliter
+ GPS-satelliter
Välje en karta från ditt konto:
@@ -240,7 +240,7 @@ limitations under the License.
Publik
Olistat
- Du har inge kartor än.
+ Du har inga kartor än.
@@ -253,7 +253,7 @@ limitations under the License.
Höjddiagram
Höjdvinst
- Höjt
+ Höjd
Latitud
Longitud
diff --git a/MyTracks/res/values-zh-rCN/strings.xml b/MyTracks/res/values-zh-rCN/strings.xml
index c4d44207a..00d38bcd3 100644
--- a/MyTracks/res/values-zh-rCN/strings.xml
+++ b/MyTracks/res/values-zh-rCN/strings.xml
@@ -167,7 +167,7 @@ limitations under the License.
提示频度
语音提示的最小时间间隔
- 你所使用的 Android 版本不支持文本到语音转换
+
最小记录间距
位置记录的最小间隔距离
diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml
index 6288aa969..74b14b50a 100644
--- a/MyTracks/res/values/keys.xml
+++ b/MyTracks/res/values/keys.xml
@@ -38,6 +38,7 @@ limitations under the License.
shareUrlOnly
signalSamplingFrequency
splitFrequency
+ debugDrawBounds
recordingTrack
diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml
index b55a3ff5c..cab226775 100644
--- a/MyTracks/res/values/strings.xml
+++ b/MyTracks/res/values/strings.xml
@@ -32,6 +32,7 @@ limitations under the License.
Please select the track to view
Current track
Last segment
+ Aggregated Statistics
No location manager was found on this device!
diff --git a/MyTracks/res/xml/preferences.xml b/MyTracks/res/xml/preferences.xml
index 386240b6a..3233bd070 100644
--- a/MyTracks/res/xml/preferences.xml
+++ b/MyTracks/res/xml/preferences.xml
@@ -133,4 +133,13 @@ limitations under the License.
android:persistent="false" />
+
+
+
diff --git a/MyTracks/src/com/google/android/apps/mymaps/MyMapsConstants.java b/MyTracks/src/com/google/android/apps/mymaps/MyMapsConstants.java
index 8fa70a9c2..d88a2ff5a 100644
--- a/MyTracks/src/com/google/android/apps/mymaps/MyMapsConstants.java
+++ b/MyTracks/src/com/google/android/apps/mymaps/MyMapsConstants.java
@@ -25,5 +25,8 @@ public class MyMapsConstants {
"http://maps.google.com/maps/ms";
public static final String MAPSHOP_SERVICE = MapsClient.SERVICE;
+ /**
+ * Private constructor to prevent instantiation.
+ */
private MyMapsConstants() { }
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java
new file mode 100644
index 000000000..c0f95242a
--- /dev/null
+++ b/MyTracks/src/com/google/android/apps/mytracks/AggregatedStatsActivity.java
@@ -0,0 +1,114 @@
+package com.google.android.apps.mytracks;
+
+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.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Window;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+import java.util.List;
+
+/**
+ * Activity for viewing the combined statistics for all the recorded tracks.
+ *
+ * Other features to add - menu items to change setings.
+ *
+ * @author Fergus Nelson
+ */
+public class AggregatedStatsActivity extends Activity implements
+ OnSharedPreferenceChangeListener {
+
+ private final StatsUtilities utils;
+
+ private MyTracksProviderUtils tracksProvider;
+
+ private boolean metricUnits = true;
+
+ public AggregatedStatsActivity() {
+ this.utils = new StatsUtilities(this);
+ this.tracksProvider = MyTracksProviderUtils.Factory.get(this);
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+ String key) {
+ Log.d(MyTracksConstants.TAG, "StatsActivity: onSharedPreferences changed "
+ + key);
+ if (key != null) {
+ if (key.equals(R.string.metric_units_key)) {
+ metricUnits = sharedPreferences.getBoolean(
+ getString(R.string.metric_units_key), true);
+ utils.setMetricUnits(metricUnits);
+ utils.updateUnits();
+ loadAggregatedStats();
+ }
+ }
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // We don't need a window title bar:
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ setContentView(R.layout.stats);
+
+ ScrollView sv = ((ScrollView) findViewById(R.id.scrolly));
+ sv.setScrollBarStyle(ScrollView.SCROLLBARS_OUTSIDE_INSET);
+
+ SharedPreferences preferences = getSharedPreferences(
+ MyTracksSettings.SETTINGS_NAME, 0);
+ if (preferences != null) {
+ metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
+ preferences.registerOnSharedPreferenceChangeListener(this);
+ }
+ utils.setMetricUnits(metricUnits);
+ utils.updateUnits();
+ utils.setSpeedLabel(R.id.speed_label, R.string.speed, R.string.pace_label);
+ utils.setSpeedLabels();
+
+ DisplayMetrics metrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ 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