From 0cf8d53c52b086278fd40b26f458dab70cf98de5 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 22 Jul 2025 14:52:14 +0100 Subject: [PATCH] add clkinfodist --- apps/clkinfoclk/metadata.json | 2 +- apps/clkinfodist/ChangeLog | 1 + apps/clkinfodist/app.png | Bin 0 -> 4992 bytes apps/clkinfodist/clkinfo.js | 22 ++++++++++++++++++++++ apps/clkinfodist/icon.png | Bin 0 -> 4313 bytes apps/clkinfodist/metadata.json | 14 ++++++++++++++ apps/clkinfodist/screenshot.png | Bin 0 -> 5051 bytes 7 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 apps/clkinfodist/ChangeLog create mode 100644 apps/clkinfodist/app.png create mode 100644 apps/clkinfodist/clkinfo.js create mode 100644 apps/clkinfodist/icon.png create mode 100644 apps/clkinfodist/metadata.json create mode 100644 apps/clkinfodist/screenshot.png diff --git a/apps/clkinfoclk/metadata.json b/apps/clkinfoclk/metadata.json index 8d676d0e0..0160b59d9 100644 --- a/apps/clkinfoclk/metadata.json +++ b/apps/clkinfoclk/metadata.json @@ -5,7 +5,7 @@ "icon": "app.png", "screenshots": [{"url":"screenshot.png"}], "type": "clkinfo", - "tags": "clkinfo", + "tags": "clkinfo,clock", "supports" : ["BANGLEJS2"], "storage": [ {"name":"clkinfoclk.clkinfo.js","url":"clkinfo.js"} diff --git a/apps/clkinfodist/ChangeLog b/apps/clkinfodist/ChangeLog new file mode 100644 index 000000000..2286a7f70 --- /dev/null +++ b/apps/clkinfodist/ChangeLog @@ -0,0 +1 @@ +0.01: New App! \ No newline at end of file diff --git a/apps/clkinfodist/app.png b/apps/clkinfodist/app.png new file mode 100644 index 0000000000000000000000000000000000000000..84544fa8632d6cede926e95bb00c3564918509f7 GIT binary patch literal 4992 zcmeHLdr%YC8cz`ACCa5%y@+)QiXv>X*=(LBf|3XUg9uR(D6-jXV1+zL0tCdX;-eR_ zRI8vO)K@K9l=`S;kWxsMi_gnoi;UDVcxf-z2conpqu6^A5MkPxJI>Vq$js*Ke&_ps z=lg!=_npZmKPocR-POyLMx(jQ!=%w*jI~|PfYfgHf-c(n!dh zZ6G1iLTP9;OPe+-e!_WZ{PV6!^BgYFzfHf>Ca+8vUx z^TFN?t748YVAsiiOTQRZ7MQnHaAWSIgA0$o8<&Ap|LRtP&Gcs$=A~M#A2ocwvEWSQ zgvvbV8T~&@f&aO%{NE#7VU7Iu(;okl9Z=%+2uqi?m@iL3->WFC5~Th-H?@6d z9kS=U6~)z&CP$Y*m5Zlz&e21g&@?I4B0shLP`}0L_mlT_Up%tC!f{dISml8Qnf)E> zdTQbWg1EoT8rvECw4gJ0o5P0p4=gp6J|r5cQrgSpj&OZnKt|G&oxjFK6nN9u{!rhL z5fSrb{gvrScP?#L+$?&5ZO(nq5_DL9*zeY~s&!4+^XK%>8jLj?19$Y%XcOWoAh1})ViBR&GI6zDMKUc~15h4~CJwR~a3Ym7 zLn<E49M3D!xjgcE zLWcS4)s!at|9RV*2NDl#c^G8^>u1|d105AZrVl&~Jf>0hR)QdVQ;2Y4pac`1NviF6 z0<3{4A_dnali>6ilX=)51~%yzQA#m}JJ-r@=XdUTOD;&+s;QM%rUfj4pc%B2-HIl(v)hd*zu_cVKZbgsn8uXm0P=E;_BGbSf}9 zndJ(Z(=Sew-4Q{gOCI+X8)q50A2%ndx*hd3-DPsbOPu)A>PJV5d>p@s?70ty zHNMZFxvdkcD#te`Iad~hJP)ruzNo!r9zD$ zOmqC=kkyNdYnc7O@37TFygY?TV0^kY(YZJi2~X~euDi85!8x%giF(3n3BSbZN^H7& zbE0#%#Q$l|DygpZaMAOy#)mT0v8mD;*LwKu{_eH27xdhBjQA!4bKjEW%1~Xy<^)Eq`R~1HZ0d*J#^%XKR?9OZdUni7{dn(BnpFjJ%8uvEzr8Xb#6x^? z@%Y^xt!J9TcaN=2>DlIW>+bvF6Jc&XdomN4vXiok`qQ52Q(9U)(_5CyxpkR8Cb$yY z)^){QzF?T%T^m@mYyiUfxn?J^vf4XJj zCE54$5{{ZGqDG>kw literal 0 HcmV?d00001 diff --git a/apps/clkinfodist/clkinfo.js b/apps/clkinfodist/clkinfo.js new file mode 100644 index 000000000..93cbe9fcd --- /dev/null +++ b/apps/clkinfodist/clkinfo.js @@ -0,0 +1,22 @@ +(function() { + let strideLength = (require("Storage").readJSON("myprofile.json",1)||{}).strideLength ?? 0.79, + lastSteps = 0; + function stepUpdateHandler() { distance.emit("redraw"); } + var distance = { + name : "Distance", + get : () => { let v = (Bangle.getHealthStatus("day").steps - lastSteps)*strideLength; return { + text : require("locale").distance(v,1), + img : atob("GBiBAAMAAAeAAA/AAA/AAA/gAA/gwAfh4AfD4APD4AOH4AAH4ADj4AHjwAHhwADgAAACAAAHgAAPAAAHAAgCEBgAGD///BgAGAgAEA==") + };}, + run : function() { + lastSteps = (lastSteps>=Bangle.getHealthStatus("day").steps) ? 0 : Bangle.getHealthStatus("day").steps; + this.emit("redraw"); + }, + show : function() { Bangle.on("step", stepUpdateHandler); stepUpdateHandler(); }, + hide : function() { Bangle.removeListener("step", stepUpdateHandler); } + }; + return { + name: "Bangle", + items: [ distance ] + }; +}) diff --git a/apps/clkinfodist/icon.png b/apps/clkinfodist/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..70a6d496a973014a1555e5585930605e3c4a7e69 GIT binary patch literal 4313 zcmeHLYj6|S6_y>>PcTV{DKv4itV08&EA46}ue7!77)c-n%c!z2b}%*jv==1pvRYZP zJ2j4-7q~nEB`F@K5EDZ(j@!72O8`?-9)SdsKvSk9O@hY>G!QWHG(+fk2)(&UeqfqpNk^;zd)_f0C}#>883}4j*{VRIk)zaPN!SZh*&;I)9ns zqoR-`i@XrvAf;B~ATB2GI$i9epttbuBT#D3(E9wsgsdG*i?X}mi+>+T-m=cKeNA~; zmGkiR+TO!V(wwv{9nY0M>TqpcnC;l*JdZg)JhR@uI9$-0_~Nk>f%X}_Yrpd@?2DKYRD&9RBfuzWn}em9Op6=@On0 z>~^o)ZXZbpB+>foXKk({kKA{xvZNhGGG}Dn^|tqgD{b(`?sVtNcdmM}G`mQDv+<`> z-ObIr`W}(z7gOFjWxV*{ytMZRBhwzJyw;X?a_Hk7IWJxOS@I1>|4jVU z{K4eGQ~cS!o+bD3&hk0=5B(m!)Od7L#j=X}&nl#{zU>tLLd!#$)0>~nEG2)J<=GHx zv9zrsFJ#Pme(8J5Tf5~A-2-n|&OCML;gc16tc^)Cx{}i1d;acSFl(tpIP31(+;;QL zr`MhvT>QE3#L~o^ao!fS_C|euX>>N7w=YqEy4(U(7`p@g%bOnhe zx?8x^zW3&~WOT?~cd*mBvEeVlzW)84^L};cLMHk(dt&z$SAENZ{AoQq&Jf(=-!9)7 zefMf-_ofe0AkT_9VndUCWzQoYetG}3flF7ep2s`Ct=Db%tK8-D5ifzViwU5-$~;9R zBL?*pE7F`k7L-8U>2!GoF^OVUa|%RrRYJ%HUpvqXLjr4qmzh1NN3wI(f~!vEO6rRJ zOx3J~{5Cl1ef?~lyC``s|u*OS*chziwAq}Few!vi{FJu>G4l?OYdK7WS zgc>89pAO~8EKm9z3x_E{%LZ2~ibNU=(P&g3#r2|GWx%Xfs{u6{j79_?kZ^5Cp<+lV zoTF02IUHP=kp)Q+#1N!%QnVORY%mP^p^^B4lE*Vj9|{kv0Q4}#D9M27QA03j80!&M zoHc-CIH2$K2>Zb*HTbx&7?ByyS;K{toUs%vGwLrzD^!*e@qusS}; zij2UL+N+he;AR@jMYvqtgqSQ8j#zOcj+jk^86~Vnp2N{GRPIn%p+XF&QUP+k0C*S+ z#anqRg-{mSf|w|RM`(`65fe}68W|H|qRhk?iY2lDs*(zfjY_3r0hI;iF$QBT2ufQ4 z0gV#~&Er;tVR4itcp7J|lt#reW^)lBgfRl==_x8lu!pe-c`(iR0tG4T|_R1L>! zaRRP*7gJ4zsyMKF443POUHG0-z&PBOlDVZy*0y+Y%KzV9fL36czK0uT&A3FNzi8HN)!sC&jp#(9SCXp*M^ z#%wacFKz>y7uX98qnqKdW+2`l@-sXaKjaV)G&#tG^qrJzQmzRpFd^_{bxq1OAq6G` zo~*9_n_TI)k5gO-{0fSK!_wuXn+4#Yl}s;Q5c$scv8BtxWQri0mt2vu0&pFG`Y#kNiz3pTdtH z+Txl0kIpZiKbPWlKJ}OzO`Edkj#aF`nBE79Y ak`p{s_PwY12kr#n=-kd?#~&7~Z2T`==oa4q literal 0 HcmV?d00001 diff --git a/apps/clkinfodist/metadata.json b/apps/clkinfodist/metadata.json new file mode 100644 index 000000000..2a60547dd --- /dev/null +++ b/apps/clkinfodist/metadata.json @@ -0,0 +1,14 @@ +{ "id": "clkinfodist", + "name": "Clockinfo Distance", + "version":"0.01", + "description": "Uses the 'My Profile' app's Stride Length to calculate distance travelled based on step count. Tap to reset for measuring distances.", + "icon": "app.png", + "screenshots": [{"url":"screenshot.png"}], + "type": "clkinfo", + "tags": "clkinfo,distance,steps,outdoors,tool", + "dependencies": {"myprofile":"app"}, + "supports" : ["BANGLEJS2"], + "storage": [ + {"name":"clkinfodist.clkinfo.js","url":"clkinfo.js"} + ] +} diff --git a/apps/clkinfodist/screenshot.png b/apps/clkinfodist/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9463e40642f80cd18c69b936c2affcf0e6e1eb26 GIT binary patch literal 5051 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 Mghk1}30ac!U#F9JhX4Qo literal 0 HcmV?d00001