Compare commits

..
5 Commits
Author SHA1 Message Date
dyuri c8cf349bdb support for new watches #13 #14 2025-07-19 15:53:44 +02:00
dyuri 1874c52bba fenix 8 support 2024-09-15 18:54:20 +02:00
dyuri 8a82a256f2 v2.0.2 2023-11-18 16:09:52 +01:00
dyuri 1e1e28f4e7 rolling average window size => settings 2023-11-17 16:39:00 +01:00
dyuri 80faa77afb #5 linear GAP calculation outside example range 2023-11-17 16:09:15 +01:00
13 changed files with 335 additions and 12 deletions
+25
View File
@@ -7,9 +7,13 @@
<iq:product id="approachs7047mm"/>
<iq:product id="d2airx10"/>
<iq:product id="d2mach1"/>
<iq:product id="descentmk343mm"/>
<iq:product id="descentmk351mm"/>
<iq:product id="enduro3"/>
<iq:product id="epix2"/>
<iq:product id="epix2pro42mm"/>
<iq:product id="epix2pro47mm"/>
<iq:product id="epix2pro47mmsystem7preview"/>
<iq:product id="epix2pro51mm"/>
<iq:product id="fenix5plus"/>
<iq:product id="fenix5splus"/>
@@ -19,17 +23,33 @@
<iq:product id="fenix6xpro"/>
<iq:product id="fenix7"/>
<iq:product id="fenix7pro"/>
<iq:product id="fenix7pronowifi"/>
<iq:product id="fenix7s"/>
<iq:product id="fenix7spro"/>
<iq:product id="fenix7x"/>
<iq:product id="fenix7xpro"/>
<iq:product id="fenix7xpronowifi"/>
<iq:product id="fenix843mm"/>
<iq:product id="fenix847mm"/>
<iq:product id="fenix8solar47mm"/>
<iq:product id="fenix8solar51mm"/>
<iq:product id="fenixe"/>
<iq:product id="fr165"/>
<iq:product id="fr165m"/>
<iq:product id="fr245m"/>
<iq:product id="fr255"/>
<iq:product id="fr255m"/>
<iq:product id="fr265"/>
<iq:product id="fr265s"/>
<iq:product id="fr57042mm"/>
<iq:product id="fr57047mm"/>
<iq:product id="fr945"/>
<iq:product id="fr945lte"/>
<iq:product id="fr955"/>
<iq:product id="fr965"/>
<iq:product id="fr970"/>
<iq:product id="instinct3amoled45mm"/>
<iq:product id="instinct3amoled50mm"/>
<iq:product id="marq2"/>
<iq:product id="marq2aviator"/>
<iq:product id="marqadventurer"/>
@@ -42,9 +62,14 @@
<iq:product id="marqgolfer"/>
<iq:product id="venu2"/>
<iq:product id="venu2plus"/>
<iq:product id="venu2s"/>
<iq:product id="venu3"/>
<iq:product id="venu3s"/>
<iq:product id="venusq2"/>
<iq:product id="venusq2m"/>
<iq:product id="venux1"/>
<iq:product id="vivoactive5"/>
<iq:product id="vivoactive6"/>
</iq:products>
<iq:permissions>
<iq:uses-permission id="FitContributor"/>
+1
View File
@@ -0,0 +1 @@
resources-round-390x390-bigfont
+71
View File
@@ -0,0 +1,71 @@
<layouts>
<!-- A generic, centered layout. -->
<layout id="MainLayout">
<drawable class="Background"/>
<drawable class="BgOverlay" id="BgOverlay">
<param name="x">138</param>
<param name="y">68</param>
<param name="h">220</param>
<param name="d">-22</param>
</drawable>
<drawable class="HeartRate" id="HeartRate">
<param name="y">70</param>
</drawable>
<!-- drawable class="Stamina" /-->
<!-- hr labels -->
<label id="hr" x="center" y="10" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="25%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="75%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<!-- time/timer -->
<label id="timerHM" x="92" y="250" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_MEDIUM" />
<label id="timerS" x="94" y="266" color="0x888888" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" />
<label id="time" x="50%" y="82%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_LARGE" />
<!-- distance/pace/avg pace -->
<label id="pace" x="88%" y="70" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD"/>
<label id="iconPace" x="88%" y="88" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="1" />
<label id="apace" x="88%" y="148" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_LARGE"/>
<label id="iconAPace" x="88%" y="158" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="2" />
<label id="distance" x="88%" y="214" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD" />
<label id="distanceLabel" x="88%" y="222" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" text="km"/>
<!-- cadence -->
<label id="iconCadence" x="10" y="24%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="5" />
<label id="cadence" x="45" y="21%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM" />
<!-- elevation, egain -->
<label id="iconHills" x="7" y="36%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="0" />
<label id="elevation" x="45" y="33%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconEGain" x="7" y="48%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="3" />
<label id="elevationGain" x="45" y="45%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconELoss" x="7" y="60%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="4" />
<label id="elevationLoss" x="45" y="57%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
</layout>
<!-- Layouts used for the for the four quadrants. -->
<layout id="TopLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="6" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
<layout id="BottomLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="72" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
</layouts>
+71
View File
@@ -0,0 +1,71 @@
<layouts>
<!-- A generic, centered layout. -->
<layout id="MainLayout">
<drawable class="Background"/>
<drawable class="BgOverlay" id="BgOverlay">
<param name="x">158</param>
<param name="y">68</param>
<param name="h">290</param>
<param name="d">-32</param>
</drawable>
<drawable class="HeartRate" id="HeartRate">
<param name="y">70</param>
</drawable>
<!-- drawable class="Stamina" /-->
<!-- hr labels -->
<label id="hr" x="center" y="10" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="25%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="75%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<!-- time/timer -->
<label id="timerHM" x="132" y="308" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_MEDIUM" />
<label id="timerS" x="134" y="328" color="0x888888" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" />
<label id="time" x="50%" y="85%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_LARGE" />
<!-- distance/pace/avg pace -->
<label id="pace" x="90%" y="60" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MEDIUM"/>
<label id="iconPace" x="90%" y="112" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="1" />
<label id="apace" x="90%" y="178" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_LARGE"/>
<label id="iconAPace" x="90%" y="198" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="2" />
<label id="distance" x="90%" y="224" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MEDIUM" />
<label id="distanceLabel" x="90%" y="256" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" text="km"/>
<!-- cadence -->
<label id="iconCadence" x="10" y="25%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="5" />
<label id="cadence" x="45" y="23%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM" />
<!-- elevation, egain -->
<label id="iconHills" x="7" y="35%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="0" />
<label id="elevation" x="45" y="33%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconEGain" x="7" y="45%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="3" />
<label id="elevationGain" x="45" y="43%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconELoss" x="7" y="55%" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="4" />
<label id="elevationLoss" x="45" y="53%" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
</layout>
<!-- Layouts used for the for the four quadrants. -->
<layout id="TopLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="6" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
<layout id="BottomLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="72" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
</layouts>
+72
View File
@@ -0,0 +1,72 @@
<layouts>
<!-- A generic, centered layout. -->
<layout id="MainLayout">
<drawable class="Background"/>
<drawable class="BgOverlay" id="BgOverlay">
<param name="x">150</param>
<param name="y">52</param>
<param name="h">230</param>
<param name="d">-32</param>
</drawable>
<drawable class="HeartRate" id="HeartRate">
<param name="y">54</param>
</drawable>
<drawable class="Track" />
<!-- drawable class="Stamina" /-->
<!-- hr labels -->
<label id="hr" x="center" y="3" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="12" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="12" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<!-- time/timer -->
<label id="timerHM" x="132" y="238" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_MEDIUM" />
<label id="timerS" x="134" y="258" color="Graphics.COLOR_LT_GRAY" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" />
<label id="time" x="50%" y="300" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_LARGE" />
<!-- distance/pace/avg pace -->
<label id="pace" x="315" y="60" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD"/>
<label id="iconPace" x="317" y="102" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="1" />
<label id="apace" x="315" y="143" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_LARGE"/>
<label id="iconAPace" x="317" y="163" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="2" />
<label id="distance" x="315" y="200" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD" />
<label id="distanceLabel" x="317" y="220" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" text="km"/>
<!-- cadence -->
<label id="iconCadence" x="30" y="91" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="5" />
<label id="cadence" x="62" y="77" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM" />
<!-- elevation, egain -->
<label id="iconHills" x="22" y="129" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="0" />
<label id="elevation" x="62" y="117" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconEGain" x="22" y="169" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="3" />
<label id="elevationGain" x="62" y="157" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconELoss" x="22" y="209" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="4" />
<label id="elevationLoss" x="62" y="197" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
</layout>
<!-- Layouts used for the for the four quadrants. -->
<layout id="TopLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="6" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
<layout id="BottomLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="72" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
</layouts>
+72
View File
@@ -0,0 +1,72 @@
<layouts>
<!-- A generic, centered layout. -->
<layout id="MainLayout">
<drawable class="Background"/>
<drawable class="BgOverlay" id="BgOverlay">
<param name="x">155</param>
<param name="y">62</param>
<param name="h">260</param>
<param name="d">-32</param>
</drawable>
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<drawable class="Track" />
<!-- drawable class="Stamina" /-->
<!-- hr labels -->
<label id="hr" x="center" y="8" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="22" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<!-- time/timer -->
<label id="timerHM" x="132" y="258" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_MEDIUM" />
<label id="timerS" x="134" y="278" color="Graphics.COLOR_LT_GRAY" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" />
<label id="time" x="50%" y="330" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_LARGE" />
<!-- distance/pace/avg pace -->
<label id="pace" x="330" y="80" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD"/>
<label id="iconPace" x="332" y="102" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="1" />
<label id="apace" x="330" y="178" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_LARGE"/>
<label id="iconAPace" x="332" y="198" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="2" />
<label id="distance" x="330" y="224" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_RIGHT" font="Graphics.FONT_NUMBER_MILD" />
<label id="distanceLabel" x="334" y="246" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_XTINY" text="km"/>
<!-- cadence -->
<label id="iconCadence" x="30" y="106" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="5" />
<label id="cadence" x="62" y="92" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM" />
<!-- elevation, egain -->
<label id="iconHills" x="22" y="144" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="0" />
<label id="elevation" x="62" y="132" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconEGain" x="22" y="184" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="3" />
<label id="elevationGain" x="62" y="172" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
<label id="iconELoss" x="22" y="224" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_LEFT" font="@Fonts.repafield_icons" text="4" />
<label id="elevationLoss" x="62" y="212" color="0x0088FF" justification="Graphics.TEXT_JUSTIFY_LEFT" font="Graphics.FONT_MEDIUM"/>
</layout>
<!-- Layouts used for the for the four quadrants. -->
<layout id="TopLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="6" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="18" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
<layout id="BottomLayout">
<drawable class="Background" />
<drawable class="HeartRate" id="HeartRate">
<param name="y">64</param>
</drawable>
<!-- hr labels -->
<label id="hr" x="center" y="72" color="Graphics.COLOR_WHITE" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_MEDIUM" />
<label id="ahr" x="32%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
<label id="mhr" x="68%" y="72" color="0x888888" justification="Graphics.TEXT_JUSTIFY_CENTER" font="Graphics.FONT_TINY" />
</layout>
</layouts>
+1
View File
@@ -0,0 +1 @@
resources-round-390x390-bigfont
+2 -1
View File
@@ -1,5 +1,5 @@
<properties>
<property id="appVersion" type="string">2.0.1</property>
<property id="appVersion" type="string">2.0.5</property>
<property id="themeColor" type="string">0</property>
<property id="themeColor2" type="string">0088FF</property>
<property id="themeColor3" type="string">00AA55</property>
@@ -8,4 +8,5 @@
<property id="showNextPoint" type="boolean">true</property>
<property id="saveToFit" type="boolean">true</property>
<property id="tlFieldData" type="number">1</property>
<property id="rollingAvgWindow" type="number">10</property>
</properties>
+3
View File
@@ -36,4 +36,7 @@
<setting propertyKey="@Properties.saveToFit" title="@Strings.SaveToFit">
<settingConfig type="boolean" />
</setting>
<setting propertyKey="@Properties.rollingAvgWindow" title="@Strings.RollingAvgWindow">
<settingConfig type="numeric" />
</setting>
</settings>
+1
View File
@@ -16,6 +16,7 @@
<string id="TLFGrade">Grade</string>
<string id="TLFGAP">Grade Adjusted Pace</string>
<string id="TLFVSpeed">Vertical Speed</string>
<string id="RollingAvgWindow">Rolling average window (~seconds)</string>
<string id="uGrade">%</string>
<string id="uGAP">min/km</string>
<string id="uVSpeed">m/min</string>
+7 -2
View File
@@ -11,7 +11,9 @@ const GRADE_ADJUSTMENT as Array<Array<Numeric>> = [
function adjustPaceForGrade(pace, grade) {
if (grade <= GRADE_ADJUSTMENT[0][0]) {
return pace / GRADE_ADJUSTMENT[0][1];
var slope = (GRADE_ADJUSTMENT[1][1] - GRADE_ADJUSTMENT[0][1]) / (GRADE_ADJUSTMENT[1][0] - GRADE_ADJUSTMENT[0][0]);
var adjustment = GRADE_ADJUSTMENT[0][1] + slope * (grade - GRADE_ADJUSTMENT[0][0]);
return pace / adjustment;
}
var size = GRADE_ADJUSTMENT.size();
@@ -27,5 +29,8 @@ function adjustPaceForGrade(pace, grade) {
}
}
return pace / GRADE_ADJUSTMENT[size - 1][1];
var slope = (GRADE_ADJUSTMENT[size - 1][1] - GRADE_ADJUSTMENT[size - 2][1]) / (GRADE_ADJUSTMENT[size - 1][0] - GRADE_ADJUSTMENT[size - 2][0]);
var adjustment = GRADE_ADJUSTMENT[size - 1][1] + slope * (grade - GRADE_ADJUSTMENT[size - 1][0]);
return pace / adjustment;
}
+2 -2
View File
@@ -17,8 +17,8 @@ class RepaFieldApp extends Application.AppBase {
}
//! Return the initial view of your application here
function getInitialView() as Array<Views or InputDelegates>? {
return [ new RepaFieldView() ] as Array<Views or InputDelegates>;
function getInitialView() {
return [new RepaFieldView() as View];
}
}
+7 -7
View File
@@ -55,6 +55,7 @@ class RepaFieldView extends WatchUi.DataField {
hidden var speedNotPace as Boolean;
hidden var showNextPoint as Boolean;
hidden var tlFieldData as Number;
hidden var rollingAvgWindow as Number = 5;
hidden var hrZones as Array<Number>;
hidden var hrHist as Array<Number>;
hidden var hrZoneColors as Array<Number>;
@@ -62,7 +63,7 @@ class RepaFieldView extends WatchUi.DataField {
hidden var cadenceZoneColors as Array<Number>;
hidden var gradeZones as Array<Number>;
hidden var gradeZoneColors as Array<Number>;
hidden var vsZones as Array<Number>;
hidden var vsZones as Array<Float>;
hidden var vsZoneColors as Array<Number>;
hidden var isDistanceMetric as Boolean;
hidden var isElevationMetric as Boolean;
@@ -129,8 +130,6 @@ class RepaFieldView extends WatchUi.DataField {
function initialize() {
DataField.initialize();
var RASize = 5; // TODO: rolling average window size => settings
themeColor = Application.Properties.getValue("themeColor").toNumberWithBase(16);
themeColor2 = Application.Properties.getValue("themeColor2").toNumberWithBase(16);
themeColor3 = Application.Properties.getValue("themeColor3").toNumberWithBase(16);
@@ -138,6 +137,7 @@ class RepaFieldView extends WatchUi.DataField {
speedNotPace = Application.Properties.getValue("speedNotPace");
showNextPoint = Application.Properties.getValue("showNextPoint");
tlFieldData = Application.Properties.getValue("tlFieldData").toNumber();
rollingAvgWindow = Application.Properties.getValue("rollingAvgWindow").toNumber();
hrValue = 0;
ahrValue = 0;
@@ -170,9 +170,9 @@ class RepaFieldView extends WatchUi.DataField {
cgrade = null;
cvspeed = null;
cgap = null;
deltaAlt = new RollingAverage(RASize);
deltaDist = new RollingAverage(RASize);
deltaTime = new RollingAverage(RASize);
deltaAlt = new RollingAverage(rollingAvgWindow);
deltaDist = new RollingAverage(rollingAvgWindow);
deltaTime = new RollingAverage(rollingAvgWindow);
var settings = System.getDeviceSettings();
isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC;
@@ -554,7 +554,7 @@ class RepaFieldView extends WatchUi.DataField {
fitGradeLapAvg.setData(avgLGrade * 100);
}
if (fitGAP != null) {
fitGAP.setData(cgap ? cgap : 60);
fitGAP.setData(cgap ? cgap : 0);
}
if (fitVSpeed != null) {
fitVSpeed.setData(cvspeed ? cvspeed : 0);