From 47e74c8dfe335cdf654197975c3a808f7394526c Mon Sep 17 00:00:00 2001 From: Gyuri Horak Date: Sun, 12 Nov 2023 18:50:49 +0100 Subject: [PATCH] #8 summary/lap fit fix --- .../fitcontributions/fitcontributions.xml | 54 ++++--------------- resources/settings/properties.xml | 4 +- source/RepaFieldTrack.mc | 22 +++++--- source/RepaFieldView.mc | 48 ++++++++--------- 4 files changed, 49 insertions(+), 79 deletions(-) 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); } }