diff --git a/README.md b/README.md
index 04f07a3..7694b9e 100644
--- a/README.md
+++ b/README.md
@@ -24,5 +24,6 @@ Trail running focused Garmin watch DataField (for myself)
- 3 theme colors
- set primary theme color to 0 to use the HR color instead
- HR display type (value, percentage, zone)
+- Display speed instead of pace

diff --git a/TODO.md b/TODO.md
index a0775e7..ff040b5 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,6 +1,3 @@
-- settings
- - pace/speed switch
-
- cadence => vertical speed (might be a setting?)
- also might save vertical speed to fit
diff --git a/resources/settings/properties.xml b/resources/settings/properties.xml
index 9cf5654..d3c6ee0 100644
--- a/resources/settings/properties.xml
+++ b/resources/settings/properties.xml
@@ -1,7 +1,8 @@
- 1.1.1
+ 1.1.2
0
0088FF
FFFF00
0
+ false
diff --git a/resources/settings/settings.xml b/resources/settings/settings.xml
index 007944d..1673980 100644
--- a/resources/settings/settings.xml
+++ b/resources/settings/settings.xml
@@ -19,5 +19,7 @@
@Strings.HrZone
-
+
+
+
\ No newline at end of file
diff --git a/resources/strings/strings.xml b/resources/strings/strings.xml
index 73a3f73..8e5839f 100644
--- a/resources/strings/strings.xml
+++ b/resources/strings/strings.xml
@@ -8,4 +8,5 @@
Value
Percentage
Zone
+ Show speed instead of pace
diff --git a/source/RepaFieldView.mc b/source/RepaFieldView.mc
index a346114..2c0c7b2 100644
--- a/source/RepaFieldView.mc
+++ b/source/RepaFieldView.mc
@@ -38,6 +38,7 @@ class RepaFieldView extends WatchUi.DataField {
hidden var themeColor2 as Number;
hidden var themeColor3 as Number;
hidden var hrDisplayType as Number;
+ hidden var speedNotPace as Boolean;
hidden var hrZones as Array;
hidden var hrHist as Array;
hidden var hrZoneColors as Array;
@@ -45,6 +46,7 @@ class RepaFieldView extends WatchUi.DataField {
hidden var cadenceZoneColors as Array;
hidden var isDistanceMetric as Boolean;
hidden var isElevationMetric as Boolean;
+ hidden var isPaceMetric as Boolean;
hidden var mileToKm as Float = 1.609344f;
hidden var meterToFeet as Float = 3.28084f;
@@ -92,6 +94,7 @@ class RepaFieldView extends WatchUi.DataField {
themeColor2 = Application.Properties.getValue("themeColor2").toNumberWithBase(16);
themeColor3 = Application.Properties.getValue("themeColor3").toNumberWithBase(16);
hrDisplayType = Application.Properties.getValue("hrDisplay").toNumber();
+ speedNotPace = Application.Properties.getValue("speedNotPace");
hrValue = 0;
ahrValue = 0;
@@ -119,6 +122,7 @@ class RepaFieldView extends WatchUi.DataField {
var settings = System.getDeviceSettings();
isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC;
isElevationMetric = settings.elevationUnits == System.UNIT_METRIC;
+ isPaceMetric = settings.paceUnits == System.UNIT_METRIC;
}
function tickHr(v as Number) {
@@ -256,22 +260,22 @@ class RepaFieldView extends WatchUi.DataField {
offCourse = 0.0f;
}
if (info.currentSpeed != null) {
- speed = info.currentSpeed as Float;
+ speed = info.currentSpeed * 3.6;
if (speed == 0) {
pace = 0.0f;
} else {
- pace = 1000 / 60 / speed;
+ pace = 60 / speed;
}
} else {
speed = 0.0f;
pace = 0.0f;
}
if (info.averageSpeed != null) {
- aspeed = info.averageSpeed as Float;
+ aspeed = info.averageSpeed * 3.6;
if (aspeed == 0) {
apace = 0.0f;
} else {
- apace = 1000 / 60 / aspeed;
+ apace = 60 / aspeed;
}
} else {
aspeed = 0.0f;
@@ -302,14 +306,18 @@ class RepaFieldView extends WatchUi.DataField {
if (!isDistanceMetric) {
distance = distance / mileToKm;
toDestination = toDestination / mileToKm;
- pace = pace * mileToKm;
- apace = apace * mileToKm;
}
if (!isElevationMetric) {
altitude = altitude * meterToFeet;
egain = (egain * meterToFeet).toNumber();
edrop = (edrop * meterToFeet).toNumber();
}
+ if (!isPaceMetric) {
+ pace = pace * mileToKm;
+ apace = apace * mileToKm;
+ speed = speed / mileToKm;
+ aspeed = aspeed / mileToKm;
+ }
}
// Display the value you computed here. This will be called
@@ -383,21 +391,29 @@ class RepaFieldView extends WatchUi.DataField {
// pace
if (fPace != null) {
- if (speed != 0) {
- var pmin = pace.toNumber();
- var psec = (pace - pmin) * 60;
- fPace.setText(pmin.format("%2d") + ":" + psec.format("%02d"));
+ if (speedNotPace) {
+ fPace.setText(speed.format("%.1f"));
} else {
- fPace.setText("--:--");
+ if (speed != 0) {
+ var pmin = pace.toNumber();
+ var psec = (pace - pmin) * 60;
+ fPace.setText(pmin.format("%2d") + ":" + psec.format("%02d"));
+ } else {
+ fPace.setText("--:--");
+ }
}
}
if (fAPace != null) {
- if (aspeed != 0) {
- var apmin = apace.toNumber();
- var apsec = (apace - apmin) * 60;
- fAPace.setText(apmin.format("%2d") + ":" + apsec.format("%02d"));
+ if (speedNotPace) {
+ fAPace.setText(aspeed.format("%.1f"));
} else {
- fAPace.setText("--:--");
+ if (aspeed != 0) {
+ var apmin = apace.toNumber();
+ var apsec = (apace - apmin) * 60;
+ fAPace.setText(apmin.format("%2d") + ":" + apsec.format("%02d"));
+ } else {
+ fAPace.setText("--:--");
+ }
}
}