diff --git a/resources-eng/strings.xml b/resources-eng/strings.xml
index 611d8bc..0dc0ed5 100644
--- a/resources-eng/strings.xml
+++ b/resources-eng/strings.xml
@@ -5,4 +5,5 @@
HR
DIST
DURATION
+ HR ZONES
\ No newline at end of file
diff --git a/resources/settings/properties.xml b/resources/settings/properties.xml
new file mode 100644
index 0000000..808147b
--- /dev/null
+++ b/resources/settings/properties.xml
@@ -0,0 +1,3 @@
+
+ 120,132,148,162,178
+
diff --git a/resources/settings/settings.xml b/resources/settings/settings.xml
new file mode 100644
index 0000000..e0d6265
--- /dev/null
+++ b/resources/settings/settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/strings.xml b/resources/strings.xml
index 611d8bc..0dc0ed5 100644
--- a/resources/strings.xml
+++ b/resources/strings.xml
@@ -5,4 +5,5 @@
HR
DIST
DURATION
+ HR ZONES
\ No newline at end of file
diff --git a/source/RunnersField.mc b/source/RunnersField.mc
index 941d91d..747458c 100644
--- a/source/RunnersField.mc
+++ b/source/RunnersField.mc
@@ -44,6 +44,8 @@ class RunnersView extends Ui.DataField {
hidden var avgSpeed= 0;
hidden var hr = 0;
+ hidden var maxHeartRate = 0;
+ hidden var averageHeartRate = 0;
hidden var distance = 0;
hidden var elapsedTime = 0;
hidden var gpsSignal = 0;
@@ -51,11 +53,38 @@ class RunnersView extends Ui.DataField {
hidden var currentCadence = 0;
hidden var averageCadence = 0;
hidden var maxCadence = 0;
+
+ hidden var hrZones = [ 122,134,149,163,182 ];
hidden var hasBackgroundColorOption = false;
function initialize() {
DataField.initialize();
+ var str = Application.getApp().getProperty("hrZones");
+ var loc = str.find(",");
+ var zones = [ 0, 0, 0, 0 ];
+ var i = 0;
+ try {
+ for(i = 0; i <= 3; i++) {
+ loc = str.find(",");
+ if (loc == null) {
+ loc = str.length();
+ }
+ var substr = str.substring(0, loc);
+ if (substr.length() < 2) {
+ throw new Exception();
+ }
+ zones[i] = substr.toNumber();
+ str = str.substring(loc+1, str.length());
+ }
+ }
+ catch (ex) {
+ }
+ finally {
+ if (i >= 4) {
+ hrZones = zones;
+ }
+ }
}
//! The given info object contains all the current workout
@@ -69,6 +98,8 @@ class RunnersView extends Ui.DataField {
avgSpeed = info.averageSpeed != null ? info.averageSpeed : 0;
elapsedTime = info.elapsedTime != null ? info.elapsedTime : 0;
hr = info.currentHeartRate != null ? info.currentHeartRate : 0;
+ maxHeartRate = info.maxHeartRate != null ? info.maxHeartRate : 0;
+ averageHeartRate = info.averageHeartRate != null ? info.averageHeartRate : 0;
distance = info.elapsedDistance != null ? info.elapsedDistance : 0;
gpsSignal = info.currentLocationAccuracy;
maxCadence = info.maxCadence != null ? info.maxCadence : 0;
@@ -152,11 +183,10 @@ class RunnersView extends Ui.DataField {
//pace
dc.setColor(textColor, Graphics.COLOR_TRANSPARENT);
- dc.drawText(50, 70, VALUE_FONT, getMinutesPerKmOrMile(computeAverageSpeed()), CENTER);
+ dc.drawText(57, 70, VALUE_FONT, getMinutesPerKmOrMile(computeAverageSpeed()), CENTER);
- //hr
+ //hr
dc.setColor(hrColor, Graphics.COLOR_TRANSPARENT);
- dc.drawText(109, 70, VALUE_FONT, hr.format("%d"), CENTER);
//dc.setColor(hrColor, Graphics.COLOR_TRANSPARENT);
//dc.drawText(109, 70, VALUE_FONT, hr.format("%d"), CENTER);
@@ -168,6 +198,19 @@ class RunnersView extends Ui.DataField {
drawCadenceZone(dc, currentCadence, maxCadence-0.5, maxCadence+0.5, Graphics.COLOR_WHITE);
drawCadenceZone(dc, currentCadence, averageCadence-0.5, averageCadence+0.5, Graphics.COLOR_DK_RED);
drawCadenceZone(dc, currentCadence, currentCadence-0.5, currentCadence+0.5, Graphics.COLOR_BLACK);
+
+ //dc.setColor(hrColor, Graphics.COLOR_TRANSPARENT);
+ //dc.drawText(109, 70, VALUE_FONT, hr.format("%d"), CENTER);
+
+ drawHRZone(dc, hr, 000, hrZones[0], Graphics.COLOR_LT_GRAY);
+ drawHRZone(dc, hr, hrZones[0], hrZones[1], Graphics.COLOR_BLUE);
+ drawHRZone(dc, hr, hrZones[1], hrZones[2], Graphics.COLOR_GREEN);
+ drawHRZone(dc, hr, hrZones[2], hrZones[3], Graphics.COLOR_ORANGE);
+ drawHRZone(dc, hr, hrZones[3], 250, Graphics.COLOR_RED);
+
+ drawHRZone(dc, hr, maxHeartRate-0.5, maxHeartRate+0.5, Graphics.COLOR_WHITE);
+ drawHRZone(dc, hr, averageHeartRate-0.5, averageHeartRate+0.5, Graphics.COLOR_DK_RED);
+ drawHRZone(dc, hr, hr-0.5, hr+0.5, Graphics.COLOR_BLACK);
//apace
dc.setColor(textColor, Graphics.COLOR_TRANSPARENT);
@@ -232,13 +275,11 @@ class RunnersView extends Ui.DataField {
}
// headers:
- dc.setColor(headerColor, Graphics.COLOR_TRANSPARENT);
- dc.drawText(50, 38, HEADER_FONT, paceStr, CENTER);
- dc.drawText(57, 160, HEADER_FONT, avgPaceStr, CENTER);
- dc.drawText(109, 38, HEADER_FONT, hrStr, CENTER);
- dc.drawText(170, 38, HEADER_FONT, distanceStr, CENTER);
- dc.drawText(158, 160, HEADER_FONT, durationStr, CENTER);
-
+ dc.setColor(headerColor, Graphics.COLOR_TRANSPARENT);
+ dc.drawText(50, 43, HEADER_FONT, paceStr, CENTER);
+ dc.drawText(170, 43, HEADER_FONT, distanceStr, CENTER);
+ dc.drawText(50, 160, HEADER_FONT, avgPaceStr, CENTER);
+ dc.drawText(170, 160, HEADER_FONT, durationStr, CENTER);
//grid
dc.setColor(Graphics.COLOR_LT_GRAY, Graphics.COLOR_TRANSPARENT);