From 82f95e0cefcb88b00e621e585cf43bb4e6319425 Mon Sep 17 00:00:00 2001 From: czeppi Date: Mon, 31 Mar 2025 07:57:29 +0200 Subject: [PATCH 1/3] 1st version --- apps/cc_astro/ChangeLog | 1 + apps/cc_astro/README.md | 17 +++ apps/cc_astro/app.js | 202 ++++++++++++++++++++++++++++++ apps/cc_astro/app_icon.js | 1 + apps/cc_astro/cc_astro_icon.png | Bin 0 -> 4002 bytes apps/cc_astro/cc_astro_screen.png | Bin 0 -> 3710 bytes apps/cc_astro/metadata.json | 18 +++ apps/cc_astro/settings.js | 33 +++++ 8 files changed, 272 insertions(+) create mode 100644 apps/cc_astro/ChangeLog create mode 100644 apps/cc_astro/README.md create mode 100644 apps/cc_astro/app.js create mode 100644 apps/cc_astro/app_icon.js create mode 100644 apps/cc_astro/cc_astro_icon.png create mode 100644 apps/cc_astro/cc_astro_screen.png create mode 100644 apps/cc_astro/metadata.json create mode 100644 apps/cc_astro/settings.js diff --git a/apps/cc_astro/ChangeLog b/apps/cc_astro/ChangeLog new file mode 100644 index 0000000000..507df8921b --- /dev/null +++ b/apps/cc_astro/ChangeLog @@ -0,0 +1 @@ +0.01: copied from cc_abstract (V0.01) diff --git a/apps/cc_astro/README.md b/apps/cc_astro/README.md new file mode 100644 index 0000000000..b328251b53 --- /dev/null +++ b/apps/cc_astro/README.md @@ -0,0 +1,17 @@ +# Analog Clock With Abstract Face + +## Features + +* inspired from the abstract face of the google smartwatch +* second hand (only on unlocked screen) +* date +* battery percentage (showing charge status with color) +* turned off or swipeable widgets (choose in settings) + +![logo](cc_clock24_screen.png) + +## Settings + +* whether to load widgets, or not; if widgets are loaded, they are swipeable from the top; if not, NO ACTIONS of widgets are available +* date and battery can be printed both below hands (as if hands were physical) and above (more readable) +* hour hand can be made slighly shorter to improve readability when minute hand is behind a number diff --git a/apps/cc_astro/app.js b/apps/cc_astro/app.js new file mode 100644 index 0000000000..3e437bd302 --- /dev/null +++ b/apps/cc_astro/app.js @@ -0,0 +1,202 @@ +// ----- const ----- + +const defaultSettings = { + loadWidgets : false, + textAboveHands : false, + shortHrHand : false, + show24HourMode : false +}; + +const settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_abstract.json', 1) || {}); + +const center = { + "x": g.getWidth()/2, + "y": g.getHeight()/2 +}; + +const parameters = { + "earthOrbitRadius": 80, + "venusOrbitRadius": 60, + "mercuryOrbitRadius": 40, + "earthRadius": 8, + "venusRadius": 6, + "mercuryRadius": 4, + "sunRadius": 12, + "maxSunRadius": 115 +}; + +// ----- global vars ----- + +let drawTimeout; +let queueMillis = 1000; +let unlock = true; +let lastBatteryStates = [E.getBattery()]; + +// ----- functions ----- + +function updateState() { + updateBatteryStates(); + + if (Bangle.isLCDOn()) { + if (!Bangle.isLocked()) { + queueMillis = 1000; + unlock = true; + } + else { + queueMillis = 60000; + unlock = false; + } + draw(); + } + else { + if (drawTimeout) + clearTimeout(drawTimeout); + drawTimeout = undefined; + } +} + +function updateBatteryStates() { + lastBatteryStates.push(E.getBattery()); + if (lastBatteryStates.length > 5) + lastBatteryStates.shift(); // remove 1st item +} + +function draw() { + drawBackground(); + drawHands(); + queueDraw(); +} + +function drawBackground() { + clearScreen(); + drawSun(); +} + +function clearScreen() { + g.setBgColor(0, 0, 0); + g.clear(); +} + +function drawSun() { + const batteryState = calcAvgBatteryState(); + + if (batteryState <= 25) + g.setColor(1, 0, 0); // red sun, if battery low + else + g.setColor(1, 1, 0); + + let r = parameters.sunRadius; + if (batteryState <= 20) { + const relSize = (20 - batteryState) / 20; + const dr = parameters.maxSunRadius - parameters.sunRadius; + r = parameters.sunRadius + relSize * dr; + } + + g.fillCircle(center.x, center.y, r); +} + +function drawHands() { + const date = new Date(); + + drawHourHand(date.getHours(), date.getMinutes()); + drawMinuteHand(date.getMinutes()); + + if (unlock) { + drawSecondHand(date.getSeconds()); + } +} + +function drawHourHand(hours, minutes) { + const r = parameters.earthOrbitRadius; + const phi = 30 * (hours + minutes/60) * (Math.PI / 180) - Math.PI/2; + const x = center.x + r * Math.cos(phi); + const y = center.y + r * Math.sin(phi); + + g.setColor(1, 1, 1); + g.drawCircle(center.x, center.y, r); + + g.setColor(0, 1, 1); + g.fillCircle(x, y, parameters.earthRadius); +} + +function drawMinuteHand(minutes) { + const r = parameters.venusOrbitRadius; + const phi = 6 * minutes * (Math.PI / 180) - Math.PI/2; + const x = center.x + r * Math.cos(phi); + const y = center.y + r * Math.sin(phi); + + g.setColor(1, 1, 1); + g.drawCircle(center.x, center.y, r); + + g.setColor(1, 1, 1); + g.fillCircle(x, y, parameters.venusRadius); +} + +function drawSecondHand(seconds) { + const r = parameters.mercuryOrbitRadius; + const phi = 6 * seconds * (Math.PI / 180) - Math.PI/2; + const x = center.x + r * Math.cos(phi); + const y = center.y + r * Math.sin(phi); + + g.setColor(1, 1, 1); + g.drawCircle(center.x, center.y, r); + + g.setColor(1, 0, 1); + g.fillCircle(x, y, parameters.mercuryRadius); +} + +function calcAvgBatteryState() { + const n = lastBatteryStates.length; + if (n == 0) + return 100; + + let sum = lastBatteryStates.reduce((acc, value) => acc + value, 0); + return Math.round(sum / n); +} + +function queueDraw() { + if (drawTimeout) + clearTimeout(drawTimeout); + + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, queueMillis - (Date.now() % queueMillis)); +} + + +//// main running sequence //// + +// Show launcher when middle button pressed, and widgets that we're clock +Bangle.setUI({ + mode: "clock", + remove: function() { + Bangle.removeListener('lcdPower', updateState); + Bangle.removeListener('lock', updateState); + Bangle.removeListener('charging', draw); + + // We clear drawTimout after removing all listeners, because they can add one again + if (drawTimeout) + clearTimeout(drawTimeout); + + drawTimeout = undefined; + require("widget_utils").show(); + } +}); + +// Load widgets if needed, and make them show swipeable +if (settings.loadWidgets) { + Bangle.loadWidgets(); + require("widget_utils").swipeOn(); +} +else if (global.WIDGETS) { + require("widget_utils").hide(); +} + +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower', updateState); +Bangle.on('lock', updateState); +Bangle.on('charging', draw); // Immediately redraw when charger (dis)connected + +updateState(); +draw(); diff --git a/apps/cc_astro/app_icon.js b/apps/cc_astro/app_icon.js new file mode 100644 index 0000000000..b213fe5c8f --- /dev/null +++ b/apps/cc_astro/app_icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwgIEBoUAiAKCgUCBQUEColEAYUQhAmKCwgeCAAcCgEDjwEBkEAg8TBocNgYFDh8GAYMDxkPjEA8EAwkHJgIcBAoPfAoYWCBYYFIgfvAoX4FYRJEAp9gAomYNAOAArPwAogAC4AFiRoIFJLgIFJuADCg//Q4U//4FDj4FEAAV4Aoi0CSxBsCA==")) \ No newline at end of file diff --git a/apps/cc_astro/cc_astro_icon.png b/apps/cc_astro/cc_astro_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cded02071d3610f442f0ce327f01943a2c915753 GIT binary patch literal 4002 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 literal 0 HcmV?d00001 diff --git a/apps/cc_astro/metadata.json b/apps/cc_astro/metadata.json new file mode 100644 index 0000000000..2c053d2c6f --- /dev/null +++ b/apps/cc_astro/metadata.json @@ -0,0 +1,18 @@ +{ "id": "cc_astro", + "name": "CC Astro", + "shortName":"CC-Astro", + "version":"0.01", + "description": "astronomy clock face", + "icon": "cc_astro_icon.png", + "type": "clock", + "tags": "clock", + "supports" : ["BANGLEJS2"], + "screenshots": [{"url":"cc_astro_screen.png"}], + "readme": "README.md", + "storage": [ + {"name":"cc_astro.app.js","url":"app.js"}, + {"name":"cc_astro.settings.js","url":"settings.js"}, + {"name":"cc_astro.img","url":"app_icon.js","evaluate":true} + ], + "data": [{"name":"cc_astro.json"}] +} diff --git a/apps/cc_astro/settings.js b/apps/cc_astro/settings.js new file mode 100644 index 0000000000..4aa19215d1 --- /dev/null +++ b/apps/cc_astro/settings.js @@ -0,0 +1,33 @@ +(function(back) { + const defaultSettings = { + loadWidgets : false, + textAboveHands : false, + shortHrHand : false, + show24HourMode : false + } + let settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_clock24.json',1) || {}); + + const save = () => require('Storage').write('cc_clock24.json', settings); + + const appMenu = { + '': {title: 'cc_clock24'}, '< Back': back, + /*LANG*/'Load widgets': { + value : !!settings.loadWidgets, + onchange : v => { settings.loadWidgets=v; save();} + }, + /*LANG*/'Text above hands': { + value : !!settings.textAboveHands, + onchange : v => { settings.textAboveHands=v; save();} + }, + /*LANG*/'Short hour hand': { + value : !!settings.shortHrHand, + onchange : v => { settings.shortHrHand=v; save();} + }, + /*LANG*/'Show 24 hour mode': { + value : !!settings.show24HourMode, + onchange : v => { settings.show24HourMode=v; save();} + }, + }; + + E.showMenu(appMenu); +}) From b40c65ddf07bd39249a6b8c7c864a78fb073c278 Mon Sep 17 00:00:00 2001 From: czeppi Date: Tue, 1 Apr 2025 07:27:38 +0200 Subject: [PATCH 2/3] add screenshots and tidy up --- apps/cc_astro/ChangeLog | 2 +- apps/cc_astro/README.md | 18 +++++----------- apps/cc_astro/app.js | 18 ---------------- apps/cc_astro/app_icon.js | 2 +- apps/cc_astro/app_icon.png | Bin 0 -> 1729 bytes apps/cc_astro/cc_astro_icon.png | Bin 4002 -> 0 bytes apps/cc_astro/cc_astro_screen.png | Bin 3710 -> 0 bytes apps/cc_astro/metadata.json | 21 +++++++++++-------- apps/cc_astro/screenshot1.png | Bin 0 -> 1773 bytes apps/cc_astro/screenshot2.png | Bin 0 -> 1473 bytes apps/cc_astro/screenshot3.png | Bin 0 -> 1859 bytes apps/cc_astro/settings.js | 33 ------------------------------ 12 files changed, 19 insertions(+), 75 deletions(-) create mode 100644 apps/cc_astro/app_icon.png delete mode 100644 apps/cc_astro/cc_astro_icon.png delete mode 100644 apps/cc_astro/cc_astro_screen.png create mode 100644 apps/cc_astro/screenshot1.png create mode 100644 apps/cc_astro/screenshot2.png create mode 100644 apps/cc_astro/screenshot3.png delete mode 100644 apps/cc_astro/settings.js diff --git a/apps/cc_astro/ChangeLog b/apps/cc_astro/ChangeLog index 507df8921b..1678d5285e 100644 --- a/apps/cc_astro/ChangeLog +++ b/apps/cc_astro/ChangeLog @@ -1 +1 @@ -0.01: copied from cc_abstract (V0.01) +0.01: First functional release diff --git a/apps/cc_astro/README.md b/apps/cc_astro/README.md index b328251b53..5343a64026 100644 --- a/apps/cc_astro/README.md +++ b/apps/cc_astro/README.md @@ -1,17 +1,9 @@ -# Analog Clock With Abstract Face +# Astronomy Clock ## Features -* inspired from the abstract face of the google smartwatch -* second hand (only on unlocked screen) -* date -* battery percentage (showing charge status with color) -* turned off or swipeable widgets (choose in settings) +* shows earth as hour and venus as minute hand +* shows mercury as second hand only on unlocked screen +* if battery is low, the sun will become to a red giant -![logo](cc_clock24_screen.png) - -## Settings - -* whether to load widgets, or not; if widgets are loaded, they are swipeable from the top; if not, NO ACTIONS of widgets are available -* date and battery can be printed both below hands (as if hands were physical) and above (more readable) -* hour hand can be made slighly shorter to improve readability when minute hand is behind a number +![logo](screenshot1.png) diff --git a/apps/cc_astro/app.js b/apps/cc_astro/app.js index 3e437bd302..89dadbdd72 100644 --- a/apps/cc_astro/app.js +++ b/apps/cc_astro/app.js @@ -1,14 +1,5 @@ // ----- const ----- -const defaultSettings = { - loadWidgets : false, - textAboveHands : false, - shortHrHand : false, - show24HourMode : false -}; - -const settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_abstract.json', 1) || {}); - const center = { "x": g.getWidth()/2, "y": g.getHeight()/2 @@ -184,15 +175,6 @@ Bangle.setUI({ } }); -// Load widgets if needed, and make them show swipeable -if (settings.loadWidgets) { - Bangle.loadWidgets(); - require("widget_utils").swipeOn(); -} -else if (global.WIDGETS) { - require("widget_utils").hide(); -} - // Stop updates when LCD is off, restart when on Bangle.on('lcdPower', updateState); Bangle.on('lock', updateState); diff --git a/apps/cc_astro/app_icon.js b/apps/cc_astro/app_icon.js index b213fe5c8f..5c8e704bf1 100644 --- a/apps/cc_astro/app_icon.js +++ b/apps/cc_astro/app_icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwgIEBoUAiAKCgUCBQUEColEAYUQhAmKCwgeCAAcCgEDjwEBkEAg8TBocNgYFDh8GAYMDxkPjEA8EAwkHJgIcBAoPfAoYWCBYYFIgfvAoX4FYRJEAp9gAomYNAOAArPwAogAC4AFiRoIFJLgIFJuADCg//Q4U//4FDj4FEAAV4Aoi0CSxBsCA==")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwxH+If4AxlYALFkQOaFqITlDQ5FpJDgZUCY2s1mBeJB5bCI1W64ABDhAyKGB4PHwIvCRSgwNCw4HBwOBqxJVGBguHdrTOSCJLtMGA4QXFgYAFJywuPayIgTUyIwWFzIcPCTBhQAogLFAowuVJqRecEiQKQAAUqv1+qhgSAhQvMqnSAAWoF7iOMFwYABMI1KpQvflQvFvwMEku53MlF/6PVlS/GFwYqVd5heFd6wvNSQQABBQ4vaGBQAIlYkVF7IFiFyCuMFJgwORopMOGDIuHEJkHjkjjkHHpQxIBJBeNisjAAMcLJYnBAArDTAAReBAATsUFykAhwuCirsTFyowCisVCg4xQYZwWRC5jDQDKbpGeJapSLBYqDB5rYaDCQZWIyxHYDaaXMGKjHOFrjtKeRwA/AE4A=")) \ No newline at end of file diff --git a/apps/cc_astro/app_icon.png b/apps/cc_astro/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a00a36b9ccc8b62f43c3144b389abaaba344c85b GIT binary patch literal 1729 zcmV;y20rR5YJA~Y z-;9s?XnZop5ECBck1)oNXnZj~kq{HYi?|qYFpPj;5Tg)>!>r3HFxmG|DD~d18{+qU z{<4Slch9-~wdbC5?k&Jy2I7eRcDvo@^XZq_Y&Mt6{nvtMnifS-`=8I}H#ax+q3Y^t zr_-tZUs+js|Ni~IE2yihi=wD>I-N))e*XMvVQI73Se9*WZrMZ+cY;5f5>2Ww57B*HP>+bGeT3XuJ*wC31Cr&(j_KabeM~@!ezki=)S-;

