From 3461a502880e94027bc20f59363bf11b373549af Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Mon, 7 May 2012 13:38:17 -0700 Subject: [PATCH] Move Stats settings to StatsSettingsActivity. --- MyTracks/AndroidManifest.xml | 1 + .../res/drawable-hdpi/menu_stats_settings.png | Bin 1262 -> 0 bytes .../res/drawable-mdpi/menu_stats_settings.png | Bin 1155 -> 0 bytes .../drawable-xhdpi/menu_stats_settings.png | Bin 1317 -> 0 bytes MyTracks/res/layout/stats_settings.xml | 56 ------- MyTracks/res/menu/track_detail.xml | 4 - MyTracks/res/values/keys.xml | 3 +- MyTracks/res/values/strings.xml | 150 +++++++++--------- MyTracks/res/xml/preferences.xml | 19 +-- MyTracks/res/xml/stats_settings.xml | 49 ++++++ .../apps/mytracks/SearchListActivity.java | 3 +- .../apps/mytracks/TrackDetailActivity.java | 18 +-- .../apps/mytracks/TrackListActivity.java | 15 +- .../apps/mytracks/content/TrackDataHub.java | 12 +- .../fragments/CheckUnitsDialogFragment.java | 9 +- .../mytracks/fragments/StatsFragment.java | 7 +- .../StatsSettingsDialogFragment.java | 96 ----------- .../apps/mytracks/io/docs/SendDocsUtils.java | 3 +- .../SendFusionTablesAsyncTask.java | 3 +- .../mytracks/io/maps/SendMapsAsyncTask.java | 3 +- .../mytracks/services/PreferenceManager.java | 3 +- .../services/tasks/StatusAnnouncerTask.java | 8 +- .../mytracks/settings/SettingsActivity.java | 18 ++- .../settings/StatsSettingsActivity.java | 82 ++++++++++ .../apps/mytracks/util/ChartURLGenerator.java | 3 +- .../apps/mytracks/util/PreferencesUtils.java | 8 +- .../apps/mytracks/util/StatsUtils.java | 35 ++-- .../mytracks/widgets/TrackWidgetProvider.java | 15 +- .../mytracks/content/TrackDataHubTest.java | 23 +-- .../services/TrackRecordingServiceTest.java | 42 +---- 30 files changed, 320 insertions(+), 368 deletions(-) delete mode 100644 MyTracks/res/drawable-hdpi/menu_stats_settings.png delete mode 100644 MyTracks/res/drawable-mdpi/menu_stats_settings.png delete mode 100644 MyTracks/res/drawable-xhdpi/menu_stats_settings.png delete mode 100644 MyTracks/res/layout/stats_settings.xml create mode 100644 MyTracks/res/xml/stats_settings.xml delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/fragments/StatsSettingsDialogFragment.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index 6f53e9dc1..0e80fb509 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -212,6 +212,7 @@ limitations under the License. + l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)!qL>y+|1n6$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1OVZUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1? zG!Lpb1-DzwaO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zj&#|xg@J)F!PCVt zq~g|_8P-{c9R%7`?I$LC$Qms173A1a@K#CvBqLK^al@8I8HM!1xk?Eh6R#z3=<(Ji zNJjn?_unXx>E5;Wz^wWQ%!Y3k{1wYAzhU5e`M`4yO$SD@{R{ZF^%?pa zu%1sye>(5L)~Tnv%ziMecU8Zlp;^QJ?qJl+Bg-RYsuvz$xTEz+cEXgI0g;TxA6ai$ z9NTihNO}L1TQ>rC2a7!qzru9B8D!$~i$9tRVo!8eojW8GTy4}CagO1-<%B0PVbLqQ zx%VvI6!wTKh9NvqWAfa{$3E-Smv0H%&2&HK*}2dIzx`jZ@^G6J$3HmuOVRfo?;Q>M zOqOE_Ay@UTOq!mNe9JPoY)Q`IiC4n6^}b7;?K35}r2bLVHX)G(46Nst%r(0%H~rwl zdB;oFUOIcCd}-M3u$Lj41{0fCoH#nI_Q>q# diff --git a/MyTracks/res/drawable-mdpi/menu_stats_settings.png b/MyTracks/res/drawable-mdpi/menu_stats_settings.png deleted file mode 100644 index 5b87a5fbf10330d351c93fba700c49d9a6abf35e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmaJ>TWAwm7@j5&rCKe0ac%2zcI@iInz_VD!qpuz}(}h%c_-(^5g9h*D7S!P}YIR3FR^%$#$6zVG|5 zXU0=~dz%_t8wrAFN+x1yyaMN4>%m{UTz-R>%_yEl{l)+)N){x-ijjjLsY!z{4JBoC z_yG(Ogu6q{WKmY!FUW>QNe+f8X(nb9M6j!5O7ajyAO{CkJw(2qnk9j%gvi5wkrB-( z%&UpA1^df=8M!%R!o7Y zVL{-h7_ZE9vY?ZrSdQU2eh2U|EJL$CnhAJWM(_s&h6O7RiM?6MfRK*$toXvG5Sd5F z6ll6wEKHTdIjvLkEtclrst_MB+%l zq@bCrvbw!eCR{MOB$+fzF-}S~peX)7RMS?`HcG><@qSm>&WxInPD9%$STb(hz*fhV zDMT$OA;ZcT#)(=LQ+Wd!cHS^SwBJv$K$K)vcPz^cQ52H8jU-)$$ykWQ8kDLkLVQ=) z&j&gq{s_~H@SU%20qTwDt8{i^rjT*7R|gj#R!1M|c-}2M*c-#%TliAE zO~%5R($n1gPoKK}?sjcE+u)hl@Izs)vb%DoGQF<(qw#)aAO^lm~7p_C#xocr8 zzi>3grypNOW1I_D7+>$5GJ zb|0BJ-@B#l=M9q$)ghDPC~}Ej__ZkC?PxE|-E@2Ixe3>LVsfVI(!nR;8_sVb8Sjhz I6*>OLXV1HQAOHXW diff --git a/MyTracks/res/drawable-xhdpi/menu_stats_settings.png b/MyTracks/res/drawable-xhdpi/menu_stats_settings.png deleted file mode 100644 index 4b4355c4d788af6ca09f18551579de9243ef7cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=og^7i$n}xHflYyI|p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaSg)h0rMa02PQ9SSkXrz>*(J3ovn(~mttdZN0qkk3 zOx$j9#AzN>Zwgkofc@cwQ?EYIG5VmWMT%;e5HS6KnDB%P+ho>{$zI&nqAbz}FCAjvu<2y;4~8(i2L7bvr_2!% zTxLxQWtvG(@6PSL85Jn9?9{}WUF=K(4Gb&_ z42&EO3}9x6(W~T`+k(|ep*>!4#;W&@Zrt(Lbh~EXku^VbD)(nz6cvADvb8~Uqw2Mz z3JwQmXH-3Vb7R{KZh;E|-f}ZNS$JIIZFav`WU7(glC1wo+2O!}wTT{lP_x0-IP6;d zp~rgvdG>2eGk5%>T8N@eZ2BbCvqi14F=!o$ED+ZN_B diff --git a/MyTracks/res/layout/stats_settings.xml b/MyTracks/res/layout/stats_settings.xml deleted file mode 100644 index ed8b8f9ac..000000000 --- a/MyTracks/res/layout/stats_settings.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/MyTracks/res/menu/track_detail.xml b/MyTracks/res/menu/track_detail.xml index 9ac4de21e..46809bb2a 100644 --- a/MyTracks/res/menu/track_detail.xml +++ b/MyTracks/res/menu/track_detail.xml @@ -88,10 +88,6 @@ limitations under the License. android:icon="@drawable/menu_chart_settings" android:id="@+id/track_detail_chart_settings" android:title="@string/menu_chart_settings"/> - statsShowCoordinate statsShowElevation statsShowGrade - statsShowTotalTime + statsUseTotalTime trackColorModeDynamicVariation trackColorModeFixedMediumDisplay trackColorModeFixedMedium @@ -70,5 +70,6 @@ limitations under the License. settingsSensorBluetoothPairing settingsSensorRoot settingsSharing + settingsStats trackColorModeFixedOptions \ No newline at end of file diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index 629cc5fbd..9e5145641 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -1141,10 +1141,6 @@ limitations under the License. translation_description="In the menu, to show a marker on map."> Show on map - - Stats settings - Stop recording @@ -1213,23 +1209,6 @@ limitations under the License. write data to My Tracks and start/stop My Tracks recording - - - Imperial (mi, ft) - - - Metric (km, m) - - - Preferred Units - - Restore all tracks and settings from the SD card. + + Display - - Use metric - - - Use imperial units to display distances. - - - Use metric units to display distances. - - - Display speed - - - Display pace (e.g., hours/mile). - - - Display speed (e.g., miles/hour). - Not available while recording a track. + + Time/distance between two voice announcements. + + Revert all your settings to the default values. + + Unpair SRM ANT+ bridge + + + Latitude/Longitude + + + Grade + + + Pace (hr/mi). + + + Pace (hr/km). + + + Speed (mi/hr) + + + Speed (km/hr) + + + Preferred Rate + + + Show + + + Time Measurement + + + Imperial (mi, ft) + + + Metric (km, m) + + + Preferred Units + + @@ -2134,28 +2148,6 @@ limitations under the License. Total time - - - Show - - - Grade - - - Latitude/Longitude - - - Time - - diff --git a/MyTracks/res/xml/preferences.xml b/MyTracks/res/xml/preferences.xml index 6608193d6..37bfdc04d 100644 --- a/MyTracks/res/xml/preferences.xml +++ b/MyTracks/res/xml/preferences.xml @@ -19,20 +19,6 @@ limitations under the License. - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java index d4de0aeb3..0b8665f47 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java @@ -185,7 +185,8 @@ public class SearchListActivity extends AbstractMyTracksActivity { @Override protected void onResume() { super.onResume(); - metricUnits = PreferencesUtils.getBoolean(this, R.string.metric_units_key, true); + metricUnits = PreferencesUtils.getBoolean( + this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 5e9b72dc0..6730240b4 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -27,8 +27,6 @@ import com.google.android.apps.mytracks.fragments.InstallEarthDialogFragment; import com.google.android.apps.mytracks.fragments.MapFragment; import com.google.android.apps.mytracks.fragments.MarkerAddDialogFragment; import com.google.android.apps.mytracks.fragments.StatsFragment; -import com.google.android.apps.mytracks.fragments.StatsSettingsDialogFragment; -import com.google.android.apps.mytracks.fragments.StatsSettingsDialogFragment.OnStatsSettingsChangedListener; import com.google.android.apps.mytracks.io.file.SaveActivity; import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat; import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; @@ -66,8 +64,7 @@ import java.util.List; * @author Leif Hendrik Wilden * @author Rodrigo Damazio */ -public class TrackDetailActivity extends AbstractMyTracksActivity - implements OnStatsSettingsChangedListener { +public class TrackDetailActivity extends AbstractMyTracksActivity { public static final String EXTRA_TRACK_ID = "track_id"; public static final String EXTRA_MARKER_ID = "marker_id"; @@ -236,8 +233,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity String currentTabTag = tabHost.getCurrentTabTag(); menu.findItem(R.id.track_detail_chart_settings).setVisible( ChartFragment.CHART_FRAGMENT_TAG.equals(currentTabTag)); - menu.findItem(R.id.track_detail_stats_settings).setVisible( - StatsFragment.STATS_FRAGMENT_TAG.equals(currentTabTag)); MenuItem satelliteMode = menu.findItem(R.id.track_detail_satellite_mode) .setVisible(MapFragment.MAP_FRAGMENT_TAG.equals(currentTabTag)); @@ -356,10 +351,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity new ChartSettingsDialogFragment().show( getSupportFragmentManager(), ChartSettingsDialogFragment.CHART_SETTINGS_DIALOG_TAG); return true; - case R.id.track_detail_stats_settings: - new StatsSettingsDialogFragment().show( - getSupportFragmentManager(), StatsSettingsDialogFragment.STATS_SETTINGS_DIALOG_TAG); - return true; case R.id.track_detail_settings: intent = IntentUtils.newIntent(this, SettingsActivity.class); startActivity(intent); @@ -392,13 +383,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity return mapViewContainer; } - @Override - public void onStatsSettingsChanged() { - StatsFragment statsFragment = (StatsFragment) getSupportFragmentManager() - .findFragmentByTag(StatsFragment.STATS_FRAGMENT_TAG); - statsFragment.updateUi(); - } - /** * Handles the data in the intent. */ diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index a3798eedb..502dced25 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -120,12 +120,16 @@ public class TrackListActivity extends FragmentActivity { public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { boolean updateList = false; // Note that key can be null - if (PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key).equals(key)) { - metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this, R.string.metric_units_key, true); + if (PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key) + .equals(key)) { + metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this, + R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); updateList = true; } - if (PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key).equals(key)) { - recordingTrackId = PreferencesUtils.getLong(TrackListActivity.this, R.string.recording_track_id_key); + if (PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key) + .equals(key)) { + recordingTrackId = PreferencesUtils.getLong( + TrackListActivity.this, R.string.recording_track_id_key); if (TrackRecordingServiceConnectionUtils.isRecording( TrackListActivity.this, trackRecordingServiceConnection)) { trackRecordingServiceConnection.startAndBind(); @@ -177,7 +181,8 @@ public class TrackListActivity extends FragmentActivity { SharedPreferences sharedPreferences = getSharedPreferences( Constants.SETTINGS_NAME, Context.MODE_PRIVATE); sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); - metricUnits = PreferencesUtils.getBoolean(this, R.string.metric_units_key, true); + metricUnits = PreferencesUtils.getBoolean( + this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key); ImageButton recordImageButton = (ImageButton) findViewById(R.id.track_list_record_button); diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java index 4ee4c5977..9ff1e7781 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java @@ -289,8 +289,10 @@ public class TrackDataHub { private void loadSharedPreferences() { selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key); - metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); - reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true); + metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); + reportSpeed = PreferencesUtils.getBoolean( + context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); minRequiredAccuracy = PreferencesUtils.getInt(context, R.string.min_required_accuracy_key, PreferencesUtils.MIN_REQUIRED_ACCURACY_DEFAULT); } @@ -607,10 +609,12 @@ public class TrackDataHub { minRequiredAccuracy = PreferencesUtils.getInt(context, R.string.min_required_accuracy_key, PreferencesUtils.MIN_REQUIRED_ACCURACY_DEFAULT); } else if (PreferencesUtils.getKey(context, R.string.metric_units_key).equals(key)) { - metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); notifyUnitsChanged(); } else if (PreferencesUtils.getKey(context, R.string.report_speed_key).equals(key)) { - reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true); + reportSpeed = PreferencesUtils.getBoolean( + context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); notifySpeedReportingChanged(); } else if (PreferencesUtils.getKey(context, R.string.selected_track_id_key).equals(key)) { loadTrack(PreferencesUtils.getLong(context, R.string.selected_track_id_key)); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java index 0314a0a16..41953a8c8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/CheckUnitsDialogFragment.java @@ -47,8 +47,8 @@ public class CheckUnitsDialogFragment extends DialogFragment { Locale defaultLocale = Locale.getDefault(); boolean defaultMetric = !defaultLocale.equals(Locale.US) && !defaultLocale.equals(Locale.UK); PreferencesUtils.setBoolean(getActivity(), R.string.metric_units_key, defaultMetric); - final String metric = getString(R.string.preferred_units_metric); - final String imperial = getString(R.string.preferred_units_imperial); + final String metric = getString(R.string.settings_stats_units_metric); + final String imperial = getString(R.string.settings_stats_units_imperial); final CharSequence[] items = defaultMetric ? new CharSequence[] { metric, imperial } : new CharSequence[] { imperial, metric }; return new AlertDialog.Builder(getActivity()) @@ -56,12 +56,13 @@ public class CheckUnitsDialogFragment extends DialogFragment { @Override public void onClick(DialogInterface dialog, int which) { int position = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); - PreferencesUtils.setBoolean(getActivity(), R.string.metric_units_key, items[position].equals(metric)); + PreferencesUtils.setBoolean( + getActivity(), R.string.metric_units_key, items[position].equals(metric)); onDone(); } }) .setSingleChoiceItems(items, 0, null) - .setTitle(R.string.preferred_units_title).create(); + .setTitle(R.string.settings_stats_units_title).create(); } /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsFragment.java index 1f2e2484f..6e1d9a3cc 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsFragment.java @@ -270,8 +270,11 @@ public class StatsFragment extends Fragment implements TrackDataListener { private synchronized boolean isRecording() { return trackDataHub != null && trackDataHub.isRecordingSelected(); } - - public void updateUi() { + + /** + * Updates the UI. + */ + private void updateUi() { StatsUtils.setTripStatisticsValues(getActivity(), lastTripStatistics); StatsUtils.setLocationValues(getActivity(), lastLocation, true); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsSettingsDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsSettingsDialogFragment.java deleted file mode 100644 index cf0470749..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/StatsSettingsDialogFragment.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.fragments; - -import com.google.android.apps.mytracks.util.PreferencesUtils; -import com.google.android.maps.mytracks.R; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.content.DialogInterface; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; -import android.view.View; -import android.widget.CheckBox; -import android.widget.RadioGroup; - -/** - * A DialogFragment to show stats settings. - * - * @author Jimmy Shih - */ -public class StatsSettingsDialogFragment extends DialogFragment { - - public static final String STATS_SETTINGS_DIALOG_TAG = "statsSettingsDialog"; - - public interface OnStatsSettingsChangedListener { - public void onStatsSettingsChanged(); - } - - private OnStatsSettingsChangedListener listener; - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - try { - listener = (OnStatsSettingsChangedListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement OnArticleSelectedListener"); - } - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - View view = getActivity().getLayoutInflater().inflate(R.layout.stats_settings, null); - final RadioGroup radioGroup = (RadioGroup) view.findViewById(R.id.stats_settings_time); - boolean totalTime = PreferencesUtils.getBoolean( - getActivity(), R.string.stats_show_total_time_key, true); - radioGroup.check(totalTime ? R.id.stats_settings_total_time : R.id.stats_settings_moving_time); - - final CheckBox elevation = (CheckBox) view.findViewById(R.id.stats_settings_elevation); - final CheckBox grade = (CheckBox) view.findViewById(R.id.stats_settings_grade); - final CheckBox coordinate = (CheckBox) view.findViewById(R.id.stats_settings_coordinate); - - elevation.setChecked( - PreferencesUtils.getBoolean(getActivity(), R.string.stats_show_elevation_key, false)); - grade.setChecked( - PreferencesUtils.getBoolean(getActivity(), R.string.stats_show_grade_key, false)); - coordinate.setChecked( - PreferencesUtils.getBoolean(getActivity(), R.string.stats_show_coordinate_key, false)); - - return new AlertDialog.Builder(getActivity()).setNegativeButton(R.string.generic_cancel, null) - .setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - PreferencesUtils.setBoolean(getActivity(), R.string.stats_show_total_time_key, - radioGroup.getCheckedRadioButtonId() == R.id.stats_settings_total_time); - PreferencesUtils.setBoolean( - getActivity(), R.string.stats_show_elevation_key, elevation.isChecked()); - PreferencesUtils.setBoolean( - getActivity(), R.string.stats_show_grade_key, grade.isChecked()); - PreferencesUtils.setBoolean( - getActivity(), R.string.stats_show_coordinate_key, coordinate.isChecked()); - listener.onStatsSettingsChanged(); - } - }) - .setTitle(R.string.menu_stats_settings) - .setView(view) - .create(); - } -} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java index 4d8482f80..922df8185 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java @@ -270,7 +270,8 @@ public class SendDocsUtils { Track track, String spreadsheetId, String worksheetId, String authToken, Context context) throws IOException { String worksheetUri = String.format(GET_WORKSHEET_URI, spreadsheetId, worksheetId); - boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); addRow(worksheetUri, getRowContent(track, metricUnits, context), authToken); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java index 075387275..b93493ca8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java @@ -205,7 +205,8 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { private boolean uploadAllTrackPoints(Track track) { Cursor locationsCursor = null; try { - boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false); if (locationsCursor == null) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java index ed338cb45..8d952c5bb 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java @@ -255,7 +255,8 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask { boolean uploadAllTrackPoints(Track track) { Cursor locationsCursor = null; try { - boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false); if (locationsCursor == null) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/PreferenceManager.java b/MyTracks/src/com/google/android/apps/mytracks/services/PreferenceManager.java index 795ed5dad..ebf147fb4 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/PreferenceManager.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/PreferenceManager.java @@ -68,7 +68,8 @@ public class PreferenceManager implements OnSharedPreferenceChangeListener { } } if (key == null || PreferencesUtils.getKey(service, R.string.metric_units_key).equals(key)) { - service.setMetricUnits(PreferencesUtils.getBoolean(service, R.string.metric_units_key, true)); + service.setMetricUnits(PreferencesUtils.getBoolean( + service, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT)); } if (key == null || PreferencesUtils.getKey(service, R.string.announcement_frequency_key).equals(key)) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java index 08da45f8f..08ae7cb76 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java @@ -150,9 +150,11 @@ public class StatusAnnouncerTask implements PeriodicTask { */ // @VisibleForTesting protected String getAnnouncement(TripStatistics stats) { - boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); - boolean reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true); - double d = stats.getTotalDistance() * UnitConversions.M_TO_KM; + boolean metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); + boolean reportSpeed = PreferencesUtils.getBoolean( + context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); + double d = stats.getTotalDistance() * UnitConversions.M_TO_KM; double s = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH; if (d == 0) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/SettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/SettingsActivity.java index 4859d8a1c..dc2210808 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/SettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/SettingsActivity.java @@ -52,12 +52,24 @@ public class SettingsActivity extends AbstractSettingsActivity { private static final int DIALOG_CONFIRM_RESET_ID = 0; + @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); addPreferencesFromResource(R.xml.preferences); customizeTrackColorModePreferences(); + + Preference statsPreference = findPreference(getString(R.string.settings_stats_key)); + statsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + Intent intent = IntentUtils.newIntent( + SettingsActivity.this, StatsSettingsActivity.class); + startActivity(intent); + return true; + } + }); Preference recordingPreference = findPreference(getString(R.string.settings_recording_key)); recordingPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { @@ -215,7 +227,8 @@ public class SettingsActivity extends AbstractSettingsActivity { * If the units are not metric convert the value before displaying. */ private void viewTrackColorModeSettings(EditTextPreference preference, int id) { - if (PreferencesUtils.getBoolean(this, R.string.metric_units_key, true)) { + if (PreferencesUtils.getBoolean( + this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT)) { return; } // Convert miles/h to km/h @@ -236,7 +249,8 @@ public class SettingsActivity extends AbstractSettingsActivity { */ private void validateTrackColorModeSettings(String newValue, int id) { String metricspeed; - if (PreferencesUtils.getBoolean(this, R.string.metric_units_key, true)) { + if (PreferencesUtils.getBoolean( + this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT)) { metricspeed = newValue; } else { // Convert miles/h to km/h diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java new file mode 100644 index 000000000..9514a87c2 --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java @@ -0,0 +1,82 @@ +/* + * Copyright 2012 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.android.apps.mytracks.settings; + +import com.google.android.apps.mytracks.Constants; +import com.google.android.apps.mytracks.util.PreferencesUtils; +import com.google.android.maps.mytracks.R; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; +import android.os.Bundle; +import android.preference.CheckBoxPreference; + +/** + * An activity for accessing stats settings. + * + * @author Jimmy Shih + */ +public class StatsSettingsActivity extends AbstractSettingsActivity { + + /* + * Note that sharedPreferenceChangeListenr cannot be an anonymous inner class. + * Anonymous inner class will get garbage collected. + */ + private final OnSharedPreferenceChangeListener + sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { + // Note that key can be null + if (PreferencesUtils.getKey(StatsSettingsActivity.this, R.string.metric_units_key) + .equals(key)) { + updateUi(); + } + } + }; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle bundle) { + super.onCreate(bundle); + addPreferencesFromResource(R.xml.stats_settings); + + SharedPreferences sharedPreferences = getSharedPreferences( + Constants.SETTINGS_NAME, Context.MODE_PRIVATE); + sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); + } + + @Override + protected void onResume() { + super.onResume(); + updateUi(); + } + + @SuppressWarnings("deprecation") + private void updateUi() { + CheckBoxPreference reportSpeedCheckBoxPreference = (CheckBoxPreference) findPreference( + getString(R.string.report_speed_key)); + boolean metric = PreferencesUtils.getBoolean( + this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); + reportSpeedCheckBoxPreference.setSummaryOn( + metric ? getString(R.string.settings_stats_rate_speed_metric) + : getString(R.string.settings_stats_rate_speed_imperial)); + reportSpeedCheckBoxPreference.setSummaryOff( + metric ? getString(R.string.settings_stats_rate_pace_metric) + : getString(R.string.settings_stats_rate_pace_imperial)); + } +} diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java b/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java index a585a3690..469dfd45f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java @@ -47,7 +47,8 @@ public class ChartURLGenerator { */ public static String getChartUrl( Vector distances, Vector elevations, Track track, Context context) { - boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); return getChartUrl( distances, elevations, track, context.getString(R.string.stats_elevation), metricUnits); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java index 413c8ec9d..eabdbf3d4 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java @@ -57,11 +57,17 @@ public class PreferencesUtils { public static final int MIN_REQUIRED_ACCURACY_POOR = 5000; public static final int PERIODIC_TASK_OFF = 0; - + public static final long RECORDING_TRACK_ID_DEFAULT = -1L; + public static final boolean REPORT_SPEED_DEFAULT = true; public static final boolean SHARE_URL_ONLY_DEFAULT = false; public static final int SPLIT_FREQUENCY_DEFAULT = 0; + public static final boolean STATS_SHOW_COORDINATE_DEFAULT = false; + public static final boolean STATS_SHOW_ELEVATION_DEFAULT = false; + public static final boolean STATS_SHOW_GRADE_DEFAULT = false; + public static final boolean STATS_USE_TOTAL_TIME_DEFAULT = true; + private PreferencesUtils() {} /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java index a5e317d8f..32e49af82 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java @@ -42,12 +42,14 @@ public class StatsUtils { * elevation field */ public static void setLocationValues(Activity activity, Location location, boolean showAll) { - boolean metricUnits = PreferencesUtils.getBoolean(activity, R.string.metric_units_key, true); - boolean reportSpeed = PreferencesUtils.getBoolean(activity, R.string.report_speed_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + activity, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); + boolean reportSpeed = PreferencesUtils.getBoolean( + activity, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); // Set elevation boolean showElevation = PreferencesUtils.getBoolean( - activity, R.string.stats_show_elevation_key, false); + activity, R.string.stats_show_elevation_key, PreferencesUtils.STATS_SHOW_ELEVATION_DEFAULT); if (showElevation) { double altitude = location == null ? Double.NaN : location.getAltitude(); setElevationValue(activity, R.id.stats_elevation_value, altitude, metricUnits); @@ -64,8 +66,8 @@ public class StatsUtils { setSpeedValue(activity, R.id.stats_speed_value, speed, metricUnits, reportSpeed); // Set coordinate - boolean showCoordinate = PreferencesUtils.getBoolean( - activity, R.string.stats_show_coordinate_key, false); + boolean showCoordinate = PreferencesUtils.getBoolean(activity, + R.string.stats_show_coordinate_key, PreferencesUtils.STATS_SHOW_COORDINATE_DEFAULT); View coordinateLabelTableRow = activity.findViewById(R.id.stats_coordinate_label_table_row); View coordinateValueTableRow = activity.findViewById(R.id.stats_coordinate_value_table_row); coordinateLabelTableRow.setVisibility(showCoordinate ? View.VISIBLE : View.GONE); @@ -95,10 +97,12 @@ public class StatsUtils { * @param tripStatistics the trip statistics */ public static void setTripStatisticsValues(Activity activity, TripStatistics tripStatistics) { - boolean metricUnits = PreferencesUtils.getBoolean(activity, R.string.metric_units_key, true); - boolean reportSpeed = PreferencesUtils.getBoolean(activity, R.string.report_speed_key, true); - boolean showTotalTime = PreferencesUtils.getBoolean( - activity, R.string.stats_show_total_time_key, true); + boolean metricUnits = PreferencesUtils.getBoolean( + activity, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); + boolean reportSpeed = PreferencesUtils.getBoolean( + activity, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); + boolean useTotalTime = PreferencesUtils.getBoolean( + activity, R.string.stats_use_total_time_key, PreferencesUtils.STATS_USE_TOTAL_TIME_DEFAULT); // Set total distance double totalDistance = tripStatistics == null ? Double.NaN : tripStatistics.getTotalDistance(); @@ -106,17 +110,17 @@ public class StatsUtils { // Set total time/moving time setTimeLabel(activity, R.id.stats_total_time_label, R.string.stats_total_time, - R.string.stats_moving_time, showTotalTime); + R.string.stats_moving_time, useTotalTime); long totalTime; if (tripStatistics == null) { totalTime = -1L; } else { - totalTime = showTotalTime ? tripStatistics.getTotalTime() : tripStatistics.getMovingTime(); + totalTime = useTotalTime ? tripStatistics.getTotalTime() : tripStatistics.getMovingTime(); } setTimeValue(activity, R.id.stats_total_time_value, totalTime); // Set average speed/moving average speed - if (showTotalTime) { + if (useTotalTime) { setSpeedLabel(activity, R.id.stats_average_speed_label, R.string.stats_average_speed, R.string.stats_average_pace, reportSpeed); } else { @@ -127,7 +131,7 @@ public class StatsUtils { if (tripStatistics == null) { averageSpeed = Double.NaN; } else { - averageSpeed = showTotalTime ? tripStatistics.getAverageSpeed() + averageSpeed = useTotalTime ? tripStatistics.getAverageSpeed() : tripStatistics.getAverageMovingSpeed(); } setSpeedValue(activity, R.id.stats_average_speed_value, averageSpeed, metricUnits, reportSpeed); @@ -140,7 +144,7 @@ public class StatsUtils { // Set elevation boolean showElevation = PreferencesUtils.getBoolean( - activity, R.string.stats_show_elevation_key, false); + activity, R.string.stats_show_elevation_key, PreferencesUtils.STATS_SHOW_ELEVATION_DEFAULT); View elevationLabelTableRow1 = activity.findViewById(R.id.stats_elevation_label_table_row1); View elevationValueTableRow1 = activity.findViewById(R.id.stats_elevation_value_table_row1); View elevationLabelTableRow2 = activity.findViewById(R.id.stats_elevation_label_table_row2); @@ -160,7 +164,8 @@ public class StatsUtils { } // Set grade - boolean showGrade = PreferencesUtils.getBoolean(activity, R.string.stats_show_grade_key, false); + boolean showGrade = PreferencesUtils.getBoolean( + activity, R.string.stats_show_grade_key, PreferencesUtils.STATS_SHOW_GRADE_DEFAULT); View gradeLabelTableRow = activity.findViewById(R.id.stats_grade_label_table_row); View gradeValueTableRow = activity.findViewById(R.id.stats_grade_value_table_row); gradeLabelTableRow.setVisibility(showGrade ? View.VISIBLE : View.GONE); diff --git a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java index 195272109..951bcf1ed 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java +++ b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java @@ -230,15 +230,16 @@ public class TrackWidgetProvider @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { - if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.metric_units_key))) { - metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true); + if (key == null || PreferencesUtils.getKey(context, R.string.metric_units_key).equals(key)) { + metricUnits = PreferencesUtils.getBoolean( + context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); } - - if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.report_speed_key))) { - reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true); + if (key == null || PreferencesUtils.getKey(context, R.string.report_speed_key).equals(key)) { + reportSpeed = PreferencesUtils.getBoolean( + context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); } - - if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.selected_track_id_key))) { + if (key == null + || PreferencesUtils.getKey(context, R.string.selected_track_id_key).equals(key)) { selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key); Log.d(TAG, "TrackWidgetProvider setting selecting track from preference: " + selectedTrackId); } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java index f48d1bd43..640b1e5f2 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java @@ -798,13 +798,8 @@ public class TrackDataHubTest extends AndroidTestCase { } public void testDisplayPreferencesListen() throws Exception { - String metricUnitsKey = PreferencesUtils.getKey(context, R.string.metric_units_key); - String reportSpeedKey = PreferencesUtils.getKey(context, R.string.report_speed_key); - - prefs.edit() - .putBoolean(metricUnitsKey, true) - .putBoolean(reportSpeedKey, true) - .apply(); + PreferencesUtils.setBoolean(context, R.string.report_speed_key, true); + PreferencesUtils.setBoolean(context, R.string.metric_units_key, true); Capture listenerCapture = new Capture(); @@ -828,11 +823,10 @@ public class TrackDataHubTest extends AndroidTestCase { replay(); - prefs.edit() - .putBoolean(reportSpeedKey, false) - .apply(); + PreferencesUtils.setBoolean(context, R.string.report_speed_key, false); OnSharedPreferenceChangeListener listener = listenerCapture.getValue(); - listener.onSharedPreferenceChanged(prefs, reportSpeedKey); + listener.onSharedPreferenceChanged( + prefs, PreferencesUtils.getKey(context, R.string.report_speed_key)); AndroidMock.verify(dataSources, providerUtils, listener1, listener2); AndroidMock.reset(dataSources, providerUtils, listener1, listener2); @@ -842,10 +836,9 @@ public class TrackDataHubTest extends AndroidTestCase { replay(); - prefs.edit() - .putBoolean(metricUnitsKey, false) - .apply(); - listener.onSharedPreferenceChanged(prefs, metricUnitsKey); + PreferencesUtils.setBoolean(context, R.string.metric_units_key, false); + listener.onSharedPreferenceChanged( + prefs, PreferencesUtils.getKey(context, R.string.metric_units_key)); verifyAndReset(); } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java index 89b00d750..a596f67e7 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java @@ -34,7 +34,6 @@ import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; import android.database.Cursor; import android.location.Location; import android.net.Uri; @@ -606,18 +605,16 @@ public class TrackRecordingServiceTest extends ServiceTestCase