From ea9f71031f76fb02314c0016376caef80c99b6d9 Mon Sep 17 00:00:00 2001 From: MomentumV Date: Sun, 9 Feb 2025 22:30:13 -0500 Subject: [PATCH] Add v0.1 of daymoon clock --- apps/daymoon/ChangeLog | 0 apps/daymoon/README.md | 3 + apps/daymoon/app-icon.js | Bin 0 -> 1027 bytes apps/daymoon/app.js | 162 ++++++++++++++++++++++++++++++++++++ apps/daymoon/icon.png | Bin 0 -> 1660 bytes apps/daymoon/metadata.json | 18 ++++ apps/daymoon/screenshot.png | Bin 0 -> 4446 bytes 7 files changed, 183 insertions(+) create mode 100644 apps/daymoon/ChangeLog create mode 100644 apps/daymoon/README.md create mode 100644 apps/daymoon/app-icon.js create mode 100644 apps/daymoon/app.js create mode 100644 apps/daymoon/icon.png create mode 100644 apps/daymoon/metadata.json create mode 100644 apps/daymoon/screenshot.png diff --git a/apps/daymoon/ChangeLog b/apps/daymoon/ChangeLog new file mode 100644 index 000000000..e69de29bb diff --git a/apps/daymoon/README.md b/apps/daymoon/README.md new file mode 100644 index 000000000..ffb33ef69 --- /dev/null +++ b/apps/daymoon/README.md @@ -0,0 +1,3 @@ +# FairBangle +This started out with a goal to recreate the Fair Circadian watchface from Pebble for the Bangle.js2. +It ended up with me making a mostly new watchface that has the moon phase more prominent, but keeps the single dial 24 hour clock with daylight and sunset highlighted. diff --git a/apps/daymoon/app-icon.js b/apps/daymoon/app-icon.js new file mode 100644 index 0000000000000000000000000000000000000000..47663be0c38d52ffb95e7be2445bcac124bfab0b GIT binary patch literal 1027 zcmV+e1pNDnP)Px&y-7qtRA@u(S?zM{AP7y~|Dkh75rqQ??(Us!XWBoVRHFjt1JnDuuICaz&!Zl% z`@ZGy_2b6>0{C`?etiWV0QDy@-@Aq;qxascYh)PJ}e)sqiSeD`{j*;R?L`A z6ZlpDX{N_1DF|B$`Th$2O!Zz2;2H2>n80r(yzTVCJotNi?YIIbB&Lk*Gdah{!sYpr zGn|02-CQm1}qIZo)?cLG@e zgv){9$ux^;-s+^)SW?@beN1w|S@<}B%u!d6q)t?FsaC979o+;Bp)TruyT11Tqd=;Z211?>c)BlDz*8HoKCf{=`$X*63PKpbkmAXDe5NXRsFr_R z+K~A`#E+==D)_)63^grF!iJCuoktFw`2cc&pOqS!u2u_&@qwOkqm^C|>+s75IP+_T zQx4$a)lvGg5CD?6zW_HWx*z)Hr6I)*{5l7aYaKG;JWg))hpjnbS)Y1G5?E(r!ACmt zDF>uX%Ve^grAEeDOB;_qG3s5M-shwj@;Jch^!K+Ns%a%6Rgl=Ub0qdq=n1pZS6!=B5`~K7f_CNSIuyTxh%l=uBAk;SWP69EdJFQ3ARq#ZK&TAXB5) zeZW;8;Gh>^`dw&;S;V6^w^D)V3X1Ew0p#7NtwfCj!?#PAr@0vic#aHgbD`Py`t~a6 z*J@XR4D;TKsSjWi#kU|&m+=5zW!Aky-v=s~#}44A0&;`Qon@v>hEDzg61e|%{hEws zy1X3n+8R#B2jt+I+#o!Lc1>1,32); + //this gives r/2 pts on the way down and up, capped at 64 total for polyfill + let a=[],b=[],s1=1,s2=0; + // scale s1 is 1 or -1 for fixed edge of the shadow; defined via case switches below + // scale s2 factor for the moving edge of the shadow + // need to do some computation to simplify for new/full moon if k 'close enough' to 0 or 1/-1 + // + let isWaxing=(mp.phase<0.5); + s1 = isWaxing ? -1 : 1; + s2 = isWaxing ? 1-2*k : 2*k-1; + let tr =(pos.r+0.5); + for (var i=0;i{ + if (secondInterval) clearInterval(secondInterval); + secondInterval = undefined; + if (on) { + secondInterval = setInterval(draw, 10000); //was 1000 + draw(); // draw immediately + } +}); +/* Show launcher when middle button pressed +This should be done *before* Bangle.loadWidgets so that +widgets know if they're being loaded into a clock app or not */ +Bangle.setUI("clock"); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); \ No newline at end of file diff --git a/apps/daymoon/icon.png b/apps/daymoon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f9cd8417826f35b096abdcbfbab4e22b622d163f GIT binary patch literal 1660 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 literal 0 HcmV?d00001