5@8yXrK85tQE7$|El0E(hyS$4Tx2v3rvBuS9 zC=_BC1|eCNEuD9=EF+A|Cr2@hF`KQ z5D4t-?5wP;=#0%~>+9=#@!|!313j{zKY#xI{W}2I?RHJm=H_N1k;v!sh)XCGN+y%W zs;$+h@$qrb*97T^F^ak({SLo2!%rU3Ii}(%XM{if*{~# z!C;UeO811S_%ZU_@Xf$fK+bt$12tv>9y*I@3{KCS5#iSmOM^Th= zB86jSW~QT~!^oskshXM^{jyLf=#Oe1GCW@G?d`L(v!=$P2*blLJPcQ^mInijg5nQdL#l^6p(290Wa*H*SC-V~RpmRiv8aayh5dnakzO z-w@C9(^mzZSQh>8}8kMsVNi7NL%wpMynk7PWkzB7#oA$UI2i(Ir#LczfJ7o8iemYi0)ap_n?+XM z`Sa%|Cnt@J>FNZ(-;cCF(}RJw8!RVwrn^d(WjT&BGH$oK$ex{LYnGQ`X9t#+pr=RU z1VN~)t3wP4f(QnK;c(bgmc!xb?Cg|f8F{_y5fs*#835 z+uQr{))Hp&AL?jZyV^<~|4o55&!`0vk_$w+a;pR;k z8G)gpw*56^gdhmva2Q`1)@W;MlOzfEGCd*}1;=st$rk`fl8nV-`03UZ+BcATr1t`V zRc00cKE(69s;aB2tN2hwMMYm<9{^-BnQS(@u&|)-3!0mo-EOz`(P(C7=Iht5xVy{c z5(EJ$MWqF4nyRa-r>Ccj8Bi4Ea=Cb(*B9pU^0J~RNaHkuVVILAPZm>C8rrG(H=Qwv zqKH(*-+^{$LW=ld(a_K!%d%xo?cc7<8MVfeN~LCJXN{GuBp8O_IBs=y)%x6bXh9lk zYik8Tu-R;iqP%+b%ED65)AFVKj-Wjsg7A1eot>Q)HcLxOA3uIP)VuskL70AR{U7lU XnS(xVP>%XN00000NkvXXu0mjfKv`H4 literal 0 HcmV?d00001 diff --git a/apps/cc_astro/cc_astro_icon.png b/apps/cc_astro/cc_astro_icon.png deleted file mode 100644 index cded02071d3610f442f0ce327f01943a2c915753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4002 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 diff --git a/apps/cc_astro/metadata.json b/apps/cc_astro/metadata.json index 2c053d2c6f..54f3fd8697 100644 --- a/apps/cc_astro/metadata.json +++ b/apps/cc_astro/metadata.json @@ -1,18 +1,21 @@ { "id": "cc_astro", "name": "CC Astro", - "shortName":"CC-Astro", - "version":"0.01", - "description": "astronomy clock face", - "icon": "cc_astro_icon.png", + "shortName": "CC-Astro", + "version": "0.01", + "description": "A clock with planets as clock hands", + "icon": "app_icon.png", "type": "clock", - "tags": "clock", + "tags": "clock,astro,planets,earth,venus,mercury,sun", "supports" : ["BANGLEJS2"], - "screenshots": [{"url":"cc_astro_screen.png"}], + "screenshots": [ + {"url":"screenshot1.png"}, + {"url":"screenshot2.png"}, + {"url":"screenshot3.png"} + ], "readme": "README.md", "storage": [ - {"name":"cc_astro.app.js","url":"app.js"}, - {"name":"cc_astro.settings.js","url":"settings.js"}, - {"name":"cc_astro.img","url":"app_icon.js","evaluate":true} + {"name": "cc_astro.app.js", "url": "app.js"}, + {"name": "cc_astro.img", "url": "app_icon.js", "evaluate":true} ], "data": [{"name":"cc_astro.json"}] } diff --git a/apps/cc_astro/screenshot1.png b/apps/cc_astro/screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..e93e44ce00f5b86590c784aee40ab9a628dfffe9 GIT binary patch literal 1773 zcmVxrPO000KGNkl zU6SM|421E<-e~TBHuiz(T6ekZGDaz-e!iH8j)^izNg{(yb+=X&MNt$*Q4~c{6h)!K zW*vYwz4zHmwk?rLkyHIR_76r^svQ?Z%W6M(&@of%NSO$kn2(Kl0D?G<{xu9#W55~J zef$OOMR6~2I;QvjV2@yq)3B)tplN^FG__ysnw`C@sXsmWXySnT>9k7_9-b;N?H$}qA!=~i@4sq$g96pN0^$N zZg!_ZhM2bPe?c_Mp0K+{}g;s1*#HCs1)CBIY;5 z3x$FK@&qJeP^^v&F+ke_q4Pho%{ASpDCBJ0_O|5_Z(qD|`Kk_bgS+yu2U;p*HUC$t zAt?Kt*Pm4CGXir_JB4=vpoQdHvwq)YfJz0U)ev{esP9GNYZX63X=oK=TtjF+^|Ru& zK?svKnE9pvFG4<>~{Ck#%(C7b4yOc25ZQ4$flmCX$U!W=b>N9FlI3^XOG@QA<12`LO7a~#Tk<2s>;J6 zBnsTQ+|3%ob(IRWm|)mn#88t#hp#QbD}?Kr&4xmyad68BW2qoFj+Go3iX^l_BEoJd5^iG0R&a0^5;ue=z_WBJhaX0`(Jbg=j%7#atfR zS3`sxlFSI$(R}w9$&u!2*#EBUb;49B@|(o~Ziq0$$pDL`%KeYbw-)tj@!0e#SXtt5bQ`fzpE}E@>fBb9r zp}ep+=@iFI8aKUmPa52oOl^dq9f|1kppo03o~k_7o@l#LDc%LH<$V_-jXN_$Q+aeF zHGT>{cy(muhIV%iF}u3yo#$IoFH!c(tD8zaxWqg6l6|g2 z{2bz>t56Sv&k#>j#9Q{ej3Xl}szNFbZFXkwGVXOqs@fumyrkNkY~rgYFfR_m*aDP} z^~^ax4*^;d##m{(5a-bvLfwp3XC0()9sDZL+3c}Ylpt^ke5imA)r$_T;bSGYg+h4D z>3>Ec;{F4=qnoJ3!;|tHYH^#}LNfrbZWw4ruU{}sdW5#Gu@TaLYyv&{W_YenK}n^2 z3?HQ(r_@v=i^d$ejBX31>;dl&49eQIa&p2&`A&)ZhfuE?7Ed z1kf=+3UoNt)K}R4-l)FBC4U|4CC)cI#rg)P;+#?4$7RrO7@lb(2|y6v(H~J8n@A?u z6DN}+AD40u22ZLT7sSl!f(Hx!sAFFgMNt$*Q4~c{6xwWm{`|3yp&;TvZfS?-LvbDC P00000NkvXXu0mjflIKEr literal 0 HcmV?d00001 diff --git a/apps/cc_astro/screenshot2.png b/apps/cc_astro/screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..ec56c599e19ca5fa5649e2d41811a3d5cd9bdf87 GIT binary patch literal 1473 zcmV;y1wQ(TP) z+mhoj2t@JL{{Js~A5`OY;*29%fEwsi^Ei>AX(9O%M}!bU2qAU#WSs$+ku?Pkje7eEDu1Dz|kLNfT{szRQ<#YI*Q^^ z;tb5b?+?xqmJ>8=XcB0eAO#4L>6k1XR}yQNI5iWB=v5@mDGF*-Fy&q<>ry%Q4{(+U zML3`eXG*KVIq{LAvQ*4@gj)L4%JwNGR4UpJpW-i<>y5a5-&Jn?m3o9p^mOaNPefBU zG&;v0nsXpNbMu5#whnG+T#s`7$WSDcA6LZ36CSy_xuLObo9Q!c3m=$s@Pv6jiaGSR zdbc|HKNe-}3EMPuqwnt!T1V`s#pZKpQ%~4FsID6~vLPC74a3e8R&iTIjBkhohlXL~ z36qG8Vhv=7hP5p$bpE3|ocLZv0cYE`w^JVV@zn>{@9IWw2-hCYn6?UC&Hri*WXd_` z`74$Fw7^32PUW)zqmAU-uyOBY7_|ySt68j+S?`PH*D8O8+Q2G?xQFn(>bHvH1R-IX zx@OPa7_MYfFIzq_OJ&2JZOn>m2G>o1x_|*{kiaMiSvi5LerYcKD<5^vk zx#6C2581ZrcJ{tfR%nznMB}S13R`O4<_kA(p3quG7+(rPx zmyQu6xQ#$#aYeXlK*3iV6EGm&z)nO2rxsi_K;RFk5J*ruRc)}Uz*S>8SS7%+XFd2s zt^^)7iB*6qkNY$AsezUq)T*h0)*RZc8Sxi<_%YLc-#>q5xTK!x<5Qrr@5G#CvYZ>5$b8Gcnk3jGA%2pMyd{McFXQ%^c@gXwMi`U(i(Gc zh_9Y7$Wsz6A4ch{o;mGK_uJo3WHtxPu+t17&Z9kqyBUwOkD#q0bnvs7&gO`%f`XV! z5JLs~P^0J|VjnBGEgZr_PX99w5$``(AE*zH(?K-7~BANWSB0d`W<+l3r>VL+*+6EIdNF>l>f@&Ho?09!n4{^b72S5np!=JVGgb+dqA%qY@ bh&TTLnJ`anR^Eq<00000NkvXXu0mjfnCz?o literal 0 HcmV?d00001 diff --git a/apps/cc_astro/screenshot3.png b/apps/cc_astro/screenshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..ce43bc54f289f94fadcc74ec75b89694c051f0b6 GIT binary patch literal 1859 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 literal 0 HcmV?d00001 diff --git a/apps/cc_astro/settings.js b/apps/cc_astro/settings.js deleted file mode 100644 index 4aa19215d1..0000000000 --- a/apps/cc_astro/settings.js +++ /dev/null @@ -1,33 +0,0 @@ -(function(back) { - const defaultSettings = { - loadWidgets : false, - textAboveHands : false, - shortHrHand : false, - show24HourMode : false - } - let settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_clock24.json',1) || {}); - - const save = () => require('Storage').write('cc_clock24.json', settings); - - const appMenu = { - '': {title: 'cc_clock24'}, '< Back': back, - /*LANG*/'Load widgets': { - value : !!settings.loadWidgets, - onchange : v => { settings.loadWidgets=v; save();} - }, - /*LANG*/'Text above hands': { - value : !!settings.textAboveHands, - onchange : v => { settings.textAboveHands=v; save();} - }, - /*LANG*/'Short hour hand': { - value : !!settings.shortHrHand, - onchange : v => { settings.shortHrHand=v; save();} - }, - /*LANG*/'Show 24 hour mode': { - value : !!settings.show24HourMode, - onchange : v => { settings.show24HourMode=v; save();} - }, - }; - - E.showMenu(appMenu); -}) From b773448b05a06e1d82df626f772bab0c8a1916ec Mon Sep 17 00:00:00 2001 From: czeppi Date: Tue, 1 Apr 2025 07:57:32 +0200 Subject: [PATCH 3/3] create V2: fix icon + screenshots --- apps/cc_clock24/ChangeLog | 1 + apps/cc_clock24/README.md | 4 ++-- apps/cc_clock24/app_icon.js | 2 +- apps/cc_clock24/app_icon.png | Bin 0 -> 2365 bytes apps/cc_clock24/cc_clock24_icon.png | Bin 4002 -> 0 bytes apps/cc_clock24/metadata.json | 16 ++++++++-------- apps/cc_clock24/screenshot1.png | Bin 0 -> 2469 bytes apps/cc_clock24/screenshot2.png | Bin 0 -> 2858 bytes .../{cc_clock24_screen.png => screenshot3.png} | Bin apps/cc_clock24/settings.js | 10 +++++----- 10 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 apps/cc_clock24/app_icon.png delete mode 100644 apps/cc_clock24/cc_clock24_icon.png create mode 100644 apps/cc_clock24/screenshot1.png create mode 100644 apps/cc_clock24/screenshot2.png rename apps/cc_clock24/{cc_clock24_screen.png => screenshot3.png} (100%) diff --git a/apps/cc_clock24/ChangeLog b/apps/cc_clock24/ChangeLog index c807c40a0b..fd302bca04 100644 --- a/apps/cc_clock24/ChangeLog +++ b/apps/cc_clock24/ChangeLog @@ -1,3 +1,4 @@ 0.01: copied from andark (V0.08) refactored add 24 hour mode +0.02: fix icon + screenshots diff --git a/apps/cc_clock24/README.md b/apps/cc_clock24/README.md index 84b1fa874f..17d9e7fd3d 100644 --- a/apps/cc_clock24/README.md +++ b/apps/cc_clock24/README.md @@ -1,4 +1,4 @@ -# Analog Clock With 24 hour hands +# Analog Clock With Optional 24 hour hands ## Features @@ -7,7 +7,7 @@ * battery percentage (showing charge status with color) * turned off or swipeable widgets (choose in settings) -![logo](cc_clock24_screen.png) +![logo](screenshot1.png) ## Settings diff --git a/apps/cc_clock24/app_icon.js b/apps/cc_clock24/app_icon.js index b213fe5c8f..def5ee8ac2 100644 --- a/apps/cc_clock24/app_icon.js +++ b/apps/cc_clock24/app_icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwgIEBoUAiAKCgUCBQUEColEAYUQhAmKCwgeCAAcCgEDjwEBkEAg8TBocNgYFDh8GAYMDxkPjEA8EAwkHJgIcBAoPfAoYWCBYYFIgfvAoX4FYRJEAp9gAomYNAOAArPwAogAC4AFiRoIFJLgIFJuADCg//Q4U//4FDj4FEAAV4Aoi0CSxBsCA==")) \ No newline at end of file +require("heatshrink").decompress(atob("mEw4P/AoP//8MhFxhFEsUEhFwxgFBgUEnGEoVigMCjAFCwGCjlEkVioArFgEMuEDg0YgEe+EHw0IgAeBgGOCYMGiEBywFBhkggc2wEAjHAg0eFIMwAoMGFIIjCwAgBAB/AAonwAol4AokZ84GElA9BAAVoAodA5AFDmOIAocJhoFDgPjIJ84BgtwgQFD/hpBAoU/wfgKYUP+JcDgP+vgYDn7ZCAAMH/4zBGoX/DAI1Cj/8B4MeD4IYBgMTD4Xw/ILBB4IFESgMBiRRDgILDCYPMAof4XJQA=")) \ No newline at end of file diff --git a/apps/cc_clock24/app_icon.png b/apps/cc_clock24/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbaa7af77d5730f361413500a7b68474803c03c GIT binary patch literal 2365 zcmWlbc|4Te8^)jH$28O+At_#l(3s{OOC?Jf84R*z8C#NFc1a`?F+`~>Q$`KORy>MAL1VMYv@i;qhV*YHH z0QkQ5y8IR#d&2N8kr0Gd`m=Y%(hXxE2)1gDGjecF;p7Jp_Pa~7k4stzkJme=)J5T> zjOcI`8Qi)3drQ;Pif$s9 zyjIVqqez#g5l-xMSVH{2Yrhj7My}{# zcP*6BB`|YF45_T##o_ENe^OkmBnFF5NT5|zR8VqqQg}a?mX@*(pMEkpJgjYK_!wr6 z$K$Q7Z*jF`tC-9@RSO#%!J$k@DXOkUK&|2N*ROjJiHFKleew9T&&*vA;)ot> z&z_2B&m1<&N=xl3hAi{YMw-WtS)%g>{p(-9#>-|3L1|?2>{@J16ez2)ab$Y>$U`eD zE8M55K8mKFkg)KH(CL=fHf4hs62W13puj)@NJ~rW2{x^TmJW>+g+}wQg=FPm@#fX9_OG-oldh4$>>{6%L-QAs;naSt#krI32Ca0#@Y_`6>ejeg>Muxqr zBthlAby-H&9FKj+5_wNq@VC;wBYLV*8S)14O&26*O=AS$C1bqCKKSWFf$WIB9UTW>=SfC#N|PX`R1Kqy0t3krZG(sI2%C`)7>xD#-aJNKos6hZY6pLt&%h%qpZ!_i z*Vmtd!cZt=&-^zaOD2t#RU zX)^Nip6*6&=qu)i6apHJz8o5ACWb>wgiQUj!4fa&@nu|#i^GUAYHAc(va+&FO-+5U z{O^l{nwpwVE4}_!QBi4*Syoq5TU=QIhDc?-1d%X2JS?8tuv3@%>ah&9pdi_pMke=E z*q1%9xP-$A-eL3BV!w=5+YkuP%F92j#R9*_8zeez+%0#gG^RN_J1;CRYpAJF3JP#y zK2cE*jA^YVu>iD(N8zhiuWD;+9n>?)WS6O_Z6?D1so>(TjW30Tg{7sXK)9y{hC^+A zeSN*X$F#K_Y3I_q=5}UyX8!&Qlaq2Sej4j{nq$|z&!5kwQl~0mcJ!7Oxt;Fs-|GQF zOz;3p)O6t0D+4(&3v331LB2M^YG<>BJ8G1x-yO9sz*|{$Ip$NThh=5kF`^z@4fXZL zCMN9eZrIeRQ>Q?P?^v7*3k$n^`8ggL7!aTaT(+`X44%?H8+LiR#l_vds`6P`Sy_Gk z(CBDho0l_@SVpI7pir%f6oQnv_%3^S)^0hh%6)Q?zmHD|V0Ld9jJK`i0hpk7t+S&` zV&cwVnGNtmPL5+tjLxjQj7%#gm?AO`Ck>?<)4&5{@OWlytfCSm*3ue}t)`~d(9n>) z&R_q8d*|OED4tKDgrAg4I&;p`v$`@kHr9DqPEM{RVN0iFsxsw_f`3TJe1ZvQDOKG; z{ebB}Nl6J9jBV-o?VoG?)YBj^0<|Ug?Mm+Q9-ElBC{yan=5i4on0!q)AweVX-u;Zf zZezo}S0@QKjgQ}kuexaY*c9po1OO zOc(Xrn^6EK(BKQV=M>5q_dto=BF!ZA*VYzm{HrVuvKhR1@nX#boMKL1-Z9B^U>?xM z0ke>U0POPeGC$s+Hd|t8jFDPi+OSRZ*Ls+gWMpNe=PC3#02~L3U$;(e(FCcE8ECqg3C*Oe#dewOiVfqmHlm9e>Okv^0u1- zs>(Y~adEMckx_qtKSl|ijTaP1va8s(f0!$!E(U9ITY2hK{Um|cor#b)c=q|IQ!7X@ e?cF=0eEE)%90Q`Cr#JW?g3L{=anFstNdE`3&~(fI literal 0 HcmV?d00001 diff --git a/apps/cc_clock24/cc_clock24_icon.png b/apps/cc_clock24/cc_clock24_icon.png deleted file mode 100644 index cded02071d3610f442f0ce327f01943a2c915753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4002 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 literal 0 HcmV?d00001 diff --git a/apps/cc_clock24/screenshot2.png b/apps/cc_clock24/screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b3bae03e9de810e50cf906ecf027f7b9a0f3ad GIT binary patch literal 2858 zcmV+_3)S?AP) zU7F-72!>5PwWHeq5_(N@F4D)g6cG>!F}zpP72{9%f{L0sKA%qtf^Xg_rJtW4@Y=tB z|IU9L$1%)^k~pWyfQip!!+d%PkgL5*RmFM<1ht)M3-NJPiRX>=`Fvi;&6EOUi78pN z4`n}wqG9Dj%!-m2lSN`$Xqb5TnzAs{jkqA))(uUr_!Sf|q zF)Zu0%(x1=r3IQu*;_1C2JtG_{D^2Q^@KE&Yk2OcVudEoTi)g0#GC15%=fI~9D0|) z-({tU1tG{#mQt+CS5k8L!QCmX|J#Wi$B`Xxh~sHwqh}es%ge`coR{ex%6x^&(#2`i z3vCmxcp&Oco2f%tfp?Y2Oc||DYG>h;H0p)o>9tUA+GI7Va)G!-3^g7C;s|SRk<%^p z8DNE~5-Dla3kB1wquw;FI%Hs3q(T`hn4g+1Dm1gyQ~HVA_iCcH4QD5o4m15QyA8(x z)}BADTHzU5YQkQKv)gbCpm=O`uinehexU7eXn(ydT!k*|-&zl$i)t0bwt!tK(|2dNi!7!_sWUoJx3Ae_NKFJk2{S@l%tMa+UO* zicKr_VR_0fPQgyk`9f`QTa!O;5lbPDrSx8dh4r*jwywq##?@Gqr;Ognw~kws?l1Wo!>V?CnN5{W!W{9X%^!QO;1t#@t}3EbvCiA^`YZ6N#Z^aB^kvJ8($p z9bUZ)!K0|`4$MR@Ij|611?UL66VwpL_8>jOU?viM%C6v+{XMbHJwuV1NfS7vUO}zS za)DfOa5Rv?-Rv_snw+BVxIZilvd^G`C0QOE4OYWGgPNopl*9bjLUa{3IBXbbF|Ua< zxm4zJ2lJEBvWWcnPz+1mGXIwT9Uo$u+4-TUXEOhyW*PjR6Dc=*C-ULU5QHCQx{p>* z^#>SpI#7BBnn3)PO3V}wzs^Kv=`}C^R1XBVO&A8F^PgD;Uqeo!IMRAQfkaIdv&H{Z zDMBk-b$Wt00pb?DKquWzm60nyvz00a4+i4EIG#EyPCU2y5TCpxoCN|txHEk_Oc4WW zYlf;ttpXI!K>I&vgEvm9t)7HE~YY}_qY4|-SQjG+MDOou$?fX?~&fOcO%X80( z+`_dOla=uGzYpbqJ9%VhuS}T_Q*r|*sEg38`D)r~zGFy9puJo+U;>G(@5 zs1+p*vF7%2>6Iw_zD4O>hlza|gBwG%{Ks&WC_INE z$aDUSa)R&cCH^BkhXL&aENurLP43-EXWoB==P*DyoFyn&rjHQEB8_l=pPjVURwK6<4LOG(W8lCTmG`jT%h@tnA?MLDzyB%6q(AMhxG8&1z=pg6dS$~$+QUBN@+jIV+diB24C=p=tLSmGU)sAn z_^e@)Rudbmgdq#cQ|K+!?ngCV^V3)r6WsCxj7aIosv!O&EB~@-enuyXCb;(p7&F7; zm&5+0or`gc-ifX(z%4n$#iw>m>&n5(zqA#xf&Q%;&|m>D~nEQqRrC@+pqt%L0+V>m7()p z@3i&&JD}LKjl{h21r<%S+d>^Wj7K5coA^$8P9mJmg&;E#0h{m6s@UFjX-%OAve@!D zhF41?%XVcUm`5PnIszM5CO}LKM>&zGaDsvp!`O4M8nFq$P)F@8#KDFe#e8-}Y=YM4 zgT0)@e7Pwv;R&8>#sp=c58lhUG0wGnIe(k>5aJ>33U1l%!g>f|dys8JfGk1~j{+1& z-HGg~iCq^?wWt=wUcC#!1Nqu-5rPOZe-qRos0djE0FU@wYm7HraN}YtsB7vIIHG4| zSQfD?zCHM^O6=p#*PaucPwWj!*_=~+Ik7ETk#!%X|YukH($^bsV__XH|V1kDWB?uxLsqvRz(`6;y$x zXSxr{rJKTPY|oqmE6|lemBrG<2&8)+*5}qtM$9Nasmhc1+(@zzXksQo$#8=mJu72y zo3U!H@<>@FGCC2KCMLU&8D}t@ASgnAUj^Cfrc9jLj%6X3>1n;hbZx0*tCgOWEwL>~ zGFCps#G2c11io(OiC?(tO=QNGa3`zWg7C!0=kuZG6+DFh0J!1sP@~Ku=>Px#07*qo IM6N<$g1j$(^8f$< literal 0 HcmV?d00001 diff --git a/apps/cc_clock24/cc_clock24_screen.png b/apps/cc_clock24/screenshot3.png similarity index 100% rename from apps/cc_clock24/cc_clock24_screen.png rename to apps/cc_clock24/screenshot3.png diff --git a/apps/cc_clock24/settings.js b/apps/cc_clock24/settings.js index 4aa19215d1..483c0e6f44 100644 --- a/apps/cc_clock24/settings.js +++ b/apps/cc_clock24/settings.js @@ -5,7 +5,7 @@ shortHrHand : false, show24HourMode : false } - let settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_clock24.json',1) || {}); + let settings = Object.assign(defaultSettings, require('Storage').readJSON('cc_clock24.json', 1) || {}); const save = () => require('Storage').write('cc_clock24.json', settings); @@ -13,19 +13,19 @@ '': {title: 'cc_clock24'}, '< Back': back, /*LANG*/'Load widgets': { value : !!settings.loadWidgets, - onchange : v => { settings.loadWidgets=v; save();} + onchange : v => { settings.loadWidgets = v; save();} }, /*LANG*/'Text above hands': { value : !!settings.textAboveHands, - onchange : v => { settings.textAboveHands=v; save();} + onchange : v => { settings.textAboveHands = v; save();} }, /*LANG*/'Short hour hand': { value : !!settings.shortHrHand, - onchange : v => { settings.shortHrHand=v; save();} + onchange : v => { settings.shortHrHand = v; save();} }, /*LANG*/'Show 24 hour mode': { value : !!settings.show24HourMode, - onchange : v => { settings.show24HourMode=v; save();} + onchange : v => { settings.show24HourMode = v; save();} }, };