From 7fc2ce03756ec6d9cbbb0ba75d6411ddafddcf0a Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Sun, 10 Dec 2023 09:39:13 +0100 Subject: [PATCH] Added myprofile --- apps/myprofile/README.md | 11 ++++++++ apps/myprofile/app.png | Bin 0 -> 1235 bytes apps/myprofile/metadata.json | 18 ++++++++++++ apps/myprofile/settings.js | 52 +++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 apps/myprofile/README.md create mode 100644 apps/myprofile/app.png create mode 100644 apps/myprofile/metadata.json create mode 100644 apps/myprofile/settings.js diff --git a/apps/myprofile/README.md b/apps/myprofile/README.md new file mode 100644 index 000000000..931d50ae2 --- /dev/null +++ b/apps/myprofile/README.md @@ -0,0 +1,11 @@ +# My Profile + +Configure your personal profile. All settings are optional and are only stored on the watch. + +## Available settings + +| Setting | Description | Displayed in | Stored in | Default value | How to measure | +| ------------- | ----------------------------- | ------------------- | --------- | ------------- | ----------------------------------------------------------------- | +| HR max | maximum heart rate | BPM | BPM | 60 | Use maximum value when exercising.
If unsure set to 220-age. | +| HR min | minimum heart rate | BPM | BPM | 200 | Measure your heart rate after waking up | +| Stride length | distance travel with one step | local length unit | meter | 0 (=not set) | Walk 10 steps and divide the travelled distance by 10 | diff --git a/apps/myprofile/app.png b/apps/myprofile/app.png new file mode 100644 index 0000000000000000000000000000000000000000..4d95f2c69a6c169e9bec883457618cde06a68122 GIT binary patch literal 1235 zcmV;^1T6cBP)v8ufD;F=f5cAWHnBa^q;TLw;2)r(68^FC#zh|V)=uigcJR)Q z9T@48R^FYr-`jaJ?|aXdWng^E>Mv3zKc-wJ371*Qd z^$g|k8DUT}Mx6JoNP{r>W%5^b!6_n9^ zxa{xCGx-VS@MQetWjmxe{7qSNQjh$DX6U?#(^J5c%6r(L_x}O%w6hYV0`Ct+K7Jrx zBOLxZZ_@O%6AWr!@57sCl3)5oJ!|T;NieC_N>Z(r+t-Gic!( zmwFsPd7x#GOEtd*|4RHc<_qA?)pR7@PncE)f z7$R&2!gkc1lAaR@F2YYYucjo9Z1!$eub9ni?gs|UC660|Flc!-5NGHJR2YKbdy?No@=v!sKt-2DntKB~TL@aw3>=)T(am zA3GoqwU5zm+}e{WWDg%slWF13p+4W+K1MYY*=ej-q>AQ+D-8w_$9wq9df5PZew4^6 z@`@2-9o#KTwO9l-yD8L6t_{4#%#HU0uaZt}rYqcyiBmMs%wAurwyXPo-D$cHnH`t_oC z$1*u)Y;_@;cYX}njghTJFy*x7@{o;`)N|IT#=>^(QY0r1f(9K4*^O3YQ|vF@tG;E8 zYb+MUtJezRhv}?S)oQWZ?wMbW7M$;+1@+34u!ni9cpH#lifRlbBD}-Zt^_e*n`Rh(=&!7jOUo002ovPDHLkV1gUSP}Beb literal 0 HcmV?d00001 diff --git a/apps/myprofile/metadata.json b/apps/myprofile/metadata.json new file mode 100644 index 000000000..79add3b5a --- /dev/null +++ b/apps/myprofile/metadata.json @@ -0,0 +1,18 @@ +{ "id": "myprofile", + "name": "My Profile", + "shortName":"My Profile", + "icon": "app.png", + "type": "settings", + "version":"0.01", + "description": "Configure your personal profile. All settings are optional and only stored on the watch.", + "readme": "README.md", + "tags": "tool,utility", + "supports": ["BANGLEJS", "BANGLEJS2"], + "storage": [ + {"name":"myprofile.settings.js","url":"settings.js"} + ], + "data": [ + {"name":"myprofile.json"} + ] +} + diff --git a/apps/myprofile/settings.js b/apps/myprofile/settings.js new file mode 100644 index 000000000..576627212 --- /dev/null +++ b/apps/myprofile/settings.js @@ -0,0 +1,52 @@ +(function(back) { + const FILE = "myprofile.json"; + + const myprofile = Object.assign({ + minHrm: 60, + maxHrm: 200, + strideLength: 0, // 0 = not set + }, require('Storage').readJSON(FILE, true) || {}); + + function writeProfile() { + require('Storage').writeJSON(FILE, myprofile); + } + + // Show the menu + E.showMenu({ + "" : { "title" : /*LANG*/"My Profile" }, + + "< Back" : () => back(), + + /*LANG*/'HR max': { + format: v => /*LANG*/`${v} BPM`, + value: myprofile.maxHrm, + min: 30, max: 220, + onchange: v => { + myprofile.maxHrm = v; + writeProfile(); + } + }, + + /*LANG*/'HR min': { + format: v => /*LANG*/`${v} BPM`, + value: myprofile.minHrm, + min: 30, max: 220, + onchange: v => { + myprofile.minHrm = v; + writeProfile(); + } + }, + + /*LANG*/"Stride length": { + value: myprofile.strideLength, + min:0.00, + step:0.01, + format: v => v ? require("locale").distance(v, 2) : '-', + onchange: v => { + console.log(v); + myprofile.strideLength=v; + writeProfile(); + }, + }, + }); +})