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);