From e2c7116fad5bbd408669f370049192248b76296e Mon Sep 17 00:00:00 2001 From: Tom Wallroth Date: Wed, 10 Apr 2024 22:00:41 +0200 Subject: [PATCH] wip --- apps/lift/app-icon.js | 1 - apps/lift/app.png | Bin 6261 -> 0 bytes apps/lift/metadata.json | 15 ----- apps/lift/screenshot.png | Bin 3971 -> 0 bytes apps/lift/screenshot2.png | Bin 2841 -> 0 bytes apps/lift/screenshot3.png | Bin 3250 -> 0 bytes apps/lift/screenshot4.png | Bin 2989 -> 0 bytes apps/{lift => rest}/ChangeLog | 0 apps/{lift => rest}/README.md | 6 +- apps/rest/app-icon.js | 1 + apps/rest/app.png | Bin 0 -> 5761 bytes apps/rest/metadata.json | 15 +++++ apps/{lift/lift.app.js => rest/rest.app.js} | 63 ++++++++++++++------ apps/rest/screenshot2.png | Bin 0 -> 2809 bytes apps/rest/screenshot3.png | Bin 0 -> 2589 bytes 15 files changed, 63 insertions(+), 38 deletions(-) delete mode 100644 apps/lift/app-icon.js delete mode 100644 apps/lift/app.png delete mode 100644 apps/lift/metadata.json delete mode 100644 apps/lift/screenshot.png delete mode 100644 apps/lift/screenshot2.png delete mode 100644 apps/lift/screenshot3.png delete mode 100644 apps/lift/screenshot4.png rename apps/{lift => rest}/ChangeLog (100%) rename apps/{lift => rest}/README.md (66%) create mode 100644 apps/rest/app-icon.js create mode 100644 apps/rest/app.png create mode 100644 apps/rest/metadata.json rename apps/{lift/lift.app.js => rest/rest.app.js} (79%) create mode 100644 apps/rest/screenshot2.png create mode 100644 apps/rest/screenshot3.png diff --git a/apps/lift/app-icon.js b/apps/lift/app-icon.js deleted file mode 100644 index f335b8cb2..000000000 --- a/apps/lift/app-icon.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("mEwgf/ABH7tu27YCCCBP+BwYCCv4RI+wRGt4RQtoLCgEPCIYLCLIUWCOO0gEtI5wR/COoABj6hOAAMDCL4AFCIQCFCJH2CLFvCJH+CKH/CI1/CJI/OBAX0yVJkgCBl///pgF24IBBwQCD3/tQ43/9IRGy4RH74RISwwRBBwgCDBwTOChoRDyAICgIRQhIRXmxHGpEAiRHGCKI1GCNxZjCP4RGAQgRDAQoRI9IRH9oRPy/9CI3//oRG3//CIoHB//0CIkl/4=")) diff --git a/apps/lift/app.png b/apps/lift/app.png deleted file mode 100644 index c87417289267678ba22d817a5e4293c5eb3ff311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6261 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 M^IE48hfO>F57cy)W&i*H diff --git a/apps/lift/metadata.json b/apps/lift/metadata.json deleted file mode 100644 index 0c14df0c1..000000000 --- a/apps/lift/metadata.json +++ /dev/null @@ -1,15 +0,0 @@ -{ "id": "lift", - "name": "Lift - Workout Timer App", - "shortName":"Lift", - "version": "0.01", - "description": "Rest and Set counter for workout, fitness and lifting things.", - "icon": "app.png", - "screenshots": [{"url": "screenshot.png"}, {"url": "screenshot2.png"}, {"url": "screenshot3.png"}, {"url": "screenshot4.png"}], - "tags": "workout,weight lifting,rest,fitness,timer", - "supports" : ["BANGLEJS2"], - "readme": "README.md", - "storage": [ - {"name":"lift.app.js","url":"lift.app.js"}, - {"name":"lift.img","url":"app-icon.js","evaluate":true} - ] -} diff --git a/apps/lift/screenshot.png b/apps/lift/screenshot.png deleted file mode 100644 index 891dce5e52daa8735cbf0d7292e6857d8e2f52b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3971 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 W-4udQq;mTXz~Zvar8=xv(tiL;E%6or diff --git a/apps/lift/screenshot4.png b/apps/lift/screenshot4.png deleted file mode 100644 index a3d655d09d49d160e3dcaf78034dffe4d56b0530..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2989 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 E8)lzz$p8QV literal 0 HcmV?d00001 diff --git a/apps/rest/metadata.json b/apps/rest/metadata.json new file mode 100644 index 000000000..bdce75cd6 --- /dev/null +++ b/apps/rest/metadata.json @@ -0,0 +1,15 @@ +{ "id": "rest", + "name": "Rest - Workout Timer App", + "shortName":"Rest", + "version": "0.01", + "description": "Rest timer and Set counter for workout, fitness and lifting things.", + "icon": "app.png", + "screenshots": [{"url": "screenshot1.png"}, {"url": "screenshot2.png"}, {"url": "screenshot3.png"}], + "tags": "workout,weight lifting,rest,fitness,timer", + "supports" : ["BANGLEJS2"], + "readme": "README.md", + "storage": [ + {"name":"rest.app.js","url":"rest.app.js"}, + {"name":"rest.img","url":"app-icon.js","evaluate":true} + ] +} diff --git a/apps/lift/lift.app.js b/apps/rest/rest.app.js similarity index 79% rename from apps/lift/lift.app.js rename to apps/rest/rest.app.js index e779a2908..4c4c5f434 100644 --- a/apps/lift/lift.app.js +++ b/apps/rest/rest.app.js @@ -50,14 +50,17 @@ const c4 = center(q4) const GREY_COLOR = '#CCCCCC'; const SET_COLOR = '#FF00FF'; +const SET_COLOR_MUTED = '#FF88FF'; const REST_COLOR = '#00FFFF'; -const REST_COLOR_MUTED = '#008888'; +const REST_COLOR_MUTED = '#88FFFF'; const RED_COLOR = '#FF0000'; const GREEN_COLOR = '#00FF00'; -const GREEN_COLOR_MUTED = '#008800'; +const GREEN_COLOR_MUTED = '#88FF88'; const BIG_FONT = "6x8:2x2"; +const HUGE_FONT = "6x8:3x3"; +const BIGHUGE_FONT = "6x8:6x6"; -function drawMainMenu() { +function drawMainMenu(splash) { g.setColor(REST_COLOR); roundRect(q1.x, q1.y, q1.x2, q1.y2, 20); g.setColor(SET_COLOR); @@ -67,12 +70,24 @@ function drawMainMenu() { g.setColor(GREEN_COLOR); roundRect(q4.x, q4.y, q4.x2, q4.y2, 20); g.setColor(-1) - g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfigure", c1.x, c1.y-25) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("REST\n" +restSeconds+ "s", c1.x, c1.y + 10) - g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfigure", c2.x, c2.y-25) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SETS\n" + setsCount, c2.x, c2.y + 10) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("Lift", c3.x, c3.y) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("GO", c4.x, c4.y) + + if (splash) { + g.setFont(BIGHUGE_FONT).setFontAlign(0,0).drawString("R", c1.x, c1.y) + g.setFont(BIGHUGE_FONT).setFontAlign(0,0).drawString("E", c2.x, c2.y) + g.setFont(BIGHUGE_FONT).setFontAlign(0,0).drawString("S", c3.x, c3.y) + g.setFont(BIGHUGE_FONT).setFontAlign(0,0).drawString("T", c4.x, c4.y) + } else { + g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfigure", c1.x, c1.y-25) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString(restSeconds+ "s", c1.x, c1.y) + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("REST", c1.x, c1.y + 25) + + g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfigure", c2.x, c2.y-25) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString(setsCount, c2.x, c2.y) + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SETS", c2.x, c2.y + 25) + + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("JUST\nDO\nIT", c3.x, c3.y) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString("GO", c4.x, c4.y) + } } function drawSetRest() { @@ -83,7 +98,9 @@ function drawSetRest() { g.setColor(GREEN_COLOR); roundRect(q4.x, q4.y, q4.x2, q4.y2, 20); g.setColor(-1) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("REST\n" +restSeconds+ "s", c1.x, c1.y) + g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfirm", c1.x, c1.y-25) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString(restSeconds+ "s", c1.x, c1.y) + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("REST", c1.x, c1.y + 25) // g.setFont(BIG_FONT).setFontAlign(0,0).drawString("OK", c2.x, c2.y) g.setFont(BIG_FONT).setFontAlign(0,0).drawString("-", c3.x, c3.y) g.setFont(BIG_FONT).setFontAlign(0,0).drawString("+", c4.x, c4.y) @@ -97,7 +114,9 @@ function drawSetSets() { g.setColor(GREEN_COLOR); roundRect(q4.x, q4.y, q4.x2, q4.y2, 20); g.setColor(-1) - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SETS\n" +setsCount, c2.x, c2.y) + g.setFont("6x8").setFontAlign(0,0).drawString("Tap to\nConfirm", c2.x, c2.y-25) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString(setsCount, c2.x, c2.y) + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SETS", c2.x, c2.y + 25) g.setFont(BIG_FONT).setFontAlign(0,0).drawString("-", c3.x, c3.y) g.setFont(BIG_FONT).setFontAlign(0,0).drawString("+", c4.x, c4.y) } @@ -110,7 +129,8 @@ function drawExercise() { g.setColor(GREEN_COLOR_MUTED); roundRect(q4.x, q4.y, q4.x2, q4.y2, 20); g.setColor(-1); - g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SET\n#"+currentSet, c2.x, c2.y) + g.setFont(BIG_FONT).setFontAlign(0,0).drawString("SET", c2.x, c2.y-25) + g.setFont(HUGE_FONT).setFontAlign(0,0).drawString("#"+currentSet, c2.x, c2.y) g.setFont(BIG_FONT).setFontAlign(0,0).drawString("PUSH >\nBUTTON\nWHEN\nDONE", c4.x, c4.y) } @@ -123,7 +143,7 @@ function circlePoints (cx, cy, r, points) { return circlePoints; } -const smallQ3Circle = [c2.x, c2.y].concat(circlePoints(c2.x, c2.y, (q2.y - q2.y2)/2, 60)); +const smallQ3Circle = [c2.x, c2.y].concat(circlePoints(c2.x, c2.y, ((q2.y - q2.y2)/2) + 10, 60)); function drawRest() { @@ -132,8 +152,10 @@ function drawRest() { g.setColor(REST_COLOR); roundRect(q1.x, q1.y, q1.x2, q1.y2, 20); - g.setColor(-1).setFont(BIG_FONT).setFontAlign(0,0).drawString(secondsRemaining, c1.x, c1.y) + g.setColor(-1).setFont(HUGE_FONT).setFontAlign(0,0).drawString(secondsRemaining, c1.x, c1.y) + g.setColor(SET_COLOR_MUTED); + roundRect(q2.x, q2.y, q2.x2, q2.y2, 20); const factor = 1 - secondsRemaining / restSeconds; const circleParts = (((factor * smallQ3Circle.length) | 0) >> 1) << 1 const poly = smallQ3Circle.slice(0, circleParts + 2) @@ -175,18 +197,19 @@ function drawDoIt() { g.setFont(BIG_FONT) g.setColor(0); setTimeout(() => { - g.drawString('just', 40, 20); + g.setFontAlign(0, 0) + g.drawString('just ', R.x2/2, 20); Bangle.buzz(150, 0.5); }, 200); setTimeout(() => { g.drawImage(getImg(), 22, 44, {scale: 1.5}); - g.drawString('DO', 100, 20); + g.drawString(' DO ', R.x2/2, 20); Bangle.buzz(200); }, 1000); setTimeout(() => { - g.drawString('IT', 150, 20); + g.drawString(' IT', R.x2/2, 20); Bangle.buzz(200); - }, 1300); + }, 1400); setTimeout(() => { setMode(MAIN_MENU); redrawApp(); @@ -293,5 +316,7 @@ Bangle.on('touch', (button, xy) => { } }); -redrawApp(); +g.clear(); +drawMainMenu(true); +setTimeout(redrawApp, 1000); diff --git a/apps/rest/screenshot2.png b/apps/rest/screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..e878fea96f3b6961fb9ab021566766af93f030c9 GIT binary patch literal 2809 zcmXYz3pmr?AIE15VMvDNI_2(1h4>*dBo$?BE)z>>Vs6Q8h+$dy@hg-P#VXp+Tyn{6 zE;UL?X;zk8lsxOEY8*FrZeQZzkm^Jg7H?x`Ym;r6!E`vpy_69A@bBPlGw`tl%jQQX zp2pU+O!RaedQ!D3yvWl^z$d}-i_@tO3Iib(2fiO+YIap+N|2*$L)Q7Ai3;GT2ovgT zRx2UI+uA=_^+r zpq%IPg0^v@=hNl9OkK{m3wAgpRCRfVTXd&?B_sUd3MXTQxiqdX+rjrO$oZ0~p%17> zJ#=-mc<5*&kGtD5YDIu3akm;CJQGR4N|OKKq<6?rc+uLnweKumnizJcIa`w6UThj)54Izv4o~pm z(7!qONDVytDD})gDUXWJ)(Bo*f7k@7#Pi(uUNCPtZbyH&+`LrSsg8EyuZn4cGg~Ac z8Qj$5U6jQ;^Q51gisO*pgLCth$Kt8U72rMdIyxdg4_wR4RmABqcE1#!fyrr2aX@sK zUwHgCkw#M{W-?EQK@+XexAKq(pG)i-sPk)XkQ^>=-_39?XVUozkOCXho$DWt1wjg2 zNO(T!{L2yy*q}&yZhe0pz*sF6YF-8SC#-f;h1Fc}k9w$Yj1B{~F|dOrl`)<98n^Nc zRyQXGgqn?VNFV;R@p+cxf4~QgxT_^%oK6w*3UF|IMc4@6HJ(|!!&SX$OaIG|0ymPY zz+mvyO6rbu&JPQ2Dv18L&2`;%oIHq>Z&IXYo?GOhz5lhF4TYAvj@CBc#wt#JhB?RG z)CpNRE?Hd*KL4CKvV-@Z>>gD~(h7@2jFL?R=E^}0qJ^$A*a*a;2;;S&=a_div{W16 zvA#-g>12Shr1JqE>HLkaeQ4}ph~tT(uU(7CIauUtizCkWaQ$!H>O_ya%ldSrrJM0_ z;BGHFpIxMU=EHnRpl>$>Le0037huxmq}9~z0eEixm_dGW1Ni@AVeA9jGhtCa5T))O zwb6z@!%RuJz=GOD2oSvvhn8$W$kJk3FBPCCCGVydprG4%bfF!|h2e0Pk2<~1Ge1^vto z;%n3<{0PI6!b_Eim0;QX5-siwk=d?s-tgYpeZSnS%1+Za1Fm*~zJLgnZGE3ygteG; zzoE&-N0<(Sn_>OmYlM8YRHZ!A&>ib4ArEN8EbmJY}8gjg&;=aN! z!j7i(mkx+VeysP17PFlEOHq@Yl_QrT5j&(JFeq7zc-yC;D;8>Yy2IEP1(Kg~rR+0| zK485A*8z_Q>tQ8A@qJ5iy$^hq&R^~QsA8-<;Bkiojlx@ii^5LStsCra1SgeCeEd6T*<$bVvS(gj#gYuhV|eki#DQfv%*i6B_dV{N1Pg zpC|(E!^!1tbQ*(G z%&OK9&^ODFCRk>0&?4-%?Eu*^*RaPJ+{4x&>uk^LZq00`Z8K|*o{jOnirb}as<}ms zC0J$|sc*j5wkw0W%&c=KInjPkYd+At?PMFcnKrf(-sXo*9(aHA5P?(R428(BCbi6ya?bF%&71Z%(+tAM%L z`%hVkTUor1T6#0AOZDW>)QFPVaGAY;1Z8q9S~s zll8G5NtF^;=GI313k#i#gqnCe7>9Smg;6SlWlT+KTj=qFw>BnfLyFS+gQt>1D$9wm z;%6n=@til$JoM?kHxIC+G^(Ag6Q#Ay3gVVizUv?&pt=I9-7plx=^KBdeOzeaYOf;X zVk~A-6<7P7@vofE7iKUs3oE5{1W;ca$cAR)!^+w^JL(zJ1PYAKytNU$@u03=P$`i^ zcb0K{8sbj2UGCc&3az$)M?yUX26xqns@AS2G?q!G`7~a}t!CZiqG(;S3 zaS>>h8I$;(^0tg=%UsiBAR=U^pi$S)770mZvUUwv#i;FebA^P1I_(FOvi`XrFe#SP zT2DX`Sgk=2ad7TY<7|cOJ`;D6fs5emsjQ^eG8_{kZ6dRZMVuEjd=2;Gjn}!6hR*Hd z5VJavw8e%>yJm35B7fD;nc){Ir&0${E^9s~cd@c(1HAf`vUO!QHs zlri^99jMWL)G6Njf_81)ZUG%~qoQ!REqqMK@q)eMf`in#ady%HQKR9Yl~*Bj!Bg8# zZ>B3UU~;}_!}4>(kyDA>H7_y0iITNf;4~1iSYE*DhJuy?oE`C3@6NrucI?|6zzbcd zS8P~VEdHwxOkqJ(OBZgp`!&Dah#Qp}la>7aAP|G;d7e98tDGYKy};81S~oC4H z{na=k^JJm}Mp8h_t+=#I9RF?k`rEBG%9^ZVEtpCXWl_7V)^yX$?!$$5`^t=OSVW8( zF(gqlsSYBQ0j)4zzLq1bIESysNB22bOct-PS30WrY2VS|l z_ssx}L5OV#(ln%B|$B^`6da5R|q?9LJ zW*^ie*ETip3d-4*;9?_$W7w?Zagc$NHe=r5cj@vV;GxG+kcg@_xf8C3`vpy;%8(;| zAD4nAgO*3qUM HiA($sk$FXM literal 0 HcmV?d00001 diff --git a/apps/rest/screenshot3.png b/apps/rest/screenshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..28d94eb91ee4c8bf963ed5346510432180de3c5e GIT binary patch literal 2589 zcmchZ`#02EAIHCQ@kPy?qS7Fwspq8BAu-i)%iTej3CSE9=`=25CQU-5`KCf{Ny))T zM{b#M$!#$B=9D>=OUR6-FozB?E+a9*aOQc|dY(Vv{P66x_I|JTYk%JRhrRY^t(|b< zm?L(b);a(Hu+C0)M1@xTd#ZqnwY=_=uR;(EqN5E^*12t5VbBa4XLl9Fh*mit4*;rs zXS<{B5x!Hb#7m!w)s^^bYu&OG9zKo@_N_mG7>`d*9@y_2H@W#8Gy`s8ni+2cA!@`!aFjs<4Q8M#)H;kxo75KQlVrbByVQ#zj2ZggMGvf3rKxlKLDE z!=>EY@+hagQl7g#A*^oU0kaf9m1CXL6T)N5`>w7h5fzaTX>Q-1cv8q{nfzld$h^kZ zAe8{CtMlE%EjgcSER&&1dQyPeuy1ywOUpe7!NtRk)`BROFzQc9TqKhK&WxPl$_i^I z&)(7hono@uF)P%>F$-9|O}-Wm)i>D$yM}`1xubXtdqC%`kD7SPpH2MUWw)@YH5z$R z5?dpf*!sfcd6dm?vcJ&_D@PSzVcM&HAnq3B2G?V=g@azJ5RmGpw=HXy@5mRg{m|B$oA*d;*BeIh^A`=z3iLKe-VP!td}zarDNPK(Q#&gOQS4jkOD+-GMsN+Z-cwl*S^ILC$!jfOr#r{2_p;-!>@$56L5L$FYk+v3o``Hd1BZ)pZ->c09(=N=W zX(^GX}I|rAdn00VF4(|zkJsx|kvl)YaJPX4Qd@ll(yGzUFYis&<`P%`UCZdZL)IFtm| zHlHyO(!)W4b$C;cxy6P)-?V3%hfMAY>O-!93$4_^IEdpUnlP3==C`bQu17qWK0gLoBz#^jNyF;3#xSH8>&nk<6~yjFiFsIw`m@w6V8E@ z$pX5{e}O{(nK$o;`JUd*^WAjG*i8M>%TtykdCN($_j{Gn9;Kc_UTh>BQzHkSiWmT8 zEmKJGm5-}mZ$kWSdd&q~FE z)+X)Ds)|Pe-OUuPMayUIQnuXzBOn~a#mk30_ftFgYB#DXHjp1&EB7g_>$25uJs!F9WZmwd+NwC9g7c8KY?P8CuynUSWJ})fm5R( zdC;hBSz(NzH0x3H#Lyr8lLoe5*WHUuKb@-$`bLHmytF}DbisS(ukJ1{;F8+dS6-VI zS7P0?v<a2`ti&(eFUamv!ChGO#Giug0S3Adtbue7H(>4s>3ku|G3S|gSuwc2OX{u=*b15 zh^3y+D)%@DKW<8kqOQ)5E$-cBZsi%zo;N_y=J%a7kS-r0%D*+#vTCO-X{GZ~WN!IM z@42v~y**{IMJ>9Sph&Ax}E_m+U!VjENSAAX|^=}P!8;=gOXteyr^T67G zlz)AwBc^Vx*F*nm!R`x!VS1^IsuALpXOHYn9*neeOEDayN znCh-QuUW5uzwm9a=P4i1sINXF(yTkvKWmFLC@Ul z8xUuF1G~=r-ZNdLvTIRo30Vh4tB&qtZaD%&BCC(-t?O;obXTBu&8Knys~j1HBXB(L zxOO`GVGOA#GB;R97NcZvrcvnyj;j>NT9Rg-%=*b0Eecf}WmWXJDdE1Ly8}MS;Pm)5 zB8V)0uF%q=>rSx0!{ZR_jI8h07_4r?i_x|920jk=OC?y*5{7r@XubqkHdZBzjSrjr zRD{m5QclSVez3q=NTktK$>h74M-UjEIDEM9UpM-Eqf!-}pL#%KI5G)2u6jI0bhd21!1YJc zm=xn*N+YLL_?X};DD&TkGe?$G0qIf{@9R25#Q2oY_0TnCW#!may_C%3iZ34EY=6wI I%!Yj9Z}HsiNdN!< literal 0 HcmV?d00001