diff --git a/contrib/RideLogger/res/values/strings.xml b/contrib/RideLogger/res/values/strings.xml
index 443fd0762..7d14feafc 100644
--- a/contrib/RideLogger/res/values/strings.xml
+++ b/contrib/RideLogger/res/values/strings.xml
@@ -75,6 +75,9 @@
Display Sensors
List of Sensors Display
+ Imperial Units
+ Show Measurements in Imperial Units
+
Display Text Size
RideLogger
@@ -86,5 +89,6 @@
PhoneHomePeriod
TrackingSensors
TrackingSize
+ TrackingImperialUnits
diff --git a/contrib/RideLogger/res/xml/sensors_settings.xml b/contrib/RideLogger/res/xml/sensors_settings.xml
index 10342c463..4f70fdd6e 100644
--- a/contrib/RideLogger/res/xml/sensors_settings.xml
+++ b/contrib/RideLogger/res/xml/sensors_settings.xml
@@ -8,6 +8,12 @@
android:title="@string/setting_sensors_title"
android:summary="@string/setting_sensors_note"
/>
+
+
sensors = settings.getStringSet(context.getString(R.string.PREF_TRACKING_SENSORS), null);
size = Integer.valueOf(settings.getString(context.getString(R.string.PREF_TRACKING_SIZE), "20"));
+ imperial = settings.getBoolean(context.getString(R.string.PREF_TRACKING_IMPERIAL_UNITS), false);
+
if(sensors != null && sensors.size() > 0) {
keys = new int[sensors.size()];
@@ -55,6 +59,7 @@ public class CurrentValuesAdapter extends BaseAdapter {
valuesTvs[key].setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
keyTvs[key].setTextSize(TypedValue.COMPLEX_UNIT_SP, (int) (size * 0.75));
}
+ notifyDataSetChanged();
} else if (pkey == context.getString(R.string.PREF_TRACKING_SENSORS)) {
Set sensors = sharedPreferences.getStringSet(context.getString(R.string.PREF_TRACKING_SENSORS), null);
keys = new int[sensors.size()];
@@ -66,6 +71,36 @@ public class CurrentValuesAdapter extends BaseAdapter {
}
context.layout.setAdapter(CurrentValuesAdapter.this);
+ } else if (pkey == context.getString(R.string.PREF_TRACKING_IMPERIAL_UNITS)) {
+ imperial = sharedPreferences.getBoolean(pkey, false);
+
+ if(!imperial) {
+ for(int key : keys) {
+ keyTvs[key].setText(RideService.KEYS[key].toString().toLowerCase());
+ }
+ } else {
+ for(int key : keys) {
+ switch (key) {
+ case RideService.ALTITUDE:
+ keyTvs[key].setText("ft");
+ break;
+
+ case RideService.KPH:
+ keyTvs[key].setText("mph");
+ break;
+
+ case RideService.KM:
+ keyTvs[key].setText("m");
+ break;
+
+ default:
+ keyTvs[key].setText(RideService.KEYS[key].toString().toLowerCase());
+ break;
+ }
+ }
+ }
+
+ notifyDataSetChanged();
}
}
}
@@ -112,7 +147,29 @@ public class CurrentValuesAdapter extends BaseAdapter {
keyTvs[key] = new TextView(context);
keyTvs[key].setTextSize(TypedValue.COMPLEX_UNIT_SP, (int) (size * 0.55));
- keyTvs[key].setText(RideService.KEYS[key].toString().toLowerCase());
+
+
+ if(!imperial) {
+ keyTvs[key].setText(RideService.KEYS[key].toString().toLowerCase());
+ } else {
+ switch (key) {
+ case RideService.ALTITUDE:
+ keyTvs[key].setText("ft");
+ break;
+
+ case RideService.KPH:
+ keyTvs[key].setText("mph");
+ break;
+
+ case RideService.KM:
+ keyTvs[key].setText("miles");
+ break;
+
+ default:
+ keyTvs[key].setText(RideService.KEYS[key].toString().toLowerCase());
+ break;
+ }
+ }
}
@@ -146,7 +203,27 @@ public class CurrentValuesAdapter extends BaseAdapter {
public void update(float[] values) {
for (int key: keys) {
- valuesTvs[key].setText(String.format("%.2f", values[key]));
+ if(!imperial) {
+ valuesTvs[key].setText(String.format("%.2f", values[key]));
+ } else {
+ switch (key) {
+ case RideService.ALTITUDE:
+ valuesTvs[key].setText(String.format("%.2f", values[key] * 3.28084));
+ break;
+
+ case RideService.KPH:
+ valuesTvs[key].setText(String.format("%.2f", values[key] * 0.621371));
+ break;
+
+ case RideService.KM:
+ valuesTvs[key].setText(String.format("%.2f", values[key] * 0.621371));
+ break;
+
+ default:
+ valuesTvs[key].setText(String.format("%.2f", values[key]));
+ break;
+ }
+ }
}
notifyDataSetChanged();