From 0f312815a8402377c2b92524c398754ff46010fe Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Tue, 9 Dec 2025 23:40:55 +0100 Subject: [PATCH 1/6] bigclkinfo: new app - one fullscreen clock info --- apps/bigclkinfo/ChangeLog | 1 + apps/bigclkinfo/README.md | 23 +++++++++++++++++++++++ apps/bigclkinfo/app-icon.js | 1 + apps/bigclkinfo/app.js | 32 ++++++++++++++++++++++++++++++++ apps/bigclkinfo/icon.png | Bin 0 -> 1082 bytes apps/bigclkinfo/metadata.json | 19 +++++++++++++++++++ 6 files changed, 76 insertions(+) create mode 100644 apps/bigclkinfo/ChangeLog create mode 100644 apps/bigclkinfo/README.md create mode 100644 apps/bigclkinfo/app-icon.js create mode 100644 apps/bigclkinfo/app.js create mode 100644 apps/bigclkinfo/icon.png create mode 100644 apps/bigclkinfo/metadata.json diff --git a/apps/bigclkinfo/ChangeLog b/apps/bigclkinfo/ChangeLog new file mode 100644 index 0000000000..09953593e2 --- /dev/null +++ b/apps/bigclkinfo/ChangeLog @@ -0,0 +1 @@ +0.01: New Clock! diff --git a/apps/bigclkinfo/README.md b/apps/bigclkinfo/README.md new file mode 100644 index 0000000000..7cba685f12 --- /dev/null +++ b/apps/bigclkinfo/README.md @@ -0,0 +1,23 @@ +# Big Clock Info app + +For die hard clock info fans... + +## Features + +All the clock infos you have installed displayed full screen. + +## Controls + +Interact with it like one big clock info, which it is! + +## Settings + +TBA: Should the app be treated as a clock face app? + +## Requests + +Open an issue on the espruino/BangleApps issue tracker mentioning @thyttan. + +## Creator + +thyttan diff --git a/apps/bigclkinfo/app-icon.js b/apps/bigclkinfo/app-icon.js new file mode 100644 index 0000000000..1778764bd5 --- /dev/null +++ b/apps/bigclkinfo/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEw4UA///IHUVqgKJqEFBg8BqADBgtABYsUAhAABCwQYCEQoRFEgkEBYsQAhASGoAdEgIqDgJNGA4YPDgpKDBYQnDggzDAYQLLOAYjEBARSGEAgLXFQYvEToRqDBYhoCBYZTEBbQqDBYg7CAwYLEL4wLTTYYLEBAS/XcZb7LB4IMEgIfDYA43DAgoSGDgijFToqZDAAZ5DAgokCDAUFLI0AitQgtUBQwMCBRIArA")) diff --git a/apps/bigclkinfo/app.js b/apps/bigclkinfo/app.js new file mode 100644 index 0000000000..591e2b87e5 --- /dev/null +++ b/apps/bigclkinfo/app.js @@ -0,0 +1,32 @@ +// TODO: +// Add setting to decide if the app shoud set Bangle.CLOCK=1 ? +// Make an updating analog clock info entry to use as start card. (update clkinfoclk or make a new one?) + +Bangle.CLOCK = 1; // TODO: make optional. + +// Load the clock infos +let clockInfoItems = require("clock_info").load(); +// Add the +let clockInfoMenu = require("clock_info").addInteractive(clockInfoItems, { + // Add the dimensions we're rendering to here - these are used to detect taps on the clock info area + x : 0, y: 0, w: Bangle.appRect.w, h: Bangle.appRect.h, + // You can add other information here you want to be passed into 'options' in 'draw' + // This function draws the info + draw : (itm, info, options) => { + // itm: the item containing name/hasRange/etc + // info: data returned from itm.get() containing text/img/etc + // options: options passed into addInteractive + // Clear the background + g.reset().clearRect(options.x, options.y, options.x+options.w-2, options.y+options.h-1); + // indicate focus - we're using a border, but you could change color? + if (options.focus) g.drawRect(options.x, options.y, options.x+options.w-2, options.y+options.h-1); // show if focused + // we're drawing center-aligned here + var midx = options.x+options.w/2; + let scale = 5; + if (info.img) g.drawImage(info.img, midx-12*scale,options.y+4, {scale:scale}); // draw the image + g.setFont("6x8:2").setFontAlign(0,1).drawString(info.text, midx,options.y+160); // draw the text + } +}); +clockInfoMenu.menuA = 0; +clockInfoMenu.menuB = 6; // Assume clkinfoclk is at indices (0,6) +clockInfoMenu.redraw(); diff --git a/apps/bigclkinfo/icon.png b/apps/bigclkinfo/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4ec13e4ea4e702eafd8e8dc314083de97321559 GIT binary patch literal 1082 zcmV-A1jYM_P)`6pHRCt{2nagiYQ5431ecYnl8Yw2;tqLj zy^@Buf{8x?H7XJbk$7|_2oc4^TrfgnMimK0WW~3Wos(4ddGxk}`z1TsXWz5d-s|l3 zzEDC5C1i!kKoiglTmv2gFEwm_73cv9KsDn86+jCx0Q?5N0gr%-KsRt$qg!i_^v*Bf z9cO1*0W8SPtOmv|Nh4Zw5YGtdQ0iTrLVGFx*KvQ6_j z`prikI4MD%0rjJO_#MD^;5snPTi*`M*Sr&0ruhO5v}Wpr-fi{hYk?b5FMmB#oC1CV zd-PoHUHbvuOeh*egLoJ(!+zO^-E8KEw=du5t(}o^rbQ2M+Iuc&udXcB=BIaf_qD2k zTn7Ae;^p%$=q9$NWxh~f!&jS6GQO;l7jGxT0og=dQii6RgEH9YMxmIg5sG}|`6lo* zsf%rwtDGhVr@gBVK_Bo(<5CQ|D(z)^P6vj7opBFep&;c9saz>SsLrpE>MaJA06&1$ zfwVd8TkFFW;FeJq zTY$x0qhPJ7!k|KYdR$< zXwnFfixf0Af9*X7W0!8BHepGbG#9G!N=i$^zb0*Vm8l@Hj+u{8wORx$)v$R8@{#9T za-WI&ruA~E)-fw~TjdZi?0KTZ*e18?8nbSLiNJ)k%=yQoGQzuAdu}EpbSaP&BCSO; zu(arnv=*Dy#W+F6=+aklO9KD9nV0$onIjim=e3R11b{ENv)xjJTdrMutNJ?K+W)Tz; Date: Tue, 9 Dec 2025 23:45:26 +0100 Subject: [PATCH 2/6] bigclkinfo: remove screenshot field from metadata --- apps/bigclkinfo/metadata.json | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/bigclkinfo/metadata.json b/apps/bigclkinfo/metadata.json index eb51d07372..45727b4035 100644 --- a/apps/bigclkinfo/metadata.json +++ b/apps/bigclkinfo/metadata.json @@ -5,7 +5,6 @@ "author": "thyttan", "description": "One single big clock info. Full screen.", "icon": "icon.png", - "screenshots": [{"url":"screenshot.png"}], "type": "clock", "tags": "clock, clkinfo, clk_info", "supports" : ["BANGLEJS2"], From 0d281004f8c4e4b1b4c65f1d0e0f64ef231671b6 Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Tue, 9 Dec 2025 23:47:44 +0100 Subject: [PATCH 3/6] bigclkinfo: tweak name --- apps/bigclkinfo/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/bigclkinfo/metadata.json b/apps/bigclkinfo/metadata.json index 45727b4035..6f8bb7e2c4 100644 --- a/apps/bigclkinfo/metadata.json +++ b/apps/bigclkinfo/metadata.json @@ -1,6 +1,6 @@ { "id": "bigclkinfo", - "name": "Big clock info app", - "shortName":"Big clkinfo", + "name": "Big Clock Info app", + "shortName":"Big Clkinfo", "version":"0.01", "author": "thyttan", "description": "One single big clock info. Full screen.", From 515825151d2cc1b5ae7bdb4b7d232f59c39605af Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Tue, 9 Dec 2025 23:53:02 +0100 Subject: [PATCH 4/6] bigclkinfo: return to sanity --- apps/bigclkinfo/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bigclkinfo/metadata.json b/apps/bigclkinfo/metadata.json index 6f8bb7e2c4..fddde4b802 100644 --- a/apps/bigclkinfo/metadata.json +++ b/apps/bigclkinfo/metadata.json @@ -6,7 +6,7 @@ "description": "One single big clock info. Full screen.", "icon": "icon.png", "type": "clock", - "tags": "clock, clkinfo, clk_info", + "tags": "clock,clkinfo,clk_info", "supports" : ["BANGLEJS2"], "readme": "README.md", "dependencies" : { "clock_info":"module", From 130b7acf6374baf77b3d19c9b38c0e75ff211b3e Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Wed, 10 Dec 2025 13:43:29 +0100 Subject: [PATCH 5/6] bigclkinfo: icon w/o transparency --- apps/bigclkinfo/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bigclkinfo/app-icon.js b/apps/bigclkinfo/app-icon.js index 1778764bd5..f52bc45650 100644 --- a/apps/bigclkinfo/app-icon.js +++ b/apps/bigclkinfo/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEw4UA///IHUVqgKJqEFBg8BqADBgtABYsUAhAABCwQYCEQoRFEgkEBYsQAhASGoAdEgIqDgJNGA4YPDgpKDBYQnDggzDAYQLLOAYjEBARSGEAgLXFQYvEToRqDBYhoCBYZTEBbQqDBYg7CAwYLEL4wLTTYYLEBAS/XcZb7LB4IMEgIfDYA43DAgoSGDgijFToqZDAAZ5DAgokCDAUFLI0AitQgtUBQwMCBRIArA")) +require("heatshrink").decompress(atob("mEw4P/AAMwwghZj/4AoYjBAgUD4ABBAoMHhOQ8AFBjlIiU4AoM4oECjgFBuYCB5wCBCgUHAQPIAQMTgEBwAFBAYMDkAuBggyBkECoAFBg0Ag1ggFggxACgdgggfDkEMPwkNFIewBYJYCmAFFhoFD2AFFC5hPB4ApHIIIFCkBNFLIILCsBrHAoZ9FRIqVGUIqtFXIrFFaIrdFdIwAVA==")) From 1a67d2db06dde303f1bdc5606a327c9d6927fc2f Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Wed, 10 Dec 2025 16:03:26 +0100 Subject: [PATCH 6/6] bigclkinfo: add BTN->showLauncher, try fix first draw. --- apps/bigclkinfo/app.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/bigclkinfo/app.js b/apps/bigclkinfo/app.js index 591e2b87e5..853a0562b9 100644 --- a/apps/bigclkinfo/app.js +++ b/apps/bigclkinfo/app.js @@ -2,7 +2,13 @@ // Add setting to decide if the app shoud set Bangle.CLOCK=1 ? // Make an updating analog clock info entry to use as start card. (update clkinfoclk or make a new one?) -Bangle.CLOCK = 1; // TODO: make optional. +let isClock = true; // TODO: make optional via setting. +if (isClock) { + Bangle.CLOCK = 1; + setWatch(() => { + Bangle.showLauncher(); + }, BTN); +} // Load the clock infos let clockInfoItems = require("clock_info").load(); @@ -28,5 +34,5 @@ let clockInfoMenu = require("clock_info").addInteractive(clockInfoItems, { } }); clockInfoMenu.menuA = 0; -clockInfoMenu.menuB = 6; // Assume clkinfoclk is at indices (0,6) -clockInfoMenu.redraw(); +if (clockInfoItems[0].items[6]) clockInfoMenu.menuB = 6; // Assume clkinfoclk is at indices (0,6) +setTimeout(clockInfoMenu.redraw,0); // Make sure correct item is set before redraw.