From d1534bdcbf2281343f023d4c8aada9169283ac84 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 26 Nov 2021 15:05:05 +0000 Subject: [PATCH 01/58] comment --- modules/Settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Settings.js b/modules/Settings.js index 8d7fba653..0828b4655 100644 --- a/modules/Settings.js +++ b/modules/Settings.js @@ -7,7 +7,7 @@ Usage: // read a single app setting value = require('Settings').get(appid, key, default); // omit key to read all app settings -value = require('Settings').get(); +value = require('Settings').get(appid); // write a single app setting require('Settings').set(appid, key, value) // omit key and pass an object as values to overwrite all settings From fc6ecaccce783eb5bf6d3571b885bdfcf78912be Mon Sep 17 00:00:00 2001 From: James G Date: Fri, 26 Nov 2021 12:35:35 -0500 Subject: [PATCH 02/58] Add new Interval Timer app. --- apps.json | 15 ++ apps/intervalTimer/ChangeLog | 1 + apps/intervalTimer/README.md | 34 +++ apps/intervalTimer/app-icon.js | 1 + apps/intervalTimer/app.png | Bin 0 -> 1823 bytes apps/intervalTimer/images/done.png | Bin 0 -> 2356 bytes apps/intervalTimer/images/pause.png | Bin 0 -> 1231 bytes apps/intervalTimer/images/set-active.png | Bin 0 -> 2226 bytes apps/intervalTimer/images/set-rest.png | Bin 0 -> 2364 bytes apps/intervalTimer/images/set-sets.png | Bin 0 -> 2212 bytes apps/intervalTimer/images/timer1.png | Bin 0 -> 1717 bytes apps/intervalTimer/images/timer2.png | Bin 0 -> 1646 bytes apps/intervalTimer/intervalTimer.app.js | 306 +++++++++++++++++++++++ 13 files changed, 357 insertions(+) create mode 100644 apps/intervalTimer/ChangeLog create mode 100644 apps/intervalTimer/README.md create mode 100644 apps/intervalTimer/app-icon.js create mode 100644 apps/intervalTimer/app.png create mode 100644 apps/intervalTimer/images/done.png create mode 100644 apps/intervalTimer/images/pause.png create mode 100644 apps/intervalTimer/images/set-active.png create mode 100644 apps/intervalTimer/images/set-rest.png create mode 100644 apps/intervalTimer/images/set-sets.png create mode 100644 apps/intervalTimer/images/timer1.png create mode 100644 apps/intervalTimer/images/timer2.png create mode 100644 apps/intervalTimer/intervalTimer.app.js diff --git a/apps.json b/apps.json index a7a74f4cb..a0bd5bfd0 100644 --- a/apps.json +++ b/apps.json @@ -4456,5 +4456,20 @@ "storage": [ {"name":"timecal.app.js","url":"timecal.app.js"} ] + }, + { + "id":"intervalTimer", + "name":"Interval Timer", + "shortName":"Interval Timer", + "icon": "app.png", + "version":"0.01", + "description": "Interval Timer for workouts, HIIT, or whatever else.", + "tags": "timer, interval, hiit, workout", + "readme":"README.md", + "supports":["BANGLEJS2"], + "storage": [ + {"name":"intervalTimer.app.js","url":"app.js"}, + {"name":"intervalTimer.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/intervalTimer/ChangeLog b/apps/intervalTimer/ChangeLog new file mode 100644 index 000000000..d62860265 --- /dev/null +++ b/apps/intervalTimer/ChangeLog @@ -0,0 +1 @@ +0.01: First Release \ No newline at end of file diff --git a/apps/intervalTimer/README.md b/apps/intervalTimer/README.md new file mode 100644 index 000000000..f56dd74d2 --- /dev/null +++ b/apps/intervalTimer/README.md @@ -0,0 +1,34 @@ +# Interval Timer + +An interval timer for workouts and whatever else! + +## Usage + +First set the active time (i.e. the number of seconds to perform exercises). + +![Set Active Time](images\set-active.png) + +Next set the rest time (i.e. number of seconds to rest between exercises). + +![Set Rest Time](images\set-rest.png) + +Finally choose the number of sets to perform. + +![Set Number Sets](images\set-sets.png) + +Active time will be shown in red, rest time in green. The watch will buzz whenever active or rest time gets to 0. + +![Timer (active)](images\timer1.png) +![Timer (rest)](images\timer2.png) + +You can press the physical button during timer countdown to pause the timer. + +![Paused](images\pause.png) + +View after all sets are completed. Press menu to change settings or restart to start timer again with the same settings. + +![Completed view](images\done.png) + +## Creator + +James Gough diff --git a/apps/intervalTimer/app-icon.js b/apps/intervalTimer/app-icon.js new file mode 100644 index 000000000..1ca594050 --- /dev/null +++ b/apps/intervalTimer/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwg96hWq1WgDCgXWxGZzOICqQABC4QABCyIXFDBsICIeJyfznAFBwAWPC4Of///mYYMCwgXBl4XB/4xCFxwABn4XCDAQwICw2ICwf/+YwJxGDHoQXHGARGIn/4C5QwBJAwQDC5QLCIw6GEC5BIGIwQLBJAgXGJAwXEJAgXPHgoXIEYIXFLwRIFC484C4h2DJAoIFPA+Ix4MGAAJoDHYgXKf4QXUJAYJGC5p5CF6hIBO44XNABIXGEw4AIU4rXFC5jvFc5AAHxAXGQwwAHQAIXcPCB2FC4RgOB4IXFJBxGHJB5GHJAYwKFwIXIJAIwKFwJGHGAYYICwIuIGAeImYWFmYJBFxIYEwZjC+YtCCxZJDAA4WMDBIWODIwVRAH4AXA==")) \ No newline at end of file diff --git a/apps/intervalTimer/app.png b/apps/intervalTimer/app.png new file mode 100644 index 0000000000000000000000000000000000000000..782c449b3f8940d4fda51449cb0a1b40198116cc GIT binary patch literal 1823 zcmV+)2jKXLP)T;~zTf8RNKR?_ZDvUhc{Bwyk**2W~b2)Ry8<9i5= zNz?Sf80wZbZ64xUA$bXTXhUfzg}#)gjSL}>rvwsQs10^0rB!4U6EIRJZi_9+cI{Zv zbysU=Z`#|LK1fGgX=WxUADjEW2!90fG*Svgvh#&YQ35|%e6W4zcGCHD6En#Sx8o_UMUzC*h2A4U zP<=!G)(_XkfZky-T#bR#z>9?kh~0*?FuC^zh6(+1dob#=@xl}sizOMFk8>-Y$~QxJ zCmv~ed1SXr6&|^219~SXUGA{)CxK_G;kOWcWs=7|PWsL~T9Rihn&kX!lwc~8Oa4o& zF?DRDvolsnM#V7NJ1oX(lm}=y?55|rlD-c>x7$hIwhioRtji@Ib%l*{kNrn%?^iA= z8sKUSoL-Ic0CfjEeEn#70|1CHQ|WQmFG@^I(=|-vZWM%Ndr<^;x|AGfY;FZZkuO$?MK_aT%QVab1p*0w2eV) z!uQ%ec#Y+(=QVNssuZuS0SCu}o0pOl0N-hIV`y2&X>#hkzH1X-gccaS6=L?wg&L{8 z2&blawk>-f1oh&RH|Dq6@!A?-N~Vvc4EwOlpxa#>48GOw;oF;=Nv2Ikrz8Ap;vTUY zx|QGUWLtw_O`W9EC++x(4G_^p)Cp_)`QLSA{io%SUmcVj6&yLFcva}hF98@Jl$ z&C1qLKRhM{)f6@c9JoIJ1h5&vf-o6c;ImsHLb0k6X<7JP zPCUA{bT(bnW5M2v2AF2%(DDIpCt8J=xu@05^AByzqb;ON{ylMz(Wx-eqME0AXo@`d zRdBe7r;wmvw>93L^}(_@xwDn6p5iw(8&2@T#sBipV8x1{B(}SOxE(gN=^r3;^&q*Ykqk zKHnrV!e8&)tNN^5Y%p?Fl#ar6I|G(8mQm>f6yU_ye0;ObZM&9UWn`+)*P*d+y`~@a znu1^Sbh62ne|L1Hc&e+ZmZGvUZD!l;Z{Pi<#BULUAV6^Z{!;8cnhe)pFIy2#iOw z2Iz``LY^W6ETq)o8ho<)fNm#rGW6`hvEnJNzbMIgxjn;3+XKTRV4&MaAd)EB? zY?S0zco`C=aA7u@Ly>ns^|yRs$6GQJr!&r<0|9_wD#M>=BBfYs3IWc}Lz^9Kj&jT-8^DE&518XRYtHs{~F|LFY%X1M`D)X;@mE5uOt1A$<|i~52xpw+44H8h;sqK76;lTgZJCYk1DEX8;Q3MekzwK)T3&Uq^rmlo}J0VO=qBvD-INi{Gpd@Bshs_#Xuib55gPS>yl! N002ovPDHLkV1m2lg2(^> literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/images/done.png b/apps/intervalTimer/images/done.png new file mode 100644 index 0000000000000000000000000000000000000000..d210540d16cbee6a672052c93bad3179cd6926ba GIT binary patch literal 2356 zcmZ{mdr;Ep8pmHiyx@8%F)w+eG*j?aSuCZM+8SV1n4+*Enq`W$n5GcALPt06m6}=YtBq_X7-QwednF$op~Jvy;3d7tNY%5?g>zBBZO_va3}Q5F2%bp?iW}fYwfnaIFP@+Vk7vZ-$0q$ z)gbA6zrZoUsLDx6=gQBiH!QE{=pxvjK4nQ}s40yQAaV;RC6q!uz9E0N5#0(0s8NLQ z0&uhYwe1NQTfa1?R|6tuR!}y4Z@3O>e|?5axL@aD7J1tjQ{htpWJLeRSw|t2svSa! zJGtPR&NfRcBdINbXhQrMBGL`i#xe+sY@F;Y1;ms4^5;r5eriNSPPB}>fnuuQvUa@x z`i8`hm=2caFiYPN_RO`)&o67E5P(aR8+!uLjxZA!L@)F*tv6i_n%{HSH%bqpvVtd? zH!ef>3~$hW0Ee&M`oKVXfm@%r!bEb;aV?xpOMM9dWRz2*7!Df5E?(Xgz_&^^45GmR z{Ew$$>RuziF563FgA%khCTtu(>5#!ZtGVV=0Q{ zhaQ#Rcszu&$o7PR)nYRX-V5Vsk%3%_D~)+SG0o{$)C~u96)D?C{77c{2&D zOe_pk$DaJrDZk5MWE0G6#!*_G^a6yz0`z_{O^@!hM9DFVNk4z{K^zpmzqaLB<_p>A zCh)bpdyMOmJ2gJ!u?VONCFmOdr3l@IU76y{QS(;4N|U16ZHVJE%l zum0)EjQI~eK(@Iuu>-7Np$bJrZ+4;7T`1~CwWQ6HYF6W3!m5mznN8WwsmL!jmd zHFfly|JUaoD4@y=t~B90pbe*WrRQ05v8n{cr4g4Y{2i;79#=(UdQpGEqB!wmU3N`f z$ACx=Ec_$)4q`w{?#B^YpPfLSyV?}yIr?&m2OrNoJqo=G9iHVmV8G&+v^oZ!F;HU= zPc9S#o?M8i`#mP1<18SPHBK){2vsUmtY5S5zPni8J4^4}9pTCvDV}$kslTJ$U<(6;?(@4R6W)tOg4>gXE9{7n>mctPH@`-+2pMPKap53B(UWZP{6M=)8G;Px z_VHSrqpdQy{B8){>oQ;b?9c`3g@e(Jr3mtpkXAGM3Ku74Tvg6Jv+c!f{gyA!w8xSD znx=r>c65(8LDT4Eva^B&xW_r2(st2vy`#URYDcb{+m!?S(~-+qc^YDGR6bB4)6W~A6<#ZFpGlGZR9DdQv`i45VJzp5NxuortKnc5RXuu?5o?i0<{A;xr+lYU|4M$k~ z>!yS+5ec8(m#aL|B|nHtZ-Xi9B15vNN{E2 zes3m6R<=(MI{Jma&h$0Qd>G;QgNz2#gSw2V#$o1*z2&$cxq#8NVT(`+#~MJ|u@y-}dn_UW`p+r-Ws zcw%V|3?H>D8VRsnZ`@g8MJ~y>-1_cKFY~Aiqa=*H8@@#22T* z?`Y%f)|E^riV9ng^IUJerCR&F%;4gbGUyPh>hp(EEn=VJk7JO4gV~;+7AQEvuNZlg zT(wr;K=m>A8rLhl)BcTc{8g@pF7Rr-uvA#tC~|~6i_%6*Iw?f1ivO^<8*`Gy>T#W e?{H<%3ar(lH}9wIm9h5rH_883YR literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/images/pause.png b/apps/intervalTimer/images/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..727380799f7b7cd5b038c4be41169cf7408bdbfb GIT binary patch literal 1231 zcmeAS@N?(olHy`uVBq!ia0vp^8$g(Y4M?uv{v-}aF%}28J29*~C-ahlfu+;a#WAEJ z?(N-+dBM>**B@k{;>|1-tAHGoNv=Vr;nlRZ=d2Z9t9s7kB?{ncl}Q^^5-ZzAv12 zNLx;bLE^!e*-QxyjDBFZic2IkTn77=l}+LS*ptPLjBFNQzr~Cy1I0Rl03kW*f7k!G z{r1~q^Y6cFPq?jL%lIMN^6%&MOh4wYe{r4Bo~zpI+b-`XOxszQ|2#MUvdjFP?XHh6 zl|SFSKL22S&%@RG|FiE8e{Q+=-{aR8t?uuecQgILdbV#@@Be4{Bmi8S1{BpTF!#r*_N*GudfREYx&`d)08oDPVx~qngUi6 z3jk1XcA|PnvGPA5yGfcWp1!9`0dc{DwjY%92r~f420K&t9c9z!xdV5mtZ-=2hW$NC z|5<~~d8&u$ujxmd=5n6jDU3F0x9GR^s~DYaL!on2*>+syeEi$Nzhs2oZ8nY@@U{uX z+_Wyu(_n$>%_#E}`hNA>hl4qfBjqS+0)_g2H(%a9ju7@N>?!V*5ql}Qku;UVzo{U8eB6{Ss6ql9sYDG3 zhnCaVl;QlZ=dl*0I^V`oYima0_4^fL9j)3yJl?AmzV9rW0la)Y!P@nMcXm>mTe>~D6f`R9wS{jNc9s!GqYx*$TrVzA%!Wxn<>0nyIHPJ@(dJySXN+QIV;}=8%tR-b zzTKZySrxchD&T?-2IYol-H#nkV4*Ccg+|BkcQ(ri)TC0DsV&}xuyXO4a&rezQTOZZ z?pP3(Ro%(W1K@D_?~ZxWevAT=Z5$Ec!S-LSQ;h-a-lM`wk;=~TANXXc?DDhp7gW)J zo$}gLr4Rs`u`Ayg3&g6w`{=nKK;)6-Plxk)fAvff!^3V35|B`DhJ^c2a=&F!!(C^R zl!%Z^EJBLq*dQJM>p#xVaPFZb=okk8@{jJdzBI9E{`l zZOL)`mASX&fTD=1sSX$kjLkytmFKMPeWc+fk^z*>Gr8#9(V*&QoN}cL`GpvM*RAOE zK7glY!0Gjf{BM&psV}y2D}JokDx za#B_)%u-p~SC-W+Di^OeSsOd7o@rmv#+ti=xsaS?met5?6f&lkIM8yB&D^D_1kuzi zUt<_oy?Y)RKu@{sP=%5M6;u2u`A0)XC^%@?qXdJjJW=|E18mDhd)kem=E3eIH-1oW z;7WDi^!$hDkJ~lNDB*U1R=S!>L5jNhlP*k!$|a4YGR7di;Q&U95{DMPQ#|t-2EokH ze6bcWx;fY8!qRXfY9kaSk!X7qO-!VzNp5eK<2x!TKoN{CMI0QCS&q+E{9|BT?8euE zI3HtgByu~_<1?j@RmS`b>R_uoIC6#^J7qD|2T~UBMskPv~8_7!; zyZ*1{OS7B8ESta_t`dKwqaiCd;Vy!FQdUEdE6)$x5(vJHDoS1*Vpv0g?XH+Rq&*1J z#G2IZNUX&+I=FKQ$?(bVlik^LZ?9pNYs%~cpX;nC)6eo}Y9fSBgty5AuxEiod@GqD zJKr3z1i2jNe8XuNF%4^qcAwb=V)UB?#5b#_``HA_HA-b|?@y!Jjik>_vuYGLliaCs zkqYBrOsUJ`)*_xcz2`uWf5c@OHr)cjR%R&a>Vd+t&LG8m-)W;s_mtpX1P`~^mk`1> z)&!M?RX*afVzMmkHh&lMFSlc& zy~Id!t40%@m<H@_<8IxHA6&#fK{>;~Oq~~&5FbOi>&oLI0lP_#h z_xGQ?>nWOWc&*i7#vya41mPWuXQsQ;ZGThQTf4h^j8V)c|@ z^IInnz%4}kr4qt+hxTG;>W=OhaE&u0-Ad$*_8zfy zlZOd_OXhVi{okd{$ZUtT7+ZQp*Snul%^Mvk^o#$_gY^Q~e%w}b9D9(%Mw@}FxzCW= fNhs}cNqgLli@fNNnkp^n69Swa-KgdJ8CU)dXes>m literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/images/set-rest.png b/apps/intervalTimer/images/set-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..e33c9eb0225efb199d0f0e41c0327ebc794e6549 GIT binary patch literal 2364 zcmb_ec{tR27yr&oV>H$SY-?1aYXMp3qIgR;GP|9}5_-#^azJfA<#InQ&R^Lak!`f(>)8T2+Z06@mx z&dPZMdA~wZVk1}7exz;yEX>)K0LnYmCIOIKu(vwm!k|v)z6<|?leE6GzW!Nw?`eJc zwykNM*TP2|47Blqr^*<0>nkfOBTGcsZsbhFZsOK`d$9lRSeYj|h1rn4v2(BVJwX#KZ7@^oY$; z{{yMJK%bp8Ej!y79P8FvHVJ4P`t$j!IAe~tO=PeSIINJaNOM63B9oP7AGR0QaWyk; zp+wH(cb8#2=i)Y>G0@?fqh?p{p!3dN?DWDB)7@z7FL$@sC@ALz{+tFUFMcE@oC9BC zfa>oi4a?IL;lxHa4@18p!Gu#ESW!JTi&)@k$kKx30+G~h`PsD>EdtI|c4()NYCYFU ztC8lP! zQeXzGA~C6w?84$3nRhJ+w4-RCMS@z&tDjb2fSeP>H3fEUj>BwM*;zqfUO|939b|t0 zHl#7L!zoHHQ^5~|Wd<4EbRAu>{#IxnGGyw&QE`5)@Ny82R}BYE7k`FmFnwr|$OOyi*e0vz^W!nE&$2+N(r5I%sxYzrd~i`&a$YV` zw-fn6u?eWbv+Ls+tyNF5$f-4BE4Ik~12$t?9sLtD0GQ=nWKvIw((=tnE8`_J8S zSnk0DC@PL&!sLn=?eyGrv}EvT*<9pJ6zyvAt~mz5*|=3HuPC&T8cak9@kQ0Wh%YR#QIdm+q$c;z9R@+o*LMBTQs2p6R_W>Uu?6J-zq;bj(T_<* z?9>wgFTh&}<7*V1m19_N4y&|QIk+|v_Zr@ZGgCmUWA*OSC8oj}{`SZ{1?M0qP_}8Q zln_Y_4}Ud$5SVJ5sfyJm{`__#mAnslBW#i3c+F<5NANFq;Lv4mr8aEvh=8C7ymY-@ z>%HqfXwD;x+%?ux1`B)dcTJ`fScD0vf}Lxu4nc6h^URIAx3 zStvErMDpiulE$YB;UvpC9ai`B5Du&>_o*6FBY03606_Op2F?=Gxnuk6+9(m^?# zYI(!eUjK1(S*E&DkW5126%CI22;z37rnt?8_P&cO6l4vn9wJ47=!d@gerq`;-K5de z(f(s{AYYJiS!jfbp2|=61plNQGqe(}`F#?X{UNOJ(wiGo0-5X==ycS}ev{Wb0$Sa- zK=s0bA;lgONq+aJ=U+8HFu@Tth3vN&#pWRH8cx2HA(yX5q6% zq)4u1C!#&~2K<*h6r#fI$69RuBfhOnPj9uq5*~cxpxWO{(5%r3$&cqMUZtIGu6m^= zYm+$P8(&M7#k|yd>Z+s6WcbDSq8P<^*N-MMW+nn+*#3PGG5*5Gx6gV7@^Wt!L8GWo zC<$T*u*~7APsRv<;7Qp%x(RR~;uLB5y6z1kkcO10rO)9Z_o54PiQgdmc9+Qh3~^>mwLAr>J8dEj;ObGh^! z(Z)udj}w}Qpqnl-AFny0j@px)kirM>sFMO1uY}H#N_kZpiZh>!KW@u5;6lz7Wq);r zdGw+K`xaimJ3pj4)Ms0>Gwz~8re5u7iva@QMJG}CNRj)2s5N_z3?GB%8@-8&WPe}R zvdKzr(e91cscHz#lG=0E&{J~r&dapT+1|r2Mz7wrOJahl@G{dcMqjjduvx MTRT~m6KHY&1|~)^i2wiq literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/images/set-sets.png b/apps/intervalTimer/images/set-sets.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5a9107f8b6fa7ef3242f7863b63b8531e71177 GIT binary patch literal 2212 zcmbuBdpy(oAICr6t+`B0YUR4_XAaG!8@VTv{LYBYZJAM`!$NY*7HwrE6%|rKlw8tK zE?Xhr9}{P#Rc=egoLrKzkr2|)`TO^K{QfzAyx*_KcC4?02hDR0ozAHaLqVkNkAREUVZd(`+j*4&aOhp3|lbm#pT6@!AX8 z>`WECn`3Jj{BQCNN>WbIgQPrkBxDZCJa!w3w<;!<;oj#Dl29~kar&?-?0SXls>UYg z5VP?Bzsq|o0eDAS9nS+foxYjXz_(?zFdh-*d4&8H@jnFXD-Dek8N*8p;Sgz6HCCe4#I!wDX3LzJlwl3@Ah`7u z%X%!ajx1L;;hGpbsb-*j>5H|MghT?deePu9t&(-x^7&Lz|)J*&77`^uQ=W2A1>PU3^5pPo>+xb-fUzG2Z z$+TKc9^O%x&C3&gxkW&-62f|4a3SiOq{|ahQkd3tZP@?uEp-~FT17 z&x?;&t&moC|Gq`(9|-9Ztz@~lV(|>a>VE3t(cXQWQq4wbLV4Z%;bffas(o&pUp3`Y z6piq#=;*@yujxUpOk1@nyd9Qtvoo6m`F6~%@#}CrRr`jy&8wo>4+D?I=Im&_g^>Tk z7CGw!@!mwEdX%t~MFTjDLW>cniHuTC%cQ7)3E)9kfo0?iDqaH{k0StQXadBVJqu-< z=-~z2unxIGCQI}ALE>Z4XHHnrrGq4vd`fLXpN2*UC08(K!Z>6uph6Kp{V~!wdGyHz~3!g_(l z7qAj;xRtGoVOv8VUew62f{{MD*tcQPdSA|K6DK(;RC%t{2cvlCJ}pt!xb9cCZd0#X z8B+G$P={gP9AAP!M#(PoH(YjJu=Rg3pV-)J8=3ltQCLFLu?8w`e*uC*Px6}QH+K%8 zq-&XHV_Zl_I^HMuXdXrlI2FR|LzQ`wm z9wWMX$!Bpcvy}oU6^$`BaF)@S2nd1$QUVBVZ^vJeu!5qfYGo4+pLlgj(5<>UK)k~a z>zj{2DqbISLurV{62l)G6_QsG6uh|_^x>tS2ZlZdALYS^=>1^{y?VV6V`ME*tJdrb zP#JqztgO-C^HlA(khr0-ewY4S&j2A5rBY8l2MO*LQf}V6BXk~#Z*?)Qzp%w$g|oKl zsrFZD1pSjJMFWn+{;^KiU&X!jpw)SFjsSrVnep*oK8CDeeKw@cZZ&kke0Zv6{yZzj zx!s>bArl{AJ{UD&hmneJ{>dXLxBK$SK~d-x{Q0;iE}`Y{ZT?%$JNi^GL)y@F@HE7L zB&v!u56+~|deJAcfd;jJ8&&x4t6cOp`Xpc!e09}Ohg~m|enYa!x$f630N&hlmpbr{ zwR7zQIl=>7JArT4_bu_rD6P%p4nQN1q!0dIVQA+KhsCFX^VROfB&EMnp15-vaaHyp x@Y;>^@_4kc#exjx3e673`u*KOv0E#_bt+D-ekLb;=?=$oZwn_j+p5F;B zxi0xVC2Q7P-GX+J*r#PFq2BMU7SCE8_G4ztsYCC z{C&N+zVW}lj@I?RynkOkkKR!^-@BIe-^*n?s}6?S-@nbV=WF(-Q>^hnbDDO{GcWk^ z_uVN~ASYk3K;`{o>A#)-t)KP@1uedK)2Jqh|5KF7f9nrkhJh#7=@*9Eh968%-F86x zQ`}EBw+FsgpL4CLv05MTMfCiVlHG>Q2U-oHw>dqC->6j3UD`U^jcI+|S*;$kL~WLN z7Y>EBdBk0xe#z+>M-0d28f_N7iAn_>FP5;Ln9bCGK+{KE$LWDc35#E%RbrsZhuQo0 z*h)J-5Wd4BFM0Cx>D%@#95S~`4l%L#IlDhFS=B72^j;`~CGJq^fh3l=rk(@dJNP1G zIM1BEJzYrP2ZQ?M{*EV4pT3p$V)46OdccV#uC3?5=@YZqCWJF}9}wEsrpPjFfzpPS zwTT)+Gp28sU#MKr+-q$V#&SoO z2eCi6+LRkBD}Rd`F^OAf2_7u_M&=-sUbDBCoaTAH6M_S z;h3|qohj$x$#?&|Ty4*b-Fx+SR#wjK zvOm0Q#HNVyG~T{rmGbx_lfC8|F3G!d*4v-23)u9!ZvL6Ik;{NdU9AJ;w z`GG^aakF_;iL&kY!2AbS?{jd+Zqd2>yD^(HbcZIB{ym_L8Sw|h9<%o4O}IYa{q<(^ zou|yI>b`uw`rPfet9^X!y)9okbnYE^#lA3VMaKRY&o8&coHdS1_!?gJCD!7X_EGH< z&#OxBUoQ^%|I_w&_^eRJW$WD^Om9;X6sVYX$&BgzA-7qYECLl?!cQh}C~RoyT{zNs a{}>blt8~kL2+ITOAqG!ZKbLh*2~7Zu?)FUp literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/images/timer2.png b/apps/intervalTimer/images/timer2.png new file mode 100644 index 0000000000000000000000000000000000000000..026774ba27290db5b8d9069c441369e4ebcc8ac6 GIT binary patch literal 1646 zcmd5-`&Uv29LLL@UeXk#*~&L++UzRZJTVoOocPEGKDNv#vY9nwDo&lCDBV)SEIq4^ zl9+XH>S>leEHMXo%O;if(lRv^3e!C0M9rxabhN*sA3opLIp5Fs`#I-(&bKT!CT#7R zjcYI%%-V?Xka(lN`Vo++(O!{`v5d|nJ3cHJ)AGn}5`!`IhzQyCJ(o2#GLm8IZ$W>x zXmA`h+kB|@PWac>^I-=Rtk188f5pDC&tjQWIWf1S*I6MF&;j(SslB#}cOnzE6P-Ad zix!Mz%QKs3n!cG0b*P<3^kK9?`wbQGjjh2Tk;;QyAp3%k2~b_}SO<>N(g4uQ{`@Ok zFVY7>yZr*Yh$3tQ4&R=`FLfuIeaeK+3Z+sz`)p3j<8>oTAf(6k+hnPG%BXw$&ih#} zn)?y5%4CVE7wO>2v1N;o@qR$S=U>8C-zx}F$Wi~XLi(g(hJP^=*2VCG>Rrf4ll34> zE^F#uXc|hV=x{t-lqL<#2Q!wQ2mPtO;rOAN((%TW<;G;ItIS?k7f_~@E;=g@7s+qj z8gcZ=40oO7?OlHhsdmw2qwn!ZC&Vw^?K(Q=N)Vw1QOq231Sbo>9FT5g4QPZrN>GsX z`#@bAxJl>GZ!;2{40y-08BBo4txPM=a3&+`FWzi|jXla6bg3#v!>DNPbYoAh`YKOk z>TP&&jW8k*eo5NdECcK2PN?EF1F*_7sZu7FPuw*uci`Kd`>Uc=p5BNpO0m0j84X~z zBPnmgdyWzg@#{%|qlFmN>Wtba;izQ5iYS!j*(*L|Vu8xjGJ|R0trFv!S-@(}p!_6` z>TrIo{xL=)YZLCha9! zPBsD^HWr3aCQY4zogO>^=kXigB?z;WneLo-l+3tW_x!z58D_vLtvT`a4qm$2fi4Iv zh(wrDPUTNy=iE~n?!dy6nw+-0Rz}A^iEaNY;U1VBI~Ot6Eocy;*>u0>QvD{(z z{zIHfSJJiRJy=JdT@943Uo4SKBovQ+A$%Em$v{QaJ0Gq)+df4KWmqrT{^CL+QvOI0 z*dyMed0~{Q$Rx}YqHd2h!~tO7arK*e@KelI%2#K&`X%+;5_O}nXBona(86w4|2?6a z7p43O3Oi-T2&&FX`fKyqPDjv7f#9g@5;)(dUVJS#WiL)=UpKHay;BnOIFEa9fw@k5 zy={`h@wu?$HYDr444>>b*Grywjy)ge3*__L(gLLHlu$<${x!Y57(F*_JjUA(Dm))R zs*a~ETl<WK)-N79D(fuDRpg!y8)A(J z=JTiJiG~)|wA}k84=|%}K5P@g&wl7^e$k2>@@M2D^_|zRjGFH)+&*JDn;SU1V3-gY zW(wXl`N)s#4`OJf#VsLD9Iu8RsMcJZb{+4;sdDWlkZ2nGR(cYI|2EQk93nVzAhBc% z2-UjbvWtzy;^;UV0DN?+*f$u2?Cvyrn416xBktHa1EA%;gfk@=q}6p_1>OWWc6IZE z;KOLrDRP()gM2r*F4dW)*%Bdg2|0{9|9t$D8n=R-N$`TV>UZ@T9|$Ib9uv|MoP6Xz D*O<~f literal 0 HcmV?d00001 diff --git a/apps/intervalTimer/intervalTimer.app.js b/apps/intervalTimer/intervalTimer.app.js new file mode 100644 index 000000000..fd57dbe2b --- /dev/null +++ b/apps/intervalTimer/intervalTimer.app.js @@ -0,0 +1,306 @@ +/** + +Interval Timer + +An app for the Bangle.js watch + +*/ + +var Layout = require("Layout"); + +// Globals +var timerMode; // 'active' || 'rest' +var numSets = 1; +var activeTime = 20; +var restTime = 10; +var counter; +var setsRemaining; +var counterInterval; +var outOfTimeTimeout; +var timerIsPaused; +var timerLayout; + +/** Called to initialize the timer layout */ +function initTimerLayout() { + timerLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"40%", pad: 10, label:"00:00", id:"time" }, + {type:"txt", font:"6x8:2", label:"0", id:"set" } + ] + }, {btns: [ + {label: "Stop", cb: l => { + if (timerIsPaused){ + timerIsPaused = false; + resumeTimer(); + } + else{ + timerIsPaused = true; + pauseTimer(); + } + } + } + ] + }); +} + +/** Pauses the timer by clearing the counterInterval */ +function pauseTimer() { + if (counterInterval){ + clearTimeout(counterInterval); + counterInterval = undefined; + } + // update layout to display "Paused" + timerLayout.clear(timerLayout.time); + timerLayout.time.label = "||"; + timerLayout.clear(timerLayout.set); + timerLayout.set.label = "Paused"; + timerLayout.render(); +} + +/** Reumes the timer by setting the counterInterval again */ +function resumeTimer() { + if (!counterInterval){ + counterInterval = setInterval(countDown, 1000); + } + // display the timer values again. + timerLayout.clear(timerLayout.time); + timerLayout.time.label = counter; + timerLayout.clear(timerLayout.set); + timerLayout.set.label = `Sets: ${setsRemaining}`; + timerLayout.render(); +} + +/** Display 'Done' view, called when all sets are completed */ +function outOfTime() { + var stopLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"30%", label:"Done!", id:"time" }, + ] + }, {btns: [ + // menu button allows user to modify times and sets + {label:"Menu", cb: l=> { + if (outOfTimeTimeout){ + clearTimeout(outOfTimeTimeout); + outOfTimeTimeout = undefined; + } + //stopLayout.remove(); + setup(); + } + }, + // restart button runs timer again with the same settings + {label:"Restart", cb: l=> { + if (outOfTimeTimeout){ + clearTimeout(outOfTimeTimeout); + outOfTimeTimeout = undefined; + } + //stopLayout.remove(); + timerMode = 'active'; + startTimer(); + } + } + ]}); + + if (counterInterval) return; + setsRemaining = numSets; + g.clear(); + stopLayout.render(); + Bangle.buzz(500); + Bangle.beep(200, 4000) + .then(() => new Promise(resolve => setTimeout(resolve,200))) + .then(() => Bangle.beep(200, 3000)); +} + +/** Function called by the counterInterval at each second. + Updates the timer display values. +*/ +function countDown() { + // Out of time + if (counter<=0) { + if(timerMode === 'active'){ + timerMode = 'rest'; + startTimer(); + return; + } + else{ + --setsRemaining; + if (setsRemaining === 0){ + clearInterval(counterInterval); + counterInterval = undefined; + //setWatch(startTimer, (process.env.HWVERSION==2) ? BTN1 : BTN2); + outOfTime(); + return; + } + timerMode = 'active'; + startTimer(); + return; + } + } + + timerLayout.clear(timerLayout.time); + timerLayout.time.label = counter; + timerLayout.render(); + counter--; +} + +/** Start the interval timer. */ +function startTimer() { + timerIsPaused = false; + g.clear(); + if(timerMode === 'active'){ + counter = activeTime; + timerLayout.time.col = '#f00'; + } + else{ + counter = restTime; + timerLayout.time.col = '#0f0'; + } + + timerLayout.clear(timerLayout.set); + timerLayout.set.label = `Sets: ${setsRemaining}`; + timerLayout.render(); + Bangle.buzz(); + countDown(); + if (!counterInterval){ + counterInterval = setInterval(countDown, 1000); + } +} + +/** Menu step in which user sets the number of sets to be performed. */ +function setNumSets(){ + g.clear(); + var menuLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"6x8:2", label:"Number Sets", id:"title" }, + {type:"txt", font:"30%", pad: 20, label: numSets, id:"value" }, + {type:"btn", font:"6x8:2", label:"Back", cb: l => { + setRestTime(); + } + } + ] + }, {btns: [ + {label:"+", cb: l=> { + incrementNumSets(); + }}, + {label:"Go", cb: l=> { + setsRemaining = numSets; + initTimerLayout(); + startTimer(); + }}, + {label:"-", cb: l=>{ + decrementNumSets(); + }} + ]}); + menuLayout.render(); + + const incrementNumSets = () => { + ++numSets; + menuLayout.clear(menuLayout.numSets); + menuLayout.value.label = numSets; + menuLayout.render(); + }; + + const decrementNumSets = () => { + if(numSets === 1){ + return; + } + --numSets; + menuLayout.clear(menuLayout.numSets); + menuLayout.value.label = numSets; + menuLayout.render(); + }; +} + +/** Menu step in which user sets the number of seconds of rest time for each set. */ +function setRestTime(){ + g.clear(); + var menuLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"6x8:2", label:"Rest Time", id:"title" }, + {type:"txt", font:"30%", pad: 20, label: restTime, id:"value" }, + {type:"btn", font:"6x8:2", label:"Back", cb: l => { + setActiveTime(); + } + } + ] + }, {btns: [ + {label:"+", cb: l=> { + incrementRestTime(); + }}, + {label:"OK", cb: l=>setNumSets()}, + {label:"-", cb: l=>{ + decrementRestTime(); + }} + ]}); + menuLayout.render(); + + const incrementRestTime = () => { + restTime += 5; + menuLayout.clear(menuLayout.restTime); + menuLayout.value.label = restTime; + menuLayout.render(); + }; + + const decrementRestTime = () => { + if(restTime === 0){ + return; + } + restTime -= 5; + menuLayout.clear(menuLayout.restTime); + menuLayout.value.label = restTime; + menuLayout.render(); + }; +} + +/** Menu step in which user sets the number of seconds of active time for each set. */ +function setActiveTime(){ + g.clear(); + var menuLayout = new Layout( { + type:"v", c: [ + {type:"txt", font:"6x8:2", label:"Active Time", id:"title" }, + {type:"txt", font:"30%", pad: 20, label: activeTime, id:"value" } + ] + }, {btns: [ + {font:"20%", label:"+", fillx:1, cb: l=> { + incrementActiveTime(); + }}, + {label:"OK", cb: l => setRestTime()}, + {type:"btn", font:"20%", label:"-", fillx:1, cb: l=> { + decrementActiveTime(); + } + } + ]}); + menuLayout.render(); + + const incrementActiveTime = () => { + activeTime += 5; + menuLayout.clear(menuLayout.activeTime); + menuLayout.value.label = activeTime; + menuLayout.render(); + }; + + const decrementActiveTime = () => { + if(activeTime === 0){ + return; + } + activeTime -= 5; + menuLayout.clear(menuLayout.activeTime); + menuLayout.value.label = activeTime; + menuLayout.render(); + }; +} + +/** Start the setup menu, walks through setting active time, rest time, and number of sets. */ +function setup(){ + if (timerLayout){ + // remove timerLayout, otherwise it's pause button callback will still be registered + timerLayout.remove(timerLayout); + timerLayout = undefined; + } + Bangle.setUI(); // remove all existing input handlers + timerMode = 'active'; + setActiveTime(); +} + +// this keeps the watch LCD lit up +Bangle.setLCDPower(1); +setup(); \ No newline at end of file From bff43e662da03dfd1648ef656062195689448236 Mon Sep 17 00:00:00 2001 From: James G Date: Fri, 26 Nov 2021 12:42:13 -0500 Subject: [PATCH 03/58] Fix url for intervalTimer.app.js in app.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index a0bd5bfd0..4c709ef12 100644 --- a/apps.json +++ b/apps.json @@ -4468,7 +4468,7 @@ "readme":"README.md", "supports":["BANGLEJS2"], "storage": [ - {"name":"intervalTimer.app.js","url":"app.js"}, + {"name":"intervalTimer.app.js","url":"intervalTimer.app.js"}, {"name":"intervalTimer.img","url":"app-icon.js","evaluate":true} ] } From 2ae9585193c1394bca43a9160dcfbcdd29f14803 Mon Sep 17 00:00:00 2001 From: James G Date: Fri, 26 Nov 2021 12:43:36 -0500 Subject: [PATCH 04/58] rename intervalTimer.app.js to app.js --- apps.json | 2 +- apps/intervalTimer/{intervalTimer.app.js => app.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/intervalTimer/{intervalTimer.app.js => app.js} (100%) diff --git a/apps.json b/apps.json index 4c709ef12..a0bd5bfd0 100644 --- a/apps.json +++ b/apps.json @@ -4468,7 +4468,7 @@ "readme":"README.md", "supports":["BANGLEJS2"], "storage": [ - {"name":"intervalTimer.app.js","url":"intervalTimer.app.js"}, + {"name":"intervalTimer.app.js","url":"app.js"}, {"name":"intervalTimer.img","url":"app-icon.js","evaluate":true} ] } diff --git a/apps/intervalTimer/intervalTimer.app.js b/apps/intervalTimer/app.js similarity index 100% rename from apps/intervalTimer/intervalTimer.app.js rename to apps/intervalTimer/app.js From 4f5ec608de77dd4febf68db0b6d3aa9703b73b16 Mon Sep 17 00:00:00 2001 From: James G Date: Fri, 26 Nov 2021 12:48:20 -0500 Subject: [PATCH 05/58] fix formatting in README for interval timer app --- apps/intervalTimer/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/intervalTimer/README.md b/apps/intervalTimer/README.md index f56dd74d2..d57c16e9c 100644 --- a/apps/intervalTimer/README.md +++ b/apps/intervalTimer/README.md @@ -6,28 +6,28 @@ An interval timer for workouts and whatever else! First set the active time (i.e. the number of seconds to perform exercises). -![Set Active Time](images\set-active.png) +![Set Active Time](images/set-active.png) Next set the rest time (i.e. number of seconds to rest between exercises). -![Set Rest Time](images\set-rest.png) +![Set Rest Time](images/set-rest.png) Finally choose the number of sets to perform. -![Set Number Sets](images\set-sets.png) +![Set Number Sets](images/set-sets.png) Active time will be shown in red, rest time in green. The watch will buzz whenever active or rest time gets to 0. -![Timer (active)](images\timer1.png) -![Timer (rest)](images\timer2.png) +![Timer (active)](images/timer1.png) +![Timer (rest)](images/timer2.png) You can press the physical button during timer countdown to pause the timer. -![Paused](images\pause.png) +![Paused](images/pause.png) View after all sets are completed. Press menu to change settings or restart to start timer again with the same settings. -![Completed view](images\done.png) +![Completed view](images/done.png) ## Creator From 6220a88d29ace89e386ae3d7630c112bc8905b73 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Fri, 26 Nov 2021 21:29:58 +0100 Subject: [PATCH 06/58] locale: Apply 12hour setting to time Fixes #892 --- apps.json | 2 +- apps/locale/ChangeLog | 1 + apps/locale/locale.html | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index a7a74f4cb..2935a118b 100644 --- a/apps.json +++ b/apps.json @@ -170,7 +170,7 @@ { "id": "locale", "name": "Languages", - "version": "0.09", + "version": "0.10", "description": "Translations for different countries", "icon": "locale.png", "type": "locale", diff --git a/apps/locale/ChangeLog b/apps/locale/ChangeLog index 3d64cf8d7..288dc6dde 100644 --- a/apps/locale/ChangeLog +++ b/apps/locale/ChangeLog @@ -9,3 +9,4 @@ 0.07: Improve handling of non-ASCII characters (fix #469) 0.08: Added Mavigation units and en_NAV 0.09: Added New Zealand en_NZ +0.10: Apply 12hour setting to time diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 3d806b44b..25acb2fff 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -146,7 +146,7 @@ exports = { name : "en_GB", currencySym:"£", "%-m": "d.getMonth()+1", "%d": "('0'+d.getDate()).slice(-2)", "%-d": "d.getDate()", - "%HH": "('0'+d.getHours()).slice(-2)", + "%HH": "('0'+getHours(d)).slice(-2)", "%MM": "('0'+d.getMinutes()).slice(-2)", "%SS": "('0'+d.getSeconds()).slice(-2)", "%A": "day.split(',')[d.getDay()]", @@ -178,6 +178,13 @@ var month = ${js(locale.month + ',' + locale.abmonth)}; function round(n) { return n < 10 ? Math.round(n * 10) / 10 : Math.round(n); } +var is12; +function getHours(d) { + var h = d.getHours(); + if (is12==undefined) is12 = (require('Storage',1).readJSON('setting.json')||{})["12hour"]; + if (!is12) return h; + return (h%12==0) ? 12 : h%12; +} exports = { name: ${js(locale.lang)}, currencySym: ${js(locale.currency_symbol)}, From dabaa06efbe3698e11afad390bb06d3e48c93f12 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:33:19 -0800 Subject: [PATCH 07/58] Create app.js --- apps/93dub/app.js | 170 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 apps/93dub/app.js diff --git a/apps/93dub/app.js b/apps/93dub/app.js new file mode 100644 index 000000000..48365c646 --- /dev/null +++ b/apps/93dub/app.js @@ -0,0 +1,170 @@ +/*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. +MIT License +Copyright (c) 2021 Brandon Abbott +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +// define background +var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQeAgEEgQGCh/h/H+n+MvwRKh1zjnnnPM48A69z1foxPfnXgCIMMmf84cw5n/gMZylsxGKmlDkARD8ARC/EAyMUlARBilCCIQ1Bhg1C4cAqIRILIP8LIV/CIVowtSmgRDPoP4PoU+gORieo8Uh686I4bmQCMYAig//AB3AIuYAUpGcxeAMxE8+lEgEB5GixIdIgmiwlHCwPI0H5CJXiw/ACIOmEZI1BwQRBGpskCIIFBp2eCJUi+MEVP4AJh//ABngCIM/CJv4CIN4GRs8AQImCABcOdIPDGpqzBgePCJvjCIMfCJvzwEDNZ3xwEHCJ35wEGCJ/Ag1/UJwRQ/gR/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4Rhn4RN/HAg4RO/PAgcfCJvxwEDz4RN+eAgOPCJvDgEB4YRNg8AgHgAQIALjwCBvARNvgCBPp3wCIMPCJvAGRoA/AA8Bi+l4gROykYw4ROq4RBPxsBqgRQmkkGp8X0mERFUfcgeACJcgAgdABYsHDof/oHx49/wEvBQh9GCIfAFAgAHoHz51/8ARP+IRO+4RLpMR73woH27n/8Eh8+ZmaBEqsoyGICIfAkMUktJEYgRBzgRBv34UAMhi8RkIRFnGQGoN8/H34FB8kJiIREkVEyGQkF8/Pj4GBkg1GCIOexEQvHx8fBgMXzMxPpEICIXCfZkEAYwAJgbiC/ARMAH4ABA==")); + +/* +I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: +mogrify -gravity east -extent 28x41 *.png +montage num_[0-9].png -geometry +0+0 numcat.png +I then put numcat.png into the generator. +*/ + +// define fonts +// reg number first char 48 28 by 41 +var fontNum = atob("AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//w//j4//A/+P4/8A/4/4AAAAD/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/wAAAAH/H/gH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wB/4AP/4H/4A//4f/4D//5//4P//h//4//+B//4AAAAAAAAAAAAAAAAAf/+AAAB//4gAAD//jgAAD/+PgABj/4/gAHj/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f88AAfx/8wAAfH/8AAAcf/8AAAR//4AAAH//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA4AAAAAD4AAYAAP4AD8AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAHgAH/H/GH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAP//AAAAP//AAAAP//AAAAP/8AAAAP/2AAAAP/eAAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAB/7x/4AH/7H/4Af/4f/4B//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wAAAD//wAAAj//gAADj/+AAAPj/5gAA/j/ngAD/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8AA8f8fwAAx/8fAAAH/8cAAAf/8QAAA//8AAAA//8AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//0//j4//Y/+P4/94/4/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/AAPH/H8AAMf/HwAAB//HAAAH//EAAAH//AAAAH//AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAGAAAAAAOAAAAAAeAAAAAA+AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB8AAAAADx/4B/4HH/4H/4Mf/4f/4R//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wP/+D//w//4j//z//jj//T/+Pj/9j/4/j/3j/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f+8f8fx/+x/8fH/+H/8cf/+f/8R//4f/8H//gf/8AAAAAAAAAAAAAA//8AAAA//8AAAI//8AAA4//0AAD4//YAAP4/94AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/H/vH/H8f/sf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); +// tiny font for percentage first char 48 6 by 8 +var fontTiny = atob("AH6BgYF+ACFB/wEBAGGDhYlxAEKBkZFuAAx0hP8EAPqRkZGOAH6RkZFOAICHmKDAAG6RkZFuAHKJiYl+AAAAAAAAAAAAAAAA"); +// date font first char 48 12 by 15 +var fontDate = atob("AAAAAfv149wAeADwAeADwAeADvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAPHn9/AAAAAAP0A9wweGDwweGDwweGDvAL8AAAAAAAAAAAgwOGDwweGDwweGDvHp98AAAAA/gB6AAwAGAAwAGAAwAGAPHj9/AAAAAfgF6BwweGDwweGDwweGDgHoB+AAAAAfv169wweGDwweGDwweGDgHoB+AAAAAAAAAAgAGAAwAGAAwAGAAvHh9/AAAAAfv169wweGDwweGDwweGDvHr9+AAAAAfgF6BwweGDwweGDwweGDvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); + +// define days of the week images +var imgMon = E.toArrayBuffer(atob("Ig8BgHwfD5AvB8HD8z8wMPzPzMQzM/M/DMz8z8c7f7f7z////3Oz+3+PzPzPw/M/M/D8z8z8PzPzPw/vB8/n/8H3/A==")); +var imgTue = E.toArrayBuffer(atob("Ig8BwDv9wDAOfmgf/5+Z///n5n/5+fmf/n5+Z//fv9oH////Af37/b/+fn5n/5+fmf/n5+Z/+fn5n/5/g+gfn+D8AA==")); +var imgWed = E.toArrayBuffer(atob("Ig8Bf7gHgM/NA9Az8z/z8PzP/Pw/M/8/D8z/z8c7QPf7z+A//3O3/3+MzP/PwzM/8/D8z/z8PzP/PxAtA9A4B4B4DA==")); +var imgThu = E.toArrayBuffer(atob("Ig8BgHf7f6Ac/M/P/z8z8//PzPzz8/M/PPz8z8+/QLf7/+A///v3+3+8/PzPzz8/M/PPz8z88/PzPzz8/vB/P3/8HA==")); +var imgFri = E.toArrayBuffer(atob("Ig8B/wDwP7+geg/P5/5+c/n/n5z+f+fnP5/5+c/oHoF7/AfAf/7/7/+/n/k/z+f+R/P5/5j8/n/nHz+/++PP7//8+A==")); +var imgSat = E.toArrayBuffer(atob("Ig8B4DwDwDgOgXAJ/5+f/n/n5/+f+fn55/5+fnoHoF/fAfAf//+b/f3/5n5+f/mfn5/+Z+fn//n5+eAef358B7//nA==")); +var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A/////83+3+/zPzPz/M/M/P8z8z8//PzPwA/B8/oD8H3/A==")); + + + +// define icons +var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA")); +var imgBattery = E.toArrayBuffer(atob("EAkBAAF//X/8f/x//H/8f/x//QAB")); +var imgBattery_Charge = E.toArrayBuffer(atob("EAkBAAF//UEERwRf9EHEQQR//QAB")); +var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA==")); +var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g==")); +var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); + +//vars +var separator = true; +var is24hr = true; //assumed true until can find API to check +var leadingZero = true; + +//the following 2 sections are used from waveclk to schedule minutely updates +// timeout used to update every minute +var drawTimeout; + +// schedule a draw for the next minute +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + +// set background +g.setBgColor(0,0,0); +g.setColor(1,1,1); +g.clear(); +g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); +// this covers the part of the background with branding, makes room for widgets +g.setColor(0,0,0); +g.fillRect(0,0,g.getWidth(),30); + +function draw(){ +var date = new Date(); +var h = date.getHours(), m = date.getMinutes(); +var d = date.getDate(), w = date.getDay(); +g.reset(); +g.setBgColor(0,0,0); +g.setColor(1,1,1); +// draw battery indicator +var batPercent = E.getBattery(); +if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} +else {selBattery=imgBattery;} +g.drawImage(selBattery,127,42); +if (batPercent != null) { +g.drawImage(imgPercent, 118,43); + +} + +//draw 24 hr indicator and 12 hr specific behavior +if (is24hr){ +g.drawImage(img24hr,32, 70); +if (leadingZero){ + h = ("0"+h).substr(-2);}} +else if (h > 12) {g.drawImage(imgPM,40, 70); + h = h - 12; + if (leadingZero){ + h = ("0"+h).substr(-2);} + else + {h = " " + h;} + } + +//draw separator +if (separator){ +g.drawImage(imgSep, 85,96);} + +//draw day of week +var imgW = null; +if (w == 0) {imgW = imgSun;} +if (w == 1) {imgW = imgMon;} +if (w == 2) {imgW = imgTue;} +if (w == 3) {imgW = imgWed;} +if (w == 4) {imgW = imgThr;} +if (w == 5) {imgW = imgFri;} +if (w == 6) {imgW = imgSat;} +g.drawImage(imgW, 85, 66); + + +// draw nums +// draw time +g.setColor(0,0,0); +g.setBgColor(1,1,1); +g.setFontCustom(fontNum, 48, 28, 41); +if (h<10) { + if (leadingZero) { + h = ("0"+h).substr(-2); + } + else {h = " " + h;} +} +g.drawString(h, 25, 88, true); +g.drawString(("0"+m).substr(-2), 92, 88, true); +// draw date +g.setFontCustom(fontDate, 48, 12, 15); +g.drawString(("0"+d).substr(-2), 123,66, true); +// draw battery +g.setFontCustom(fontTiny, 48, 6, 8); +if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign +if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} + else {g.drawString(batPercent, 99, 42, true);} +queueDraw(); +} + + +draw(); + +//the following section is also from waveclk +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); + +Bangle.setUI("clock"); +Bangle.loadWidgets(); +Bangle.drawWidgets(); From 7d646945df493e7c95a51c7ce6e7224662150090 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:37:56 -0800 Subject: [PATCH 08/58] Update apps.json --- apps.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps.json b/apps.json index a7a74f4cb..8830449ca 100644 --- a/apps.json +++ b/apps.json @@ -4456,5 +4456,15 @@ "storage": [ {"name":"timecal.app.js","url":"timecal.app.js"} ] + }, + { "id": "93dub", + "name": "93 Dub", + "shortName":"93 Dub", + "version":"0.01", + "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", + "tags": "", + "storage": [ + {"name":"93dub.app.js","url":"app.js"}, + ] } ] From 33b3e918693959e9828cafa1354b6df3a5a5c90d Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:40:13 -0800 Subject: [PATCH 09/58] Update apps.json --- apps.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps.json b/apps.json index 8830449ca..88184fdad 100644 --- a/apps.json +++ b/apps.json @@ -4463,6 +4463,8 @@ "version":"0.01", "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", "tags": "", + "type": "clock", + "supports":["BANGLEJS2"], "storage": [ {"name":"93dub.app.js","url":"app.js"}, ] From 228a3664c7ab9774a8dad99f05fc1bf3c5570e61 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:41:39 -0800 Subject: [PATCH 10/58] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 88184fdad..681767f81 100644 --- a/apps.json +++ b/apps.json @@ -4468,5 +4468,5 @@ "storage": [ {"name":"93dub.app.js","url":"app.js"}, ] - } + }, ] From 56f3044e5e5fedbbddffc9810e24135cca7acfbf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 12:02:34 -0800 Subject: [PATCH 11/58] Update app.js background needed redraw after notification background redraw broke widgets, so temp fix --- apps/93dub/app.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 48365c646..63309c0b3 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,14 +1,19 @@ /*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. + MIT License + Copyright (c) 2021 Brandon Abbott + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,6 +30,7 @@ var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQ I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: mogrify -gravity east -extent 28x41 *.png montage num_[0-9].png -geometry +0+0 numcat.png + I then put numcat.png into the generator. */ @@ -73,6 +79,7 @@ function queueDraw() { }, 60000 - (Date.now() % 60000)); } +function drawBackground() { // set background g.setBgColor(0,0,0); g.setColor(1,1,1); @@ -81,8 +88,11 @@ g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); // this covers the part of the background with branding, makes room for widgets g.setColor(0,0,0); g.fillRect(0,0,g.getWidth(),30); +g.reset(); +} function draw(){ +drawBackground(); var date = new Date(); var h = date.getHours(), m = date.getMinutes(); var d = date.getDate(), w = date.getDay(); @@ -149,6 +159,8 @@ g.setFontCustom(fontTiny, 48, 6, 8); if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} else {g.drawString(batPercent, 99, 42, true);} +// widget redraw +Bangle.drawWidgets(); queueDraw(); } From 0d6bfc7c13f024f36e9703dbb4b88289756621f5 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 20:59:32 -0800 Subject: [PATCH 12/58] Update app.js redid background, adjusted graphics to look nice on bangle 2 --- apps/93dub/app.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 63309c0b3..fb485d72a 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -24,7 +24,7 @@ SOFTWARE. */ // define background -var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQeAgEEgQGCh/h/H+n+MvwRKh1zjnnnPM48A69z1foxPfnXgCIMMmf84cw5n/gMZylsxGKmlDkARD8ARC/EAyMUlARBilCCIQ1Bhg1C4cAqIRILIP8LIV/CIVowtSmgRDPoP4PoU+gORieo8Uh686I4bmQCMYAig//AB3AIuYAUpGcxeAMxE8+lEgEB5GixIdIgmiwlHCwPI0H5CJXiw/ACIOmEZI1BwQRBGpskCIIFBp2eCJUi+MEVP4AJh//ABngCIM/CJv4CIN4GRs8AQImCABcOdIPDGpqzBgePCJvjCIMfCJvzwEDNZ3xwEHCJ35wEGCJ/Ag1/UJwRQ/gR/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4Rhn4RN/HAg4RO/PAgcfCJvxwEDz4RN+eAgOPCJvDgEB4YRNg8AgHgAQIALjwCBvARNvgCBPp3wCIMPCJvAGRoA/AA8Bi+l4gROykYw4ROq4RBPxsBqgRQmkkGp8X0mERFUfcgeACJcgAgdABYsHDof/oHx49/wEvBQh9GCIfAFAgAHoHz51/8ARP+IRO+4RLpMR73woH27n/8Eh8+ZmaBEqsoyGICIfAkMUktJEYgRBzgRBv34UAMhi8RkIRFnGQGoN8/H34FB8kJiIREkVEyGQkF8/Pj4GBkg1GCIOexEQvHx8fBgMXzMxPpEICIXCfZkEAYwAJgbiC/ARMAH4ABA==")); +var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); /* I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: @@ -84,10 +84,7 @@ function drawBackground() { g.setBgColor(0,0,0); g.setColor(1,1,1); g.clear(); -g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); -// this covers the part of the background with branding, makes room for widgets -g.setColor(0,0,0); -g.fillRect(0,0,g.getWidth(),30); +g.drawImage(imgBg,0,0); g.reset(); } @@ -103,15 +100,15 @@ g.setColor(1,1,1); var batPercent = E.getBattery(); if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} else {selBattery=imgBattery;} -g.drawImage(selBattery,127,42); +g.drawImage(selBattery,127,59); if (batPercent != null) { -g.drawImage(imgPercent, 118,43); +g.drawImage(imgPercent, 118,60); } //draw 24 hr indicator and 12 hr specific behavior if (is24hr){ -g.drawImage(img24hr,32, 70); +g.drawImage(img24hr,32, 82); if (leadingZero){ h = ("0"+h).substr(-2);}} else if (h > 12) {g.drawImage(imgPM,40, 70); @@ -124,7 +121,7 @@ else if (h > 12) {g.drawImage(imgPM,40, 70); //draw separator if (separator){ -g.drawImage(imgSep, 85,96);} +g.drawImage(imgSep, 85,108);} //draw day of week var imgW = null; @@ -135,7 +132,7 @@ if (w == 3) {imgW = imgWed;} if (w == 4) {imgW = imgThr;} if (w == 5) {imgW = imgFri;} if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 66); +g.drawImage(imgW, 85, 78); // draw nums @@ -149,16 +146,16 @@ if (h<10) { } else {h = " " + h;} } -g.drawString(h, 25, 88, true); -g.drawString(("0"+m).substr(-2), 92, 88, true); +g.drawString(h, 25, 100, true); +g.drawString(("0"+m).substr(-2), 92, 100, true); // draw date g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,66, true); +g.drawString(("0"+d).substr(-2), 123,78, true); // draw battery g.setFontCustom(fontTiny, 48, 6, 8); if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign -if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} - else {g.drawString(batPercent, 99, 42, true);} +if (batPercent < 100) {g.drawString(batPercent, 105, 59, true);} + else {g.drawString(batPercent, 99, 59, true);} // widget redraw Bangle.drawWidgets(); queueDraw(); From c0e5d4432eb48ae7c83d1c62f28a8b8abdc1438b Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:19:34 -0800 Subject: [PATCH 13/58] Create app-icon.js added icon --- apps/93dub/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/93dub/app-icon.js diff --git a/apps/93dub/app-icon.js b/apps/93dub/app-icon.js new file mode 100644 index 000000000..771a64556 --- /dev/null +++ b/apps/93dub/app-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAgBAAAAAA39zmsbAA/f6vbtgA3X2o0aAAAAAAAAAH//////4AAAAAAAAAAAAAAAAD//////wEAAAAAAIF//////oF//////oF//////oF//////oF//////oF//////oF///4iPoF///9rfoF/x/+jfoF/x/4rfoF//////oF//////oF//////oF//////oF/cP4YfoF/fv/ffoF/fufffoF/fufffoF/cP4ffoF/fv/ffoF/fv/ffoF/fufffoF/cOYffoF//////oF//////oF//////oEAAAAAAID//////wAAAAAAAAAAAAAAAAAf+id/+AAAC2dAAAAACcZAAAAACcVAAAAAAAAAAAAAAAAAAA")) From 2d21ce74459871c238dc12d2ed04c212bd1d814e Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:21:29 -0800 Subject: [PATCH 14/58] Add files via upload --- apps/93dub/app.png | Bin 0 -> 650 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/app.png diff --git a/apps/93dub/app.png b/apps/93dub/app.png new file mode 100644 index 0000000000000000000000000000000000000000..59950c8959c296dabb9cf98ef9721cba82763012 GIT binary patch literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd literal 0 HcmV?d00001 From b49223d5b95c3802ca5b9a7e2478a227ad888652 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:24:09 -0800 Subject: [PATCH 15/58] Update apps.json --- apps.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 681767f81..9905a2352 100644 --- a/apps.json +++ b/apps.json @@ -4460,13 +4460,15 @@ { "id": "93dub", "name": "93 Dub", "shortName":"93 Dub", + "icon": "icon.png", "version":"0.01", - "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", + "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch", "tags": "", "type": "clock", "supports":["BANGLEJS2"], "storage": [ {"name":"93dub.app.js","url":"app.js"}, + {"name":"93dub.img","url":"app-icon.js","evaluate":true} ] }, ] From 251ceb9dd1ee7064f86c4056a280169f299311d9 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:27:35 -0800 Subject: [PATCH 16/58] Update apps.json oops comma --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 9905a2352..93785f0d4 100644 --- a/apps.json +++ b/apps.json @@ -4470,5 +4470,5 @@ {"name":"93dub.app.js","url":"app.js"}, {"name":"93dub.img","url":"app-icon.js","evaluate":true} ] - }, + } ] From 4294a27279f7482cb9abe10fe22d254f2a9a7073 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:31:41 -0800 Subject: [PATCH 17/58] Update apps.json apps.json updates --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 93785f0d4..554d18e11 100644 --- a/apps.json +++ b/apps.json @@ -4462,8 +4462,8 @@ "shortName":"93 Dub", "icon": "icon.png", "version":"0.01", - "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch", - "tags": "", + "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", + "tags": "clock", "type": "clock", "supports":["BANGLEJS2"], "storage": [ From 8a3f9f848a4dc98f0f1108c46e406ba8007aa45b Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:36:48 -0800 Subject: [PATCH 18/58] Update app.js stripped license and info block of text since it's already enclosed in an MIT-licensed repo --- apps/93dub/app.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index fb485d72a..f89d26188 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,28 +1,3 @@ -/*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. - -MIT License - -Copyright (c) 2021 Brandon Abbott - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); From 82e515e0e5c05cd89f871f33fb24654e1e26d5b0 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:39:55 -0800 Subject: [PATCH 19/58] Create README.md added dub93's readme --- apps/93dub/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 apps/93dub/README.md diff --git a/apps/93dub/README.md b/apps/93dub/README.md new file mode 100644 index 000000000..1732757a7 --- /dev/null +++ b/apps/93dub/README.md @@ -0,0 +1,5 @@ +# 93 Dub + +![icon](app.png) + +93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. From 0d5892769d6862ed8a56dcfcf3fd960893cec688 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:42:19 -0800 Subject: [PATCH 20/58] Add files via upload add screenshot for 93dub --- apps/93dub/screenshot.png | Bin 0 -> 3675 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..de25e4d2c173d0661775c3dd47f8a0713d5b1d62 GIT binary patch literal 3675 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 Date: Sat, 27 Nov 2021 21:44:49 -0800 Subject: [PATCH 21/58] Update README.md --- apps/93dub/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/README.md b/apps/93dub/README.md index 1732757a7..1f2d25b75 100644 --- a/apps/93dub/README.md +++ b/apps/93dub/README.md @@ -1,5 +1,5 @@ # 93 Dub -![icon](app.png) +![](screenshot.png) 93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. From 4a3e1bbe28e3180ab04685646a4e41de07993cf4 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:52:13 -0800 Subject: [PATCH 22/58] Update app.js 12 hr/24 hr specific behavior now from settings instead of hardcoded --- apps/93dub/app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index f89d26188..fc52b8829 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,3 +1,6 @@ +// get 12 hour status, code from barclock +const is12Hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"]; + // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); @@ -38,7 +41,7 @@ var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); //vars var separator = true; -var is24hr = true; //assumed true until can find API to check +var is24hr = !is12Hour; var leadingZero = true; //the following 2 sections are used from waveclk to schedule minutely updates From 6fd7a0eb633ac47eea07c2befe8f0a96bda19a02 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:11:06 -0800 Subject: [PATCH 23/58] Update app.js battery icon actually works now --- apps/93dub/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index fc52b8829..a0def3c51 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -77,11 +77,14 @@ g.setColor(1,1,1); // draw battery indicator var batPercent = E.getBattery(); if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} -else {selBattery=imgBattery;} +else { +selBattery=imgBattery; +g.setColor(0,0,0); +g.fillRect(129,61,(129 + batPercent / 10),65); +g.setColor(1,1,1);} g.drawImage(selBattery,127,59); if (batPercent != null) { g.drawImage(imgPercent, 118,60); - } //draw 24 hr indicator and 12 hr specific behavior From 9e897dfd50c2ff4cc6c012724305e5e079b02dab Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:13:21 -0800 Subject: [PATCH 24/58] Update app.js removed other nonfunctional comment block --- apps/93dub/app.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index a0def3c51..43ca5a5ea 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -4,14 +4,6 @@ const is12Hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour" // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); -/* -I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: -mogrify -gravity east -extent 28x41 *.png -montage num_[0-9].png -geometry +0+0 numcat.png - -I then put numcat.png into the generator. -*/ - // define fonts // reg number first char 48 28 by 41 var fontNum = atob("AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//w//j4//A/+P4/8A/4/4AAAAD/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/wAAAAH/H/gH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wB/4AP/4H/4A//4f/4D//5//4P//h//4//+B//4AAAAAAAAAAAAAAAAAf/+AAAB//4gAAD//jgAAD/+PgABj/4/gAHj/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f88AAfx/8wAAfH/8AAAcf/8AAAR//4AAAH//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA4AAAAAD4AAYAAP4AD8AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAHgAH/H/GH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAP//AAAAP//AAAAP//AAAAP/8AAAAP/2AAAAP/eAAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAB/7x/4AH/7H/4Af/4f/4B//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wAAAD//wAAAj//gAADj/+AAAPj/5gAA/j/ngAD/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8AA8f8fwAAx/8fAAAH/8cAAAf/8QAAA//8AAAA//8AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//0//j4//Y/+P4/94/4/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/AAPH/H8AAMf/HwAAB//HAAAH//EAAAH//AAAAH//AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAGAAAAAAOAAAAAAeAAAAAA+AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB8AAAAADx/4B/4HH/4H/4Mf/4f/4R//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wP/+D//w//4j//z//jj//T/+Pj/9j/4/j/3j/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f+8f8fx/+x/8fH/+H/8cf/+f/8R//4f/8H//gf/8AAAAAAAAAAAAAA//8AAAA//8AAAI//8AAA4//0AAD4//YAAP4/94AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/H/vH/H8f/sf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); From b28986c249a952edaac1b5e4b624ab357dcb81c3 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:19:09 -0800 Subject: [PATCH 25/58] Delete app.png --- apps/93dub/app.png | Bin 650 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/app.png diff --git a/apps/93dub/app.png b/apps/93dub/app.png deleted file mode 100644 index 59950c8959c296dabb9cf98ef9721cba82763012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd From 47c8edba4f040716d5860b56588a98687914ac36 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:19:25 -0800 Subject: [PATCH 26/58] Add files via upload --- apps/93dub/93dub.png | Bin 0 -> 650 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/93dub.png diff --git a/apps/93dub/93dub.png b/apps/93dub/93dub.png new file mode 100644 index 0000000000000000000000000000000000000000..59950c8959c296dabb9cf98ef9721cba82763012 GIT binary patch literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd literal 0 HcmV?d00001 From da41d04d2681afd5bafe9f39660ca6c8a15a787a Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:20:21 -0800 Subject: [PATCH 27/58] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 554d18e11..9ee92bfaf 100644 --- a/apps.json +++ b/apps.json @@ -4460,7 +4460,7 @@ { "id": "93dub", "name": "93 Dub", "shortName":"93 Dub", - "icon": "icon.png", + "icon": "93dub.png", "version":"0.01", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", From 6eb7a844d6839456c13a4402c5212b9bb9dbd3ad Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:26:36 -0800 Subject: [PATCH 28/58] Update app.js fix battery graphics --- apps/93dub/app.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 43ca5a5ea..718c75e9a 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -68,13 +68,14 @@ g.setBgColor(0,0,0); g.setColor(1,1,1); // draw battery indicator var batPercent = E.getBattery(); -if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} +if (Bangle.isCharging()) { +g.drawImage(imgBattery_Charge,127,59); +} else { -selBattery=imgBattery; +g.drawImage(imgBattery,127,59); g.setColor(0,0,0); g.fillRect(129,61,(129 + batPercent / 10),65); g.setColor(1,1,1);} -g.drawImage(selBattery,127,59); if (batPercent != null) { g.drawImage(imgPercent, 118,60); } From d87930e4d37ea5248b7de93825735967e75030b3 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:27:51 -0800 Subject: [PATCH 29/58] Update apps.json --- apps.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps.json b/apps.json index 9ee92bfaf..ba97bfeb4 100644 --- a/apps.json +++ b/apps.json @@ -4466,6 +4466,8 @@ "tags": "clock", "type": "clock", "supports":["BANGLEJS2"], + "readme": "README.md", + "allow_emulator": true, "storage": [ {"name":"93dub.app.js","url":"app.js"}, {"name":"93dub.img","url":"app-icon.js","evaluate":true} From 40d19aad2e4d672171b4feeee6b9c6f4cdbb11a1 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:29:57 -0800 Subject: [PATCH 30/58] Update apps.json added screenshot to app store listing --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index ba97bfeb4..508bd253a 100644 --- a/apps.json +++ b/apps.json @@ -4461,6 +4461,7 @@ "name": "93 Dub", "shortName":"93 Dub", "icon": "93dub.png", + "screenshots": [{"url":"screenshot.png"}], "version":"0.01", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", From 89e88e717211d8c80b0e258114be7498722aa783 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 23:39:51 -0800 Subject: [PATCH 31/58] Update app-icon.js hopefully fix launcher icon --- apps/93dub/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/app-icon.js b/apps/93dub/app-icon.js index 771a64556..39d11fd6a 100644 --- a/apps/93dub/app-icon.js +++ b/apps/93dub/app-icon.js @@ -1 +1 @@ -E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAgBAAAAAA39zmsbAA/f6vbtgA3X2o0aAAAAAAAAAH//////4AAAAAAAAAAAAAAAAD//////wEAAAAAAIF//////oF//////oF//////oF//////oF//////oF//////oF///4iPoF///9rfoF/x/+jfoF/x/4rfoF//////oF//////oF//////oF//////oF/cP4YfoF/fv/ffoF/fufffoF/fufffoF/cP4ffoF/fv/ffoF/fv/ffoF/fufffoF/cOYffoF//////oF//////oF//////oEAAAAAAID//////wAAAAAAAAAAAAAAAAAf+id/+AAAC2dAAAAACcZAAAAACcVAAAAAAAAAAAAAAAAAAA")) +require("heatshrink").decompress(atob("mEwwkBG2XwAgcPC6P/h//AAIDBA4Pwh/w+AGBAgIDBC4oVDAAITBCAIIBAYIBBAgIvHh4YCFgQPBAoIvCCwoAWIQYAQGLgAWI6bQVdQiiDOyAX/C/7+IAIYvSh4RBAYIXLAwJAHC6ZFCF5yn/C7wDBBAJ3EVAKBDC5QLBYAoLFC5nwCgoXlL44vSL653sL4QXBL6DvXC9YCBACIXCZ4YAQFaYAgPAhqCa4SDFLoZpICYIXDQKLyCDIQXVAAKI0AAYA==")) From 6fc1e738f1e1bdaaa45bb2ea34b33d97be3f37ee Mon Sep 17 00:00:00 2001 From: James Date: Sun, 28 Nov 2021 13:22:42 +0000 Subject: [PATCH 32/58] Add mandlebrot clock app --- apps.json | 21 +++++++++++ apps/mandlebrotclock/ChangeLog | 2 ++ apps/mandlebrotclock/README.md | 9 +++++ apps/mandlebrotclock/app.png | Bin 0 -> 136198 bytes apps/mandlebrotclock/mandlebrotclock-icon.js | 1 + apps/mandlebrotclock/mandlebrotclock.js | 34 ++++++++++++++++++ apps/mandlebrotclock/mandlebrotclock.png | Bin 0 -> 19497 bytes .../screenshot_mandlebrotclock.png | Bin 0 -> 40229 bytes 8 files changed, 67 insertions(+) create mode 100644 apps/mandlebrotclock/ChangeLog create mode 100644 apps/mandlebrotclock/README.md create mode 100644 apps/mandlebrotclock/app.png create mode 100644 apps/mandlebrotclock/mandlebrotclock-icon.js create mode 100644 apps/mandlebrotclock/mandlebrotclock.js create mode 100644 apps/mandlebrotclock/mandlebrotclock.png create mode 100644 apps/mandlebrotclock/screenshot_mandlebrotclock.png diff --git a/apps.json b/apps.json index 7fe259899..8907ae9ef 100644 --- a/apps.json +++ b/apps.json @@ -439,6 +439,27 @@ {"name":"matrixclock.img","url":"matrixclock-icon.js","evaluate":true} ] }, + { + "id": "mandlebrotclock", + "name": "Mandlebrot Clock", + "version": "0.01", + "description": "A mandlebrot set themed clock cool", + "icon": "mandlebrotclock.png", + "screenshots": [{ "url": "screenshot_mandlebrotclock.png" }], + "type": "clock", + "tags": "clock", + "supports": ["BANGLEJS2"], + "readme": "README.md", + "allow_emulator": true, + "storage": [ + { "name": "mandlebrotclock.app.js", "url": "mandlebrotclock.js" }, + { + "name": "mandlebrotclock.img", + "url": "mandlebrotclock-icon.js", + "evaluate": true + } + ] + }, { "id": "imgclock", "name": "Image background clock", diff --git a/apps/mandlebrotclock/ChangeLog b/apps/mandlebrotclock/ChangeLog new file mode 100644 index 000000000..d7bda0d78 --- /dev/null +++ b/apps/mandlebrotclock/ChangeLog @@ -0,0 +1,2 @@ +0.01: Initial Release + \ No newline at end of file diff --git a/apps/mandlebrotclock/README.md b/apps/mandlebrotclock/README.md new file mode 100644 index 000000000..8628a61d0 --- /dev/null +++ b/apps/mandlebrotclock/README.md @@ -0,0 +1,9 @@ +# Mandlebrot Clock + +A simple clock themed on the mandlebrot set. + +Written by [James Milner](https://www.github.com/jameslmilner) + +![](app.png) + + \ No newline at end of file diff --git a/apps/mandlebrotclock/app.png b/apps/mandlebrotclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..95ab99a9110b27b83abaad37cc03b1bc7a645593 GIT binary patch literal 136198 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 Date: Sun, 28 Nov 2021 15:46:02 +0000 Subject: [PATCH 33/58] Fix some text overflowing the screen in recorder and gpsrec On Bangle.js 2 --- apps/gpsrec/app.js | 6 +++--- apps/recorder/app.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index 164124257..73fe6194e 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -249,10 +249,10 @@ function plotTrack(info) { g.fillCircle(ox,oy,5); if (info.qOSTM) g.setColor(0, 0, 0); else g.setColor(1,1,1); - g.drawString(require("locale").distance(dist),120,220); + g.drawString(require("locale").distance(dist),g.getWidth() / 2, g.getHeight() - 20); g.setFont("6x8",2); g.setFontAlign(0,0,3); - g.drawString("Back",230,200); + g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40); setWatch(function() { viewTrack(info.fn, info); }, global.BTN3||BTN1); @@ -336,7 +336,7 @@ function plotGraph(info, style) { }); g.setFont("6x8",2); g.setFontAlign(0,0,3); - g.drawString("Back",230,200); + g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40); setWatch(function() { viewTrack(info.fn, info); }, global.BTN3||BTN1); diff --git a/apps/recorder/app.js b/apps/recorder/app.js index d29959e25..3d06ebca4 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -304,10 +304,10 @@ function plotTrack(info) { g.fillCircle(ox,oy,5); if (info.qOSTM) g.setColor("#000"); else g.setColor(g.theme.fg); - g.drawString(require("locale").distance(dist),120,220); + g.drawString(require("locale").distance(dist),g.getWidth() / 2, g.getHeight() - 20); g.setFont("6x8",2); g.setFontAlign(0,0,3); - g.drawString("Back",230,200); + g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40); setWatch(function() { viewTrack(info.fn, info); }, global.BTN3||BTN1); @@ -402,7 +402,7 @@ function plotGraph(info, style) { }); g.setFont("6x8",2); g.setFontAlign(0,0,3); - g.drawString("Back",230,200); + g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40); setWatch(function() { viewTrack(info.filename, info); }, global.BTN3||BTN1); From a622781628c35eca58831c36e658e36b9a752712 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Sun, 28 Nov 2021 16:46:01 +0000 Subject: [PATCH 34/58] Make the recorder handle missing coordinates in plot speed --- apps/recorder/app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/recorder/app.js b/apps/recorder/app.js index 3d06ebca4..fd4441422 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -360,6 +360,10 @@ function plotGraph(info, style) { var t,dx,dy,d,lt = c[timeIdx]; while(l!==undefined) { ++nl;c=l.split(","); + l = f.readLine(f); + if (c[latIdx] == "") { + continue; + }; t = c[timeIdx]; i = Math.round(80*(t - strt)/dur); p = Bangle.project({lat:c[latIdx],lon:c[lonIdx]}); @@ -372,7 +376,6 @@ function plotGraph(info, style) { } lp = p; lt = t; - l = f.readLine(f); } } else throw new Error("Unknown type "+style); var min=100000,max=-100000; From 466fd2155c81f44cfd30c7e3f15f460f5a8662c0 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Sun, 28 Nov 2021 18:18:18 +0000 Subject: [PATCH 35/58] Remove superfluous semicolon --- apps/recorder/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/recorder/app.js b/apps/recorder/app.js index fd4441422..aa3803794 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -363,7 +363,7 @@ function plotGraph(info, style) { l = f.readLine(f); if (c[latIdx] == "") { continue; - }; + } t = c[timeIdx]; i = Math.round(80*(t - strt)/dur); p = Bangle.project({lat:c[latIdx],lon:c[lonIdx]}); From 22fa78ff8d82e3a0512a3538278cc8e0ff735b28 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Sun, 28 Nov 2021 18:43:44 +0000 Subject: [PATCH 36/58] Even out x axis grid points --- apps/gpsrec/app.js | 2 +- apps/recorder/app.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index 73fe6194e..df3353930 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -330,7 +330,7 @@ function plotGraph(info, style) { height: g.getHeight()-(24+8), axes : true, gridy : grid, - gridx : 50, + gridx : infn.length / 3, title: title, xlabel : x=>Math.round(x*dur/(60*infn.length))+" min" // minutes }); diff --git a/apps/recorder/app.js b/apps/recorder/app.js index aa3803794..3548cdb29 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -399,7 +399,7 @@ function plotGraph(info, style) { height: g.getHeight()-(24+8), axes : true, gridy : grid, - gridx : 50, + gridx : infn.length / 3, title: title, xlabel : x=>Math.round(x*dur/(60*infn.length))+" min" // minutes }); From 1a118a60374099538f65f24b347907b1ac12ea25 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Sun, 28 Nov 2021 18:44:47 +0000 Subject: [PATCH 37/58] Recorded: Slightly improve plot altitude if data has NaNs --- apps/recorder/app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/recorder/app.js b/apps/recorder/app.js index 3548cdb29..fcd8d6031 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -401,6 +401,8 @@ function plotGraph(info, style) { gridy : grid, gridx : infn.length / 3, title: title, + miny: min, + maxy: max, xlabel : x=>Math.round(x*dur/(60*infn.length))+" min" // minutes }); g.setFont("6x8",2); From ba50674173c0fae02948c69fb8eaa0098ae4efe3 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Sun, 28 Nov 2021 18:58:26 +0000 Subject: [PATCH 38/58] Update app versions and changelog --- apps.json | 4 ++-- apps/gpsrec/ChangeLog | 1 + apps/recorder/ChangeLog | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index a7a74f4cb..f062d1ca6 100644 --- a/apps.json +++ b/apps.json @@ -664,7 +664,7 @@ { "id": "gpsrec", "name": "GPS Recorder", - "version": "0.25", + "version": "0.26", "description": "Application that allows you to record a GPS track. Can run in background", "icon": "app.png", "tags": "tool,outdoors,gps,widget", @@ -683,7 +683,7 @@ "id": "recorder", "name": "Recorder (BETA)", "shortName": "Recorder", - "version": "0.03", + "version": "0.04", "description": "Record GPS position, heart rate and more in the background, then download to your PC.", "icon": "app.png", "tags": "tool,outdoors,gps,widget", diff --git a/apps/gpsrec/ChangeLog b/apps/gpsrec/ChangeLog index ca61643a3..cb22dd13f 100644 --- a/apps/gpsrec/ChangeLog +++ b/apps/gpsrec/ChangeLog @@ -27,3 +27,4 @@ 0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first 0.24: Better support for Bangle.js 2, avoid widget area for Graphs, smooth graphs more 0.25: Fix issue where if Bangle.js 2 got a GPS fix but no reported time, errors could be caused by the widget (fix #935) +0.26: Multiple bugfixes diff --git a/apps/recorder/ChangeLog b/apps/recorder/ChangeLog index 2ea6e9fa8..40240de64 100644 --- a/apps/recorder/ChangeLog +++ b/apps/recorder/ChangeLog @@ -2,3 +2,4 @@ 0.02: Use 'recorder.log..' rather than 'record.log..' Fix interface.html 0.03: Fix theme and maps/graphing if no GPS +0.04: Multiple bugfixes From 426ec0350fff5ce87dd2e8a6096c80f2f0e1b448 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:10:47 -0800 Subject: [PATCH 39/58] Update README.md added credits --- apps/93dub/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/93dub/README.md b/apps/93dub/README.md index 1f2d25b75..fd24d54d8 100644 --- a/apps/93dub/README.md +++ b/apps/93dub/README.md @@ -2,4 +2,10 @@ ![](screenshot.png) -93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. +Uses many portions from Espruino documentation, example watchfaces, and the waveclk app. It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. + +Contributors: +Leer10 +Orviwan (original watchface and assets) +Gordon Williams (Bangle.js, watchapps for reference code and documentation) +DiscoMinotaur (adjustments) From c3fac095b83c9936dedef8dad70578b4593923db Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:19:21 -0800 Subject: [PATCH 40/58] Update app.js add discominotaur's adjustments (cause a battery on the watchface isn't useful when the widget does the work anyways) maybe i'll do it as a setting later --- apps/93dub/app.js | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 718c75e9a..516360043 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -25,8 +25,6 @@ var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A // define icons var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA")); -var imgBattery = E.toArrayBuffer(atob("EAkBAAF//X/8f/x//H/8f/x//QAB")); -var imgBattery_Charge = E.toArrayBuffer(atob("EAkBAAF//UEERwRf9EHEQQR//QAB")); var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA==")); var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g==")); var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); @@ -66,23 +64,10 @@ var d = date.getDate(), w = date.getDay(); g.reset(); g.setBgColor(0,0,0); g.setColor(1,1,1); -// draw battery indicator -var batPercent = E.getBattery(); -if (Bangle.isCharging()) { -g.drawImage(imgBattery_Charge,127,59); -} -else { -g.drawImage(imgBattery,127,59); -g.setColor(0,0,0); -g.fillRect(129,61,(129 + batPercent / 10),65); -g.setColor(1,1,1);} -if (batPercent != null) { -g.drawImage(imgPercent, 118,60); -} //draw 24 hr indicator and 12 hr specific behavior if (is24hr){ -g.drawImage(img24hr,32, 82); +g.drawImage(img24hr,32, 65); if (leadingZero){ h = ("0"+h).substr(-2);}} else if (h > 12) {g.drawImage(imgPM,40, 70); @@ -95,7 +80,7 @@ else if (h > 12) {g.drawImage(imgPM,40, 70); //draw separator if (separator){ -g.drawImage(imgSep, 85,108);} +g.drawImage(imgSep, 85,98);} //draw day of week var imgW = null; @@ -106,7 +91,7 @@ if (w == 3) {imgW = imgWed;} if (w == 4) {imgW = imgThr;} if (w == 5) {imgW = imgFri;} if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 78); +g.drawImage(imgW, 85, 63); // draw nums @@ -120,16 +105,12 @@ if (h<10) { } else {h = " " + h;} } -g.drawString(h, 25, 100, true); -g.drawString(("0"+m).substr(-2), 92, 100, true); +g.drawString(h, 25, 90, true); +g.drawString(("0"+m).substr(-2), 92, 90, true); // draw date g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,78, true); -// draw battery -g.setFontCustom(fontTiny, 48, 6, 8); -if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign -if (batPercent < 100) {g.drawString(batPercent, 105, 59, true);} - else {g.drawString(batPercent, 99, 59, true);} +g.drawString(("0"+d).substr(-2), 123,63, true); + // widget redraw Bangle.drawWidgets(); queueDraw(); From b25ad7573e19ccf6f617381e5ac78260ddeef36a Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:21:57 -0800 Subject: [PATCH 41/58] Delete screenshot.png --- apps/93dub/screenshot.png | Bin 3675 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png deleted file mode 100644 index de25e4d2c173d0661775c3dd47f8a0713d5b1d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3675 zcmV-h4y5skP)zd;r2!`AHzv$g3Gfl@*5KxGReDh~_8Y8DyL}NP7$K&zufggBaQ4c(?0r=nVFgc~Y z|2_VLA9$eM1GxbI`^P~08Zsr!KV;)4!vp`07)R!1g31BJXGVp$6W`}VT z1!ZPcwgC8WumJHFz?#AO2x^7*gc}e?4u~_JdfXzVe)rX+$IlG@d^{?d_yb@K-cv2v z8FhHi$?Rt^u{ALuj>f17oMr0HzRo7ID@E9J`QfDj&{T__fO9 z7Ir8jy2+jmU}_M%-s1MIYujjEc)uZ*cOPms@R^anpU`19qMO`T2TKB6X5z{o@Owt* z0H!0O+QzW^P(p93f!}yX#qyT@0AMnbOA7uVx9$IaPaoJ1&K^}u0vu67L}lQkJdhs8 z|Lil=9%`Tl?&fmp97flr9F>pxzu9^CodI{PapDj68?cEkG{mfwxccS4%^ zK?dCmwr-_9#yR2a@wE)VoFlAH;`+DI-YY$}rv269Z{PR#EClv{v*Be+h%1CLGP=(~ zXoq>c5R0dZs%3$;>wvAZXug`jiB_WbG@A7|WtiTr5M$vM7J{=QZ(<5pfOP0SPWiFo z|JE+)jf}VZlykp$;+74}764!WN)ZW*l#!8fv-#b=|Ktq3z5ig~U=IM`!2y8yJ`Vuk zKL6qF!5#p>g98BZeI7^wc$U3K$u+a<*B8=z-3@^674Pk=1;E>d^j-!5;Csb;J8RPc z{(OCie^s77Eh=BVm;Qf5Li+-izo(F&a-|xW)1x)w7Q0*fw%+$XG-bWP(9Y7QrHw(9 zsYxopoCcORJ<9v&_ejt_t^JklIDqX(M!&71{guCuTrg&UWa-n=#zd!~Q98ifTOHQV z&MeDivxv{A9vtMgOn>^f25>C~6!h;eeW70h^E;DJ+fQK1f4PB9!K(ev$&ivqO&@6% zG_YxEk_xbt9c$o70pdWif}^$54!pQdP`%u)WnK=R(ne0_@=P^1c%*yEwseqkzt?or z201mMw!TU9F4VFqct0 zpV1P+n$fK?tTTa@J!+s@A-2NS1J@NYwgXtIo9Gl+wyW(z(9AVaaT&a) zUac*fEDKRB6H7jn;wkAP)!rJEp6e+9dla~$tu~Ff>QH7gIuo?^iTivW0Kh(feYB?K zidHLkh{COc2et+{8?fyDL9OnAtpV1}M~l@x0DxDI;LY_H0j_OF-P~s|e}D(1^#wBU zfM7smoCg4KoG;PS01p7*0Zxa=I1d2eIA5Zt0Ul@q7z?}sk-CA%mIpyDfC26eD4M`T z56EVK@ziO8$Zo7cD_1m^l{RqXO*OCc+;nJe5wm_=&k;#Lni~zuvNKep)dn1^8v-x9s zef@RR^RrqX9ur#zi>Lo`;ikQi3xK_z9n@Zeru4DFi%F5!)=fsc^1lpoemqJ*$| zYLRvtd|H;}YGsrViv)icHLcrA<;tB~*hyuG)laS9Tl>c@gvV1iZaeEfFaW+Wl)IRY z8hDpT-qa2NeAB@1Vm1KYC6YI_0|4JN@Vl4|fOm=HP3-`{Hx2wQW&_||B6(9g0Psx% zzl+%bc$Y}t)D8eVN#JXbYrS8m)Z4yviS`(oJ89;zrPuucxYvV0_gjNro)+Uo)4xeq zo)?f*)s8z#x^c2j8QeXZoEBFC;1;h1-s3&=t+mde)5Iwvcb8M*=B$cQ%dH`F3SLX z)_!G;#eJzD06yNom0#nDgvi^MxBYDZE*CZ{0(>rpq(vFs70}w#!Omqu&n(okh?C&c zbhALq?UF3_y%41%Y5-fH@H#EJy#$DqNxkiR^{oNi+jsB%%ajmY7NRw+R%Xmt18V`~ z0;FY6Ez4=wr7}&^)pFe`+tSw=&vKwkgKe5GHsK(p#!4?M?gDU6jq9mHJ#8((MfbNH zz}o1&O9lqOf5T;&5`vo=wD0iZfY%0rC6ip)MhcKrMrc`1yIxx$_1f)`ZI!hQz*d8H zZ>K@fdmRA(`?otoq4w2w6u44B15~T?E%(z!T;wi9^bCj$9ExLGXP#}bUI07*my0CH zGHpkM-q))?*WXgR5N(Lyu3bHV47_V(Z(v32%I@(6r~eWFM?kE-KbH+}`MA>~D>~p*c6R@CFrL3h&4kMU z+ygNOZ!1tO@bv_(Tn9u2oo2&Te6e%}=A3SUNrE>!Xxsv{1wh(QOCPns_Y5wJ|E0te zZO3viby}TQ13$`%(zHxJZ;=-@5TvO*8{o*Jm|J9EFSxbRqXj67{K%k1_O-e%05I{u zXn-wnTH06!l~#g{_Jzj=ZZ_GvgouVfbGB8UrJbdXrjJ%WWUdFI^_R*u0PLYaX=@Fd zrJbdXNA>9bG}+nmmfA+soF!e)c4F%y&Z3v4jmIz1{b{nZ`7h5w%I{5s=+q9TDNR@0Jw(+;oj_^^{9NcZrSnxa1RXtSoIzN zE?hK24XH-#@et1`Q2n!m%jtTx%xrncz!oB%ZLC4FwsVTFHosbCwmbkFNyn=%YtXFi zB2~OvX0|*497zWN{_-XOMhzS~#Ik{+%4W-3CIhdsfI9+c4VtxGB*9n9%$BzVz$Ltr zL!=;&0-w`!lrEO6n5kQ)FQx~$2i_~5^VhN?4O}K9-Yk8!ZdvlC1~>xVnIN7CU|Q;2 zp<4-Yl)PyHj)Zp>h@*n$&9;_V;ws%JaJ{xn32z;`=k|an`>FsV3(prkdWvB09-hC*3)*aEA&Kers*00zd~`qJ1ZzN>o%I?6o6;VWSq0l*I*=g zYmYaj_xtGQnm;T9=Y&}6Ycx=je2a}Ox~Bl#qR7a5Y8mbdfDhZX03!?YgaF{zt5V(! zEP>tgCQA)s01SY|B;S&OtpHmyxR!+hFaQn%xORFf-7k9^00GBImx;sFx zoi3;WFG0_}zT&BYGXT~g;RYEupru_E&QF|AHGjsT7t_;r0Mo1?1-W#eR$p=@!M^p+43gtZbut8+EzDG1U4tCbM7 z8Ku;n>RS7K1fZJCDFF6n2W!pD)p?e{asbiKECAOAk7Zy Date: Sun, 28 Nov 2021 14:22:04 -0800 Subject: [PATCH 42/58] Add files via upload --- apps/93dub/screenshot.png | Bin 0 -> 3297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..197c52c018739e13eb44b17b4273cc21d7e1d9f3 GIT binary patch literal 3297 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 Date: Sun, 28 Nov 2021 14:23:24 -0800 Subject: [PATCH 43/58] Create ChangeLog --- apps/93dub/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/93dub/ChangeLog diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog new file mode 100644 index 000000000..617319f8a --- /dev/null +++ b/apps/93dub/ChangeLog @@ -0,0 +1 @@ +0.01 Added DiscoMinotaur's adjustments From b9b7cfb50cfc62401a768653d9b4fd910256840c Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:23:49 -0800 Subject: [PATCH 44/58] Delete screenshot.png --- apps/93dub/screenshot.png | Bin 3297 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png deleted file mode 100644 index 197c52c018739e13eb44b17b4273cc21d7e1d9f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3297 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 Date: Sun, 28 Nov 2021 14:24:18 -0800 Subject: [PATCH 45/58] Add files via upload --- apps/93dub/screenshot.png | Bin 0 -> 3297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..197c52c018739e13eb44b17b4273cc21d7e1d9f3 GIT binary patch literal 3297 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 Date: Sun, 28 Nov 2021 14:25:23 -0800 Subject: [PATCH 46/58] Update apps.json added new version in json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 508bd253a..3fefba71e 100644 --- a/apps.json +++ b/apps.json @@ -4462,7 +4462,7 @@ "shortName":"93 Dub", "icon": "93dub.png", "screenshots": [{"url":"screenshot.png"}], - "version":"0.01", + "version":"0.02", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", "type": "clock", From bb537b1738573c756207cb883c4ed8fd95256bb0 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:27:14 -0800 Subject: [PATCH 47/58] Update ChangeLog --- apps/93dub/ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index 617319f8a..c9e9949ed 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1 +1,2 @@ -0.01 Added DiscoMinotaur's adjustments +0.01 Initial version for upload +0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) From f423a6b91bbd698e72fa6a7cc002b068f506e291 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:54:17 -0800 Subject: [PATCH 48/58] Update app.js --- apps/93dub/app.js | 123 ++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 516360043..92544304c 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -48,72 +48,75 @@ function queueDraw() { } function drawBackground() { -// set background -g.setBgColor(0,0,0); -g.setColor(1,1,1); -g.clear(); -g.drawImage(imgBg,0,0); -g.reset(); + g.setBgColor(0,0,0); + g.setColor(1,1,1); + g.clear(); + g.drawImage(imgBg,0,0); + g.reset(); } function draw(){ -drawBackground(); -var date = new Date(); -var h = date.getHours(), m = date.getMinutes(); -var d = date.getDate(), w = date.getDay(); -g.reset(); -g.setBgColor(0,0,0); -g.setColor(1,1,1); + drawBackground(); + var date = new Date(); + var h = date.getHours(), m = date.getMinutes(); + var d = date.getDate(), w = date.getDay(); + g.reset(); + g.setBgColor(0,0,0); + g.setColor(1,1,1); -//draw 24 hr indicator and 12 hr specific behavior -if (is24hr){ -g.drawImage(img24hr,32, 65); -if (leadingZero){ - h = ("0"+h).substr(-2);}} -else if (h > 12) {g.drawImage(imgPM,40, 70); - h = h - 12; - if (leadingZero){ - h = ("0"+h).substr(-2);} - else - {h = " " + h;} - } - -//draw separator -if (separator){ -g.drawImage(imgSep, 85,98);} - -//draw day of week -var imgW = null; -if (w == 0) {imgW = imgSun;} -if (w == 1) {imgW = imgMon;} -if (w == 2) {imgW = imgTue;} -if (w == 3) {imgW = imgWed;} -if (w == 4) {imgW = imgThr;} -if (w == 5) {imgW = imgFri;} -if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 63); - - -// draw nums -// draw time -g.setColor(0,0,0); -g.setBgColor(1,1,1); -g.setFontCustom(fontNum, 48, 28, 41); -if (h<10) { - if (leadingZero) { - h = ("0"+h).substr(-2); + //draw 24 hr indicator and 12 hr specific behavior + if (is24hr){ + g.drawImage(img24hr,32, 65); + if (leadingZero){ + h = ("0"+h).substr(-2); + } + } else if (h > 12) { + g.drawImage(imgPM,40, 70); + h = h - 12; + if (leadingZero){ + h = ("0"+h).substr(-2); + } else { + h = " " + h; } - else {h = " " + h;} -} -g.drawString(h, 25, 90, true); -g.drawString(("0"+m).substr(-2), 92, 90, true); -// draw date -g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,63, true); + } -// widget redraw -Bangle.drawWidgets(); -queueDraw(); + //draw separator + if (separator){ + g.drawImage(imgSep, 85,98);} + + //draw day of week + var imgW = null; + if (w == 0) {imgW = imgSun;} + if (w == 1) {imgW = imgMon;} + if (w == 2) {imgW = imgTue;} + if (w == 3) {imgW = imgWed;} + if (w == 4) {imgW = imgThr;} + if (w == 5) {imgW = imgFri;} + if (w == 6) {imgW = imgSat;} + g.drawImage(imgW, 85, 63); + + + // draw nums + // draw time + g.setColor(0,0,0); + g.setBgColor(1,1,1); + g.setFontCustom(fontNum, 48, 28, 41); + if (h<10) { + if (leadingZero) { + h = ("0"+h).substr(-2); + } else { + h = " " + h; + } + } + g.drawString(h, 25, 90, true); + g.drawString(("0"+m).substr(-2), 92, 90, true); + // draw date + g.setFontCustom(fontDate, 48, 12, 15); + g.drawString(("0"+d).substr(-2), 123,63, true); + + // widget redraw + Bangle.drawWidgets(); + queueDraw(); } From 590f022a91c430a832df0d9c64d9cde837b82cdf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:55:32 -0800 Subject: [PATCH 49/58] Update ChangeLog --- apps/93dub/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index c9e9949ed..375e60d49 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1,2 +1,3 @@ 0.01 Initial version for upload 0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) +0.03 Style cleanup From ada93e894d76497dd48956020cd3dc3649441dbf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:55:46 -0800 Subject: [PATCH 50/58] Update ChangeLog --- apps/93dub/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index 375e60d49..e7423b2c9 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1,3 +1,3 @@ 0.01 Initial version for upload 0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) -0.03 Style cleanup +0.03 Code style cleanup From 050b9c2b807c5e66405a8549bbfa47e4a1421f33 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:56:18 -0800 Subject: [PATCH 51/58] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 3fefba71e..af798e293 100644 --- a/apps.json +++ b/apps.json @@ -4462,7 +4462,7 @@ "shortName":"93 Dub", "icon": "93dub.png", "screenshots": [{"url":"screenshot.png"}], - "version":"0.02", + "version":"0.03", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", "type": "clock", From 765a683c894b1e09e1aae1c450b48a53db5b54a6 Mon Sep 17 00:00:00 2001 From: Marco H Date: Mon, 29 Nov 2021 10:23:54 +0100 Subject: [PATCH 52/58] Update app.js Improving messages and added Celsius sign --- apps/thermom/app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/thermom/app.js b/apps/thermom/app.js index baa38e8ec..971ce8f56 100644 --- a/apps/thermom/app.js +++ b/apps/thermom/app.js @@ -3,9 +3,9 @@ function onTemperature(p) { g.setFont("6x8",2).setFontAlign(0,0); var x = g.getWidth()/2; var y = g.getHeight()/2 + 10; - g.drawString("Temperature", x, y - 45); + g.drawString("Temperature:", x, y - 45); g.setFontVector(70).setFontAlign(0,0); - g.drawString(p.temperature.toFixed(1), x, y); + g.drawString(p.temperature.toFixed(1) + "°C", x, y); } function drawTemperature() { @@ -23,6 +23,6 @@ setInterval(function() { drawTemperature(); }, 20000); drawTemperature(); -E.showMessage("Loading..."); +E.showMessage("Reading temperature..."); Bangle.loadWidgets(); -Bangle.drawWidgets(); \ No newline at end of file +Bangle.drawWidgets(); From cd674865479142016b7cb51844b75fbb7f91305f Mon Sep 17 00:00:00 2001 From: Marco H Date: Mon, 29 Nov 2021 10:25:14 +0100 Subject: [PATCH 53/58] Update ChangeLog --- apps/thermom/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/thermom/ChangeLog b/apps/thermom/ChangeLog index 78fed5826..544382f29 100644 --- a/apps/thermom/ChangeLog +++ b/apps/thermom/ChangeLog @@ -1 +1,2 @@ 0.02: New App! +0.03 Improved messages and added Celsius sign From baba42ae25a9a90cc53aae0d99ad634d7e57df6c Mon Sep 17 00:00:00 2001 From: Marco H Date: Mon, 29 Nov 2021 10:36:31 +0100 Subject: [PATCH 54/58] Fix changelog syntax --- apps/thermom/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/thermom/ChangeLog b/apps/thermom/ChangeLog index 544382f29..6ab6ba8e5 100644 --- a/apps/thermom/ChangeLog +++ b/apps/thermom/ChangeLog @@ -1,2 +1,2 @@ 0.02: New App! -0.03 Improved messages and added Celsius sign +0.03: Improved messages and added Celsius sign From c9d0a199477bf6c6b39a852c73d71fca666adda2 Mon Sep 17 00:00:00 2001 From: Marco H Date: Mon, 29 Nov 2021 10:40:32 +0100 Subject: [PATCH 55/58] Add space after temperature value Add space after temperature value --- apps/thermom/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/thermom/app.js b/apps/thermom/app.js index 971ce8f56..7eae9b3d4 100644 --- a/apps/thermom/app.js +++ b/apps/thermom/app.js @@ -5,7 +5,7 @@ function onTemperature(p) { var y = g.getHeight()/2 + 10; g.drawString("Temperature:", x, y - 45); g.setFontVector(70).setFontAlign(0,0); - g.drawString(p.temperature.toFixed(1) + "°C", x, y); + g.drawString(p.temperature.toFixed(1) + " °C", x, y); } function drawTemperature() { From 075d7a840ca46181a72da0dc6ba667e64787b950 Mon Sep 17 00:00:00 2001 From: Marco H Date: Mon, 29 Nov 2021 10:43:42 +0100 Subject: [PATCH 56/58] Update apps.json --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index af798e293..43a5c4ac7 100644 --- a/apps.json +++ b/apps.json @@ -3893,8 +3893,8 @@ { "id": "thermom", "name": "Thermometer", - "version": "0.02", - "description": "Displays the current temperature, updated every 20 seconds", + "version": "0.03", + "description": "Displays the current temperature in degree Celsius, updated every 20 seconds", "icon": "app.png", "tags": "tool", "supports": ["BANGLEJS"], From d4f1e7d3cb2d79bb69405e46300afcf2eedaf4c7 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 29 Nov 2021 09:52:47 +0000 Subject: [PATCH 57/58] minor fixes for #952 --- apps/locale/locale.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 25acb2fff..90a2e8d40 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -181,7 +181,7 @@ function round(n) { var is12; function getHours(d) { var h = d.getHours(); - if (is12==undefined) is12 = (require('Storage',1).readJSON('setting.json')||{})["12hour"]; + if (is12===undefined) is12 = (require('Storage').readJSON('setting.json',1)||{})["12hour"]; if (!is12) return h; return (h%12==0) ? 12 : h%12; } From 33ce71f279162e61bf1be8247ed87c1f12331e89 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 29 Nov 2021 10:06:21 +0000 Subject: [PATCH 58/58] fix for sanity test errors --- apps.json | 4 ++-- apps/93dub/ChangeLog | 6 +++--- apps/pomodo/ChangeLog | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps.json b/apps.json index 6974c9e95..6d6c85bfd 100644 --- a/apps.json +++ b/apps.json @@ -4085,7 +4085,7 @@ "id": "pastel", "name": "Pastel Clock", "shortName": "Pastel", - "version": "0.06", + "version": "0.07", "description": "A Configurable clock with custom fonts and background", "icon": "pastel.png", "screenshots": [{"url":"screenshot_pastel.png"}], @@ -4378,7 +4378,7 @@ "shortName":"BinWatch", "icon": "app.png", "screenshots": [{"url":"screenshot.png"}], - "version":"0.03", + "version":"0.04", "supports": ["BANGLEJS2"], "readme": "README.md", "allow_emulator":true, diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index e7423b2c9..5fbfe4fa3 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1,3 +1,3 @@ -0.01 Initial version for upload -0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) -0.03 Code style cleanup +0.01: Initial version for upload +0.02: DiscoMinotaur's adjustments (removed battery and adjusted spacing) +0.03: Code style cleanup diff --git a/apps/pomodo/ChangeLog b/apps/pomodo/ChangeLog index 3630ae7b6..2fedc39e3 100644 --- a/apps/pomodo/ChangeLog +++ b/apps/pomodo/ChangeLog @@ -1,2 +1,2 @@ -0.02: Ported to Banglejs2. 0.01: New App! +0.02: Ported to Banglejs2.