diff --git a/resources/fitcontributions/fitcontributions.xml b/resources/fitcontributions/fitcontributions.xml
index 6879595..6f207c5 100644
--- a/resources/fitcontributions/fitcontributions.xml
+++ b/resources/fitcontributions/fitcontributions.xml
@@ -8,27 +8,17 @@
dataLabel="@Strings.chartGrade"
unitLabel="@Strings.uGrade"
fillColor="#00FFFF" />
-
-
-
-
@@ -41,18 +31,6 @@
dataLabel="@Strings.chartGAP"
unitLabel="@Strings.uGAP"
fillColor="#AAFF44" />
-
-
-
-
-
-
diff --git a/resources/settings/properties.xml b/resources/settings/properties.xml
index 1296c56..7f4ab65 100644
--- a/resources/settings/properties.xml
+++ b/resources/settings/properties.xml
@@ -1,11 +1,11 @@
- 2.0.0
+ 2.0.1
0
0088FF
00AA55
0
false
true
- false
+ true
1
diff --git a/source/RepaFieldTrack.mc b/source/RepaFieldTrack.mc
index 368bca7..3baa5c9 100644
--- a/source/RepaFieldTrack.mc
+++ b/source/RepaFieldTrack.mc
@@ -59,9 +59,11 @@ class Track extends WatchUi.Drawable {
var astart = 150;
var aend = 390;
var offtrack = _offCourse > 50.0f;
- dc.setPenWidth((dc.getWidth() * 0.01).toNumber());
+ dc.setPenWidth((dc.getWidth() * 0.01).toNumber() + 1);
dc.setColor(offtrack ? 0x880000 : 0x555555, Graphics.COLOR_TRANSPARENT);
- dc.drawArc(w / 2, h / 2, w / 2 - 2, Graphics.ARC_COUNTER_CLOCKWISE, astart, aend);
+ // the center is between two points, so draw twice
+ dc.drawArc(w / 2 - 1, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, astart, aend);
+ dc.drawArc(w / 2, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, astart, aend);
if (trackPercentage <= 0.0f) {
return;
@@ -88,7 +90,8 @@ class Track extends WatchUi.Drawable {
} else if (acurrent > aend) {
acurrent = aend;
}
- dc.drawArc(w / 2, h / 2, w / 2 - 2, Graphics.ARC_COUNTER_CLOCKWISE, astart, acurrent);
+ dc.drawArc(w / 2 - 1, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, astart, acurrent);
+ dc.drawArc(w / 2, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, astart, acurrent);
// next point
if (_toNextPoint > 0.0f) {
@@ -101,8 +104,15 @@ class Track extends WatchUi.Drawable {
anext = aend;
}
dc.setPenWidth((dc.getWidth() * 0.01).toNumber());
- dc.setColor(offtrack ? 0xAA0000 : 0xAAAAAA, Graphics.COLOR_TRANSPARENT);
- dc.drawArc(w / 2, h / 2, w / 2 - 2, Graphics.ARC_COUNTER_CLOCKWISE, acurrent, anext);
+ if (offtrack) {
+ dc.setColor(0xAA0000, Graphics.COLOR_TRANSPARENT);
+ } else if (_toNextPoint > 500) {
+ dc.setColor(0xAAAAAA, Graphics.COLOR_TRANSPARENT);
+ } else {
+ dc.setColor(0xAAFF44, Graphics.COLOR_TRANSPARENT);
+ }
+ dc.drawArc(w / 2, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, acurrent, anext);
+ dc.drawArc(w / 2 - 1, h / 2, w / 2 - 1, Graphics.ARC_COUNTER_CLOCKWISE, acurrent, anext);
// next point name
if (_showNextPoint && _font != null && h > 350) {
@@ -112,7 +122,7 @@ class Track extends WatchUi.Drawable {
} else if (_nextPointName.length() > 20) {
pointText += " | " + _nextPointName.substring(0, 17) + "...";
}
- if (_toNextPoint > 1000) {
+ if (_toNextPoint > 500) {
dc.setColor(0x88FFFF, Graphics.COLOR_TRANSPARENT);
} else {
dc.setColor(0xAAFF44, Graphics.COLOR_TRANSPARENT);
diff --git a/source/RepaFieldView.mc b/source/RepaFieldView.mc
index d092980..3a9a5d9 100644
--- a/source/RepaFieldView.mc
+++ b/source/RepaFieldView.mc
@@ -16,18 +16,12 @@ const TLF_GAP = 2;
const TLF_VSPEED = 3;
const FIT_GRADE_ID = 0;
-const FIT_GRADE_SUM_MIN_ID = 5;
-const FIT_GRADE_SUM_MAX_ID = 6;
-const FIT_GRADE_SUM_AVG_ID = 7;
-const FIT_GRADE_LAP_AVG_ID = 8;
+const FIT_GRADE_SUM_AVG_ID = 3;
+const FIT_GRADE_LAP_AVG_ID = 4;
const FIT_GAP_ID = 1;
-const FIT_GAP_SUM_AVG_ID = 3;
-const FIT_GAP_LAP_AVG_ID = 4;
const FIT_VSPEED_ID = 2;
-const FIT_VSPEED_SUM_MIN_ID = 9;
-const FIT_VSPEED_SUM_MAX_ID = 10;
-const FIT_VSPEED_SUM_AVG_ID = 11;
-const FIT_VSPEED_LAP_AVG_ID = 12;
+const FIT_VSPEED_SUM_AVG_ID = 5;
+const FIT_VSPEED_LAP_AVG_ID = 6;
function displayHr(hr as Number, type as Number, zones as Array) as String {
if (hr == 0) {
@@ -191,7 +185,7 @@ class RepaFieldView extends WatchUi.DataField {
fitVSpeedSumAvg = null;
fitVSpeedLapAvg = null;
if (Application.Properties.getValue("saveToFit")) {
- fitGrade = DataField.createField(
+ fitGrade = createField(
"grade",
FIT_GRADE_ID,
FitContributor.DATA_TYPE_FLOAT,
@@ -200,25 +194,25 @@ class RepaFieldView extends WatchUi.DataField {
:units=>"%",
}
);
- fitGradeSumAvg = DataField.createField(
+ fitGradeSumAvg = createField(
"avg_grade",
FIT_GRADE_SUM_AVG_ID,
FitContributor.DATA_TYPE_FLOAT,
{
- :mesgType=>FitContributor.MESG_TYPE_RECORD,
+ :mesgType=>FitContributor.MESG_TYPE_SESSION,
:units=>"%",
}
);
- fitGradeLapAvg = DataField.createField(
- "avg_grade",
+ fitGradeLapAvg = createField(
+ "lap_avg_grade",
FIT_GRADE_LAP_AVG_ID,
FitContributor.DATA_TYPE_FLOAT,
{
- :mesgType=>FitContributor.MESG_TYPE_RECORD,
+ :mesgType=>FitContributor.MESG_TYPE_LAP,
:units=>"%",
}
);
- fitGAP = DataField.createField(
+ fitGAP = createField(
"gap",
FIT_GAP_ID,
FitContributor.DATA_TYPE_FLOAT,
@@ -227,7 +221,7 @@ class RepaFieldView extends WatchUi.DataField {
:units=>isPaceMetric ? "min/km" : "min/mi",
}
);
- fitVSpeed = DataField.createField(
+ fitVSpeed = createField(
"vspeed",
FIT_VSPEED_ID,
FitContributor.DATA_TYPE_FLOAT,
@@ -236,21 +230,21 @@ class RepaFieldView extends WatchUi.DataField {
:units=>isElevationMetric ? "m/min" : "ft/min",
}
);
- fitVSpeedSumAvg = DataField.createField(
+ fitVSpeedSumAvg = createField(
"avg_vspeed",
FIT_VSPEED_SUM_AVG_ID,
FitContributor.DATA_TYPE_FLOAT,
{
- :mesgType=>FitContributor.MESG_TYPE_RECORD,
+ :mesgType=>FitContributor.MESG_TYPE_SESSION,
:units=>isElevationMetric ? "m/min" : "ft/min",
}
);
- fitVSpeedLapAvg = DataField.createField(
- "avg_vspeed",
+ fitVSpeedLapAvg = createField(
+ "lap_avg_vspeed",
FIT_VSPEED_LAP_AVG_ID,
FitContributor.DATA_TYPE_FLOAT,
{
- :mesgType=>FitContributor.MESG_TYPE_RECORD,
+ :mesgType=>FitContributor.MESG_TYPE_LAP,
:units=>isElevationMetric ? "m/min" : "ft/min",
}
);
@@ -537,18 +531,18 @@ class RepaFieldView extends WatchUi.DataField {
if (fitGrade != null) {
fitGrade.setData(cgrade ? cgrade : 0);
var gradeSumAvg = grade.totalAvg();
- fitGradeSumAvg.setData(gradeSumAvg ? gradeSumAvg : 0);
+ fitGradeSumAvg.setData(gradeSumAvg ? gradeSumAvg * 100 : 0);
var gradeLapAvg = grade.lapAvg();
- fitGradeLapAvg.setData(gradeLapAvg ? gradeLapAvg : 0);
+ fitGradeLapAvg.setData(gradeLapAvg ? gradeLapAvg * 100 : 0);
}
if (fitGAP != null) {
fitGAP.setData(cgap ? cgap : 0);
}
if (fitVSpeed != null) {
fitVSpeed.setData(cvspeed ? cvspeed : 0);
- var vsSumAvg = grade.totalAvg();
+ var vsSumAvg = vspeed.totalAvg();
fitVSpeedSumAvg.setData(vsSumAvg ? vsSumAvg : 0);
- var vsLapAvg = grade.lapAvg();
+ var vsLapAvg = vspeed.lapAvg();
fitVSpeedLapAvg.setData(vsLapAvg ? vsLapAvg : 0);
}
}