diff --git a/MyTracks/res/values/arrays_do_not_translate.xml b/MyTracks/res/values/arrays_do_not_translate.xml
index 4b4dba9d4..c68590a93 100644
--- a/MyTracks/res/values/arrays_do_not_translate.xml
+++ b/MyTracks/res/values/arrays_do_not_translate.xml
@@ -182,6 +182,14 @@ limitations under the License.
- @string/sensor_type_value_zephyr
- @string/sensor_type_value_none
+
+ - @string/settings_stats_units_metric
+ - @string/settings_stats_units_imperial
+
+
+ - @string/stats_units_metric
+ - @string/stats_units_imperial
+
- @string/settings_map_track_color_mode_single
- @string/settings_map_track_color_mode_fixed
diff --git a/MyTracks/res/values/do_not_translate.xml b/MyTracks/res/values/do_not_translate.xml
index e6e45eeee..669867cde 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
+ IMPERIAL
+ METRIC
com.google.android.apps.mytracks.END_CURRENT_TRACK
com.google.android.apps.mytracks.PAUSE_CURRENT_TRACK
com.google.android.apps.mytracks.RESUME_CURRENT_TRACK
diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml
index 4c11ebc8d..cab2f9f93 100644
--- a/MyTracks/res/values/keys.xml
+++ b/MyTracks/res/values/keys.xml
@@ -31,7 +31,6 @@ limitations under the License.
exportType
mapType
maxRecordingDistance
- metricUnits
minRecordingDistance
minRecordingInterval
minRequiredAccuracy
@@ -42,6 +41,7 @@ limitations under the License.
splitFrequency
statsShowCoordinate
statsShowGradeElevation
+ statsdUnits
trackColorModeMedium
trackColorModePercentage
trackColorModeSlow
diff --git a/MyTracks/res/xml/stats_settings.xml b/MyTracks/res/xml/stats_settings.xml
index 104963d49..b837e8106 100644
--- a/MyTracks/res/xml/stats_settings.xml
+++ b/MyTracks/res/xml/stats_settings.xml
@@ -16,11 +16,9 @@ limitations under the License.
-->
-
> arrayAdapter;
- private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
+ private boolean metricUnits = true;
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
index 751b06608..0e24370c8 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
@@ -166,9 +166,8 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
if (key == null || key.equals(
- PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key))) {
- metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this,
- R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ PreferencesUtils.getKey(TrackListActivity.this, R.string.stats_units_key))) {
+ metricUnits = PreferencesUtils.isMetricUnits(TrackListActivity.this);
}
if (key == null || key.equals(
PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key))) {
@@ -286,7 +285,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
private SectionResourceCursorAdapter sectionResourceCursorAdapter;
// Preferences
- private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
+ private boolean metricUnits = true;
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
private boolean driveSync = PreferencesUtils.DRIVE_SYNC_DEFAULT;
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 d596e4221..a0ba420da 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java
@@ -270,9 +270,8 @@ public class TrackDataHub implements DataSourceListener {
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
}
if (key == null
- || key.equals(PreferencesUtils.getKey(context, R.string.metric_units_key))) {
- metricUnits = PreferencesUtils.getBoolean(
- context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ || key.equals(PreferencesUtils.getKey(context, R.string.stats_units_key))) {
+ metricUnits = PreferencesUtils.isMetricUnits(context);
if (key != null) {
for (TrackDataListener trackDataListener :
trackDataManager.getListeners(TrackDataType.PREFERENCE)) {
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
index 527f505a3..dd1ccccaa 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChartFragment.java
@@ -64,7 +64,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
private TripStatisticsUpdater tripStatisticsUpdater;
private long startTime;
- private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
+ private boolean metricUnits = true;
private boolean reportSpeed = PreferencesUtils.REPORT_SPEED_DEFAULT;
private int minRecordingDistance = PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java
index b93e7ebfb..54ebdf249 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java
@@ -120,8 +120,10 @@ public class EulaDialogFragment extends DialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
EulaUtils.setAcceptEula(fragmentActivity);
- PreferencesUtils.setBoolean(
- fragmentActivity, R.string.metric_units_key, !Locale.US.equals(Locale.getDefault()));
+ String statsUnits = fragmentActivity.getString(
+ Locale.US.equals(Locale.getDefault()) ? R.string.stats_units_imperial
+ : R.string.stats_units_metric);
+ PreferencesUtils.setString(fragmentActivity, R.string.stats_units_key, statsUnits);
caller.onEulaDone();
}
});
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java
index 8be3ae1c8..0816ddb72 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java
@@ -80,8 +80,7 @@ public class FrequencyDialogFragment extends DialogFragment {
* Gets the frequency display options.
*/
private String[] getFrequencyDisplayOptions() {
- boolean metricUnits = PreferencesUtils.getBoolean(
- fragmentActivity, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(fragmentActivity);
return StringUtils.getFrequencyOptions(fragmentActivity, metricUnits);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/spreadsheets/SendSpreadsheetsAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/spreadsheets/SendSpreadsheetsAsyncTask.java
index a2b6a4a4f..4a3daeb11 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/spreadsheets/SendSpreadsheetsAsyncTask.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/spreadsheets/SendSpreadsheetsAsyncTask.java
@@ -241,8 +241,7 @@ public class SendSpreadsheetsAsyncTask extends AbstractSendAsyncTask {
return false;
}
TripStatistics tripStatistics = track.getTripStatistics();
- boolean metricUnits = PreferencesUtils.getBoolean(
- context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(context);
String distanceUnit = context.getString(
metricUnits ? R.string.unit_kilometer : R.string.unit_mile);
String speedUnit = context.getString(
diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
index 008338254..442278275 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
@@ -156,9 +156,8 @@ public class TrackRecordingService extends Service {
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
}
if (key == null
- || key.equals(PreferencesUtils.getKey(context, R.string.metric_units_key))) {
- boolean metricUnits = PreferencesUtils.getBoolean(
- context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ || key.equals(PreferencesUtils.getKey(context, R.string.stats_units_key))) {
+ boolean metricUnits = PreferencesUtils.isMetricUnits(context);
voiceExecutor.setMetricUnits(metricUnits);
splitExecutor.setMetricUnits(metricUnits);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java
index ad2ee8ce0..646beee42 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java
@@ -227,8 +227,7 @@ public class AnnouncementPeriodicTask implements PeriodicTask {
*/
@VisibleForTesting
protected String getAnnouncement(TripStatistics tripStatistics) {
- boolean metricUnits = PreferencesUtils.getBoolean(
- context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(context);
boolean reportSpeed = PreferencesUtils.getBoolean(
context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT);
double distance = tripStatistics.getTotalDistance() * UnitConversions.M_TO_KM;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/MapSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/MapSettingsActivity.java
index 607486c76..77fa046d7 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/settings/MapSettingsActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/settings/MapSettingsActivity.java
@@ -218,11 +218,10 @@ public class MapSettingsActivity extends AbstractSettingsActivity {
* @param defaultValue the default value
*/
private void updateSpeedSummary(Preference preference, int keyId, int defaultValue) {
- boolean metric = PreferencesUtils.getBoolean(
- this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(this);
int displayValue = getSpeedDisplayValue(keyId, defaultValue);
preference.setSummary(getString(
- metric ? R.string.value_integer_kilometer_hour : R.string.value_integer_mile_hour,
+ metricUnits ? R.string.value_integer_kilometer_hour : R.string.value_integer_mile_hour,
displayValue));
}
@@ -249,8 +248,7 @@ public class MapSettingsActivity extends AbstractSettingsActivity {
int value;
try {
value = Integer.parseInt(displayValue);
- if (!PreferencesUtils.getBoolean(
- this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT)) {
+ if (!PreferencesUtils.isMetricUnits(this)) {
value = (int) (value * UnitConversions.MI_TO_KM);
}
} catch (NumberFormatException e) {
@@ -276,8 +274,7 @@ public class MapSettingsActivity extends AbstractSettingsActivity {
*/
private int getSpeedDisplayValue(int keyId, int defaultValue) {
int value = PreferencesUtils.getInt(this, keyId, defaultValue);
- if (!PreferencesUtils.getBoolean(
- this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT)) {
+ if (!PreferencesUtils.isMetricUnits(this)) {
value = (int) (value * UnitConversions.KM_TO_MI);
}
return value;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java
index 80ea5c3f0..06da4b795 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java
@@ -38,8 +38,7 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity {
super.onCreate(bundle);
addPreferencesFromResource(R.xml.recording_settings);
- boolean metricUnits = PreferencesUtils.getBoolean(
- this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(this);
configFrequencyPreference(R.string.voice_frequency_key,
PreferencesUtils.VOICE_FREQUENCY_DEFAULT, R.array.frequency_values, metricUnits);
diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java
index a68357de7..cdbd022e9 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/settings/StatsSettingsActivity.java
@@ -16,15 +16,14 @@
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;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
/**
* An activity for accessing stats settings.
@@ -33,64 +32,44 @@ import android.preference.CheckBoxPreference;
*/
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) {
- if (key == null || key.equals(
- PreferencesUtils.getKey(StatsSettingsActivity.this, R.string.metric_units_key))) {
- metricUnits = PreferencesUtils.getBoolean(StatsSettingsActivity.this,
- R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
- }
- if (key != null) {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- updateUi();
- }
- });
- }
- }
- };
-
- private SharedPreferences sharedPreferences;
- private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
+ private String statsUnits;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
addPreferencesFromResource(R.xml.stats_settings);
- sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
- }
- @Override
- protected void onStart() {
- super.onStart();
- sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
- sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
+ ListPreference preference = (ListPreference) findPreference(
+ getString(R.string.stats_units_key));
+ OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference pref, Object newValue) {
+ statsUnits = (String) newValue;
+ updateUi();
+ return true;
+ }
+ };
+ String value = PreferencesUtils.getString(
+ this, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT);
+ String[] values = getResources().getStringArray(R.array.stats_units_values);
+ String[] options = getResources().getStringArray(R.array.stats_units_options);
+ configureListPreference(preference, options, options, values, value, listener);
}
@Override
protected void onResume() {
super.onResume();
+ statsUnits = PreferencesUtils.getString(
+ this, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT);
updateUi();
}
- @Override
- protected void onStop() {
- super.onStop();
- sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
- }
-
@SuppressWarnings("deprecation")
private void updateUi() {
CheckBoxPreference reportSpeedCheckBoxPreference = (CheckBoxPreference) findPreference(
getString(R.string.report_speed_key));
+ boolean metricUnits = PreferencesUtils.STATS_UNITS_DEFAULT.equals(statsUnits);
reportSpeedCheckBoxPreference.setSummaryOn(
metricUnits ? getString(R.string.description_speed_metric)
: getString(R.string.description_speed_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 d345d1758..1b1ab121b 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java
@@ -46,8 +46,7 @@ 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, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(context);
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 84bba4f7f..5bb4bbaec 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java
@@ -20,6 +20,7 @@ import com.google.android.apps.mytracks.Constants;
import com.google.android.apps.mytracks.fragments.ExportDialogFragment.ExportType;
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.gms.location.DetectedActivity;
+import com.google.android.maps.mytracks.R;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -76,7 +77,6 @@ public class PreferencesUtils {
public static final String GOOGLE_ACCOUNT_DEFAULT = "";
public static final int MAP_TYPE_DEFAUlT = 1;
public static final int MAX_RECORDING_DISTANCE_DEFAULT = 200;
- public static final boolean METRIC_UNITS_DEFAULT = true;
public static final int MIN_RECORDING_DISTANCE_DEFAULT = 5;
// Values for min_recording_interval_key
@@ -104,6 +104,7 @@ public class PreferencesUtils {
// Stats
public static final boolean STATS_SHOW_COORDINATE_DEFAULT = false;
public static final boolean STATS_SHOW_GRADE_ELEVATION_DEFAULT = false;
+ public static final String STATS_UNITS_DEFAULT = "METRIC";
// Track color
public static final String TRACK_COLOR_MODE_DEFAULT = "SINGLE";
@@ -246,4 +247,14 @@ public class PreferencesUtils {
editor.putString(getKey(context, keyId), value);
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor);
}
+
+ /**
+ * Returns true if metric units.
+ *
+ * @param context the context
+ */
+ public static boolean isMetricUnits(Context context) {
+ return PreferencesUtils.STATS_UNITS_DEFAULT.equals(
+ getString(context, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT));
+ }
}
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 5460b2c50..2fc19c912 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/StatsUtils.java
@@ -49,8 +49,7 @@ public class StatsUtils {
* @param isRecording true if recording
*/
public static void setLocationValues(Activity activity, Location location, boolean isRecording) {
- boolean metricUnits = PreferencesUtils.getBoolean(
- activity, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(activity);
boolean reportSpeed = PreferencesUtils.getBoolean(
activity, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT);
@@ -109,8 +108,7 @@ 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, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(activity);
boolean reportSpeed = PreferencesUtils.getBoolean(
activity, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT);
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 77f281f3e..6180aaa90 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java
@@ -195,8 +195,7 @@ public class TrackWidgetProvider extends AppWidgetProvider {
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
boolean isPaused = PreferencesUtils.getBoolean(context, R.string.recording_track_paused_key,
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
- boolean metricUnits = PreferencesUtils.getBoolean(
- context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
+ boolean metricUnits = PreferencesUtils.isMetricUnits(context);
boolean reportSpeed = PreferencesUtils.getBoolean(
context, R.string.report_speed_key, PreferencesUtils.REPORT_SPEED_DEFAULT);
int item1 = 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 d9f40830e..dddd14f01 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java
@@ -527,7 +527,8 @@ public class TrackDataHubTest extends AndroidTestCase {
// Register two listeners
PreferencesUtils.setBoolean(context, R.string.report_speed_key, true);
- PreferencesUtils.setBoolean(context, R.string.metric_units_key, true);
+ PreferencesUtils.setString(
+ context, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT);
PreferencesUtils.setInt(context, R.string.min_required_accuracy_key,
PreferencesUtils.MIN_REQUIRED_ACCURACY_DEFAULT);
PreferencesUtils.setInt(context, R.string.min_recording_distance_key,
@@ -571,9 +572,10 @@ public class TrackDataHubTest extends AndroidTestCase {
expect(trackDataListener2.onMetricUnitsChanged(false)).andReturn(false);
replay();
- PreferencesUtils.setBoolean(context, R.string.metric_units_key, false);
+ String imperialUnits = context.getString(R.string.stats_units_imperial);
+ PreferencesUtils.setString(context, R.string.stats_units_key, imperialUnits);
listener.onSharedPreferenceChanged(
- sharedPreferences, PreferencesUtils.getKey(context, R.string.metric_units_key));
+ sharedPreferences, PreferencesUtils.getKey(context, R.string.stats_units_key));
verifyAndReset();
}
@@ -762,15 +764,17 @@ public class TrackDataHubTest extends AndroidTestCase {
* the key is R.string.metric_units_key.
*/
public void testNotifyPreferenceChanged_metricUnitsNoNotify() {
- boolean value = false;
- PreferencesUtils.setBoolean(context, R.string.metric_units_key, value);
- trackDataHub.notifyPreferenceChanged(PreferencesUtils
- .getKey(context, R.string.metric_units_key));
- assertEquals(value, trackDataHub.isMetricUnits());
- PreferencesUtils.setBoolean(context, R.string.metric_units_key, !value);
- trackDataHub.notifyPreferenceChanged(PreferencesUtils
- .getKey(context, R.string.metric_units_key));
- assertEquals(!value, trackDataHub.isMetricUnits());
+ String imperialUnits = context.getString(R.string.stats_units_imperial);
+
+ PreferencesUtils.setString(context, R.string.stats_units_key, imperialUnits);
+ trackDataHub.notifyPreferenceChanged(
+ PreferencesUtils.getKey(context, R.string.stats_units_key));
+ assertEquals(false, trackDataHub.isMetricUnits());
+ PreferencesUtils.setString(
+ context, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT);
+ trackDataHub.notifyPreferenceChanged(
+ PreferencesUtils.getKey(context, R.string.stats_units_key));
+ assertEquals(true, trackDataHub.isMetricUnits());
}
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 a2431ad6a..d84e36a24 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java
@@ -642,14 +642,15 @@ public class TrackRecordingServiceTest extends ServiceTestCase