From 1bcbd4f06c4b2fdb5efe92aeee0303bae0ff3146 Mon Sep 17 00:00:00 2001 From: sir-indy <53864146+sir-indy@users.noreply.github.com> Date: Wed, 11 Jan 2023 20:47:57 +0000 Subject: [PATCH] Update mosaic clock for fast load and widget_utils --- apps/mosaic/ChangeLog | 1 + apps/mosaic/README.md | 2 +- apps/mosaic/metadata.json | 2 +- apps/mosaic/mosaic.app.js | 22 ++++++++++++++++++---- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/mosaic/ChangeLog b/apps/mosaic/ChangeLog index f26a9df0a..acebd4321 100644 --- a/apps/mosaic/ChangeLog +++ b/apps/mosaic/ChangeLog @@ -1,2 +1,3 @@ 0.01: First release 0.02: Use locale time +0.03: Change for fast loading, use widget_utils to hide widgets \ No newline at end of file diff --git a/apps/mosaic/README.md b/apps/mosaic/README.md index b2f31aef2..05a39c556 100644 --- a/apps/mosaic/README.md +++ b/apps/mosaic/README.md @@ -4,7 +4,7 @@ A fabulously colourful clock! * Clearly shows the time on a colourful background that changes every minute. * Dark and Light theme compatible, with a setting to override the digit colour scheme. -* Show or hide widgets with a setting (default shows widgets). +* Show or hide widgets with a setting (default hides widgets, swipe down to show them thanks to `widget_utils`). ![](mosaic-scr1.png) ![](mosaic-scr2.png) diff --git a/apps/mosaic/metadata.json b/apps/mosaic/metadata.json index 92548ce9c..221d79376 100644 --- a/apps/mosaic/metadata.json +++ b/apps/mosaic/metadata.json @@ -2,7 +2,7 @@ "id":"mosaic", "name":"Mosaic Clock", "shortName": "Mosaic Clock", - "version": "0.02", + "version": "0.03", "description": "A fabulously colourful clock", "readme": "README.md", "icon":"mosaic.png", diff --git a/apps/mosaic/mosaic.app.js b/apps/mosaic/mosaic.app.js index 03eb417fd..0ad69e9b5 100644 --- a/apps/mosaic/mosaic.app.js +++ b/apps/mosaic/mosaic.app.js @@ -2,6 +2,7 @@ Array.prototype.sample = function(){ return this[Math.floor(Math.random()*this.length)]; }; +{ const SETTINGS_FILE = "mosaic.settings.json"; let settings; let theme; @@ -87,8 +88,6 @@ let o_h = Math.floor((g.getHeight() - num_squares_h * s+offset_widgets)/2); let mid_x = Math.floor(num_squares_w/2); let mid_y = Math.floor((num_squares_h-1)/2); -draw(); - Bangle.on('lcdPower',on=>{ if (on) { draw(); // draw immediately, queue redraw @@ -98,8 +97,23 @@ Bangle.on('lcdPower',on=>{ } }); -Bangle.setUI('clock'); +Bangle.setUI({ + mode : 'clock', + remove : function() { + // Called to unload all of the clock app + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + delete Array.prototype.sample; + require('widget_utils').show(); // re-show widgets + } +}); + +Bangle.loadWidgets(); if (settings.showWidgets) { - Bangle.loadWidgets(); Bangle.drawWidgets(); +} else { + require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe } + +draw(); +} \ No newline at end of file