From 594f156a1fbdb62aeaf0e07b88dda01f898ba7c2 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Tue, 20 Aug 2013 14:43:25 -0700 Subject: [PATCH] Use a list preference for the preferred rate setting --- .../res/values/arrays_do_not_translate.xml | 12 ++++ MyTracks/res/values/do_not_translate.xml | 2 + MyTracks/res/values/keys.xml | 4 +- MyTracks/res/xml/stats_settings.xml | 6 +- .../apps/mytracks/content/TrackDataHub.java | 5 +- .../mytracks/fragments/ChartFragment.java | 2 +- .../tasks/AnnouncementPeriodicTask.java | 3 +- .../settings/ChartSettingsActivity.java | 3 +- .../settings/StatsSettingsActivity.java | 56 ++++++++++--------- .../apps/mytracks/util/PreferencesUtils.java | 12 +++- .../apps/mytracks/util/StatsUtils.java | 6 +- .../widgets/TrackWidgetConfigActivity.java | 3 +- .../mytracks/widgets/TrackWidgetProvider.java | 3 +- .../mytracks/content/TrackDataHubTest.java | 24 ++++---- 14 files changed, 83 insertions(+), 58 deletions(-) diff --git a/MyTracks/res/values/arrays_do_not_translate.xml b/MyTracks/res/values/arrays_do_not_translate.xml index ecce9d6bc..e41f48881 100644 --- a/MyTracks/res/values/arrays_do_not_translate.xml +++ b/MyTracks/res/values/arrays_do_not_translate.xml @@ -176,6 +176,18 @@ limitations under the License. @string/sensor_type_value_zephyr @string/sensor_type_value_none + + @string/description_speed_imperial + @string/description_pace_imperial + + + @string/description_speed_metric + @string/description_pace_metric + + + @string/stats_rate_speed + @string/stats_rate_pace + @string/settings_stats_units_metric @string/settings_stats_units_imperial diff --git a/MyTracks/res/values/do_not_translate.xml b/MyTracks/res/values/do_not_translate.xml index 669867cde..a02acff1a 100644 --- a/MyTracks/res/values/do_not_translate.xml +++ b/MyTracks/res/values/do_not_translate.xml @@ -93,6 +93,8 @@ Google은 이용자에 대한 위치정보의 이용∙제공사실을 위치정 DATE_LOCAL LOCATION NUMBER + PACE + SPEED IMPERIAL METRIC com.google.android.apps.mytracks.END_CURRENT_TRACK diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml index bd8cc4e44..2daf244a5 100644 --- a/MyTracks/res/values/keys.xml +++ b/MyTracks/res/values/keys.xml @@ -34,14 +34,14 @@ limitations under the License. minRecordingInterval recordingDistanceInterval recordingGpsAccuracy - reportSpeed sensorType shareTrackInvite shareTrackPublic splitFrequency + statsRate statsShowCoordinate statsShowGradeElevation - statsdUnits + statsUnits trackColorModeMedium trackColorModePercentage trackColorModeSlow diff --git a/MyTracks/res/xml/stats_settings.xml b/MyTracks/res/xml/stats_settings.xml index b837e8106..6288de43d 100644 --- a/MyTracks/res/xml/stats_settings.xml +++ b/MyTracks/res/xml/stats_settings.xml @@ -20,9 +20,9 @@ limitations under the License. android:defaultValue="@string/stats_units_metric" android:key="@string/stats_units_key" android:title="@string/settings_stats_units_title" /> - list = new ArrayList(); addItem(list, R.string.stats_distance); 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 9bd8ce793..03903795f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java +++ b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java @@ -196,8 +196,7 @@ public class TrackWidgetProvider extends AppWidgetProvider { boolean isPaused = PreferencesUtils.getBoolean(context, R.string.recording_track_paused_key, PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); boolean metricUnits = PreferencesUtils.isMetricUnits(context); - boolean reportSpeed = PreferencesUtils.getBoolean( - context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT); + boolean reportSpeed = PreferencesUtils.isReportSpeed(context); int item1 = PreferencesUtils.getInt( context, R.string.track_widget_item1, PreferencesUtils.TRACK_WIDGET_ITEM1_DEFAULT); int item2 = PreferencesUtils.getInt( 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 c60cf868e..86e9cee75 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java @@ -526,7 +526,8 @@ public class TrackDataHubTest extends AndroidTestCase { public void testPreferencesChange() throws Exception { // Register two listeners - PreferencesUtils.setBoolean(context, R.string.report_speed_key, true); + PreferencesUtils.setString( + context, R.string.stats_rate_key, PreferencesUtils.STATS_RATE_DEFAULT); PreferencesUtils.setString( context, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT); PreferencesUtils.setInt(context, R.string.recording_gps_accuracy_key, @@ -563,10 +564,11 @@ public class TrackDataHubTest extends AndroidTestCase { expect(trackDataListener2.onReportSpeedChanged(false)).andReturn(false); replay(); - PreferencesUtils.setBoolean(context, R.string.report_speed_key, false); + PreferencesUtils.setString( + context, R.string.stats_rate_key, context.getString(R.string.stats_rate_pace)); OnSharedPreferenceChangeListener listener = preferenceChangeListenerCapture.getValue(); listener.onSharedPreferenceChanged( - sharedPreferences, PreferencesUtils.getKey(context, R.string.report_speed_key)); + sharedPreferences, PreferencesUtils.getKey(context, R.string.stats_rate_key)); verifyAndReset(); // Change metric units to false @@ -785,14 +787,16 @@ public class TrackDataHubTest extends AndroidTestCase { * the key is R.string.metric_units_key. */ public void testNotifyPreferenceChanged_reportSpeedNoNotify() { - boolean value = false; - PreferencesUtils.setBoolean(context, R.string.report_speed_key, value); + String value = context.getString(R.string.stats_rate_pace); + PreferencesUtils.setString(context, R.string.stats_rate_key, value); trackDataHub.notifyPreferenceChanged(PreferencesUtils - .getKey(context, R.string.report_speed_key)); - assertEquals(value, trackDataHub.isReportSpeed()); - PreferencesUtils.setBoolean(context, R.string.report_speed_key, !value); + .getKey(context, R.string.stats_rate_key)); + assertEquals(false, trackDataHub.isReportSpeed()); + + value = context.getString(R.string.stats_rate_speed); + PreferencesUtils.setString(context, R.string.stats_rate_key, value); trackDataHub.notifyPreferenceChanged(PreferencesUtils - .getKey(context, R.string.report_speed_key)); - assertEquals(!value, trackDataHub.isReportSpeed()); + .getKey(context, R.string.stats_rate_key)); + assertEquals(true, trackDataHub.isReportSpeed()); } }