From b4d6e92ed03aa6746c9b65adc686efb255c7a283 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 08:45:14 -0400 Subject: [PATCH 01/12] Update ChangeLog --- apps/backlite/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/backlite/ChangeLog b/apps/backlite/ChangeLog index d8cc5d85f..64d8663b0 100644 --- a/apps/backlite/ChangeLog +++ b/apps/backlite/ChangeLog @@ -1 +1,2 @@ 0.01: New app! (settings, boot.js). +0.02: Fix settings defaulting brightness to 0 From cfd7f4b11c630983a08c7f977f1e730e7c8966f8 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 08:45:29 -0400 Subject: [PATCH 02/12] Bump version --- apps/backlite/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backlite/metadata.json b/apps/backlite/metadata.json index 65d5c7c02..22d40d498 100644 --- a/apps/backlite/metadata.json +++ b/apps/backlite/metadata.json @@ -1,7 +1,7 @@ { "id": "backlite", "name": "BackLite", - "version": "0.01", + "version": "0.02", "description": "Conserves battery life by turning the backlight on only on a long press of the button from a locked state. **Requires the latest settings update (v0.80)**", "icon": "icon.png", "type": "bootloader", From 45be15b643751c83b33b202d804c7a9ba3e00476 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 08:46:01 -0400 Subject: [PATCH 03/12] change operator to not nullify 0 as well --- apps/backlite/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index 7ce709b61..c018f0346 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -13,7 +13,7 @@ E.showMenu({ "" : { "title" : "BackLite" }, 'Brightness': { - value: 0.3|settings.brightness, + value: settings.brightness||0, min: 0.1, max: 1, step: 0.1, onchange: v => { From 3b34a417139009dd818b20729a0cb0f8d94ef126 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 08:48:00 -0400 Subject: [PATCH 04/12] Add back handler --- apps/backlite/settings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index c018f0346..76dbdacec 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -12,6 +12,7 @@ // Show the menu E.showMenu({ "" : { "title" : "BackLite" }, + "< Back" : () => back(), 'Brightness': { value: settings.brightness||0, min: 0.1, max: 1, From 521aef8cc762a1e2435abe58368a6b6e9e06143d Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 10:39:40 -0400 Subject: [PATCH 05/12] Test? --- apps/backlite/settings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index 76dbdacec..0c8734b89 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -12,9 +12,9 @@ // Show the menu E.showMenu({ "" : { "title" : "BackLite" }, - "< Back" : () => back(), + "< Back": back, 'Brightness': { - value: settings.brightness||0, + value: settings.brightness||0.3, min: 0.1, max: 1, step: 0.1, onchange: v => { From 63c7e5641a2ed69ab8fbe8c6b998a9a3b4443374 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 17:44:58 -0400 Subject: [PATCH 06/12] Fixed settings by adding check for null at the beginning --- apps/backlite/settings.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index 0c8734b89..bbd099e6b 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -1,20 +1,20 @@ (function(back) { var FILE = "BackLite.settings.json"; - // Load settings - var settings = Object.assign({ - brightness: 0.3, - }, require('Storage').readJSON(FILE, true) || {}); + + // Load settings safely (avoid crashes on bad/missing JSON) + var settings = require("Storage").readJSON(FILE, 1) || {}; + + if (!isFinite(settings.brightness)) settings.brightness = 0.3; function writeSettings() { - require('Storage').writeJSON(FILE, settings); + require("Storage").writeJSON(FILE, settings); } - // Show the menu E.showMenu({ "" : { "title" : "BackLite" }, - "< Back": back, - 'Brightness': { - value: settings.brightness||0.3, + "< Back": () => (back()), // fallback if run standalone + "Brightness": { + value: settings.brightness, min: 0.1, max: 1, step: 0.1, onchange: v => { @@ -23,4 +23,4 @@ } }, }); -}) +}); From 8dd3e19291ee27cb5b36ef269dde647909968c4e Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 17:46:05 -0400 Subject: [PATCH 07/12] Fix for lint error --- apps/backlite/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index bbd099e6b..13402489d 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -23,4 +23,4 @@ } }, }); -}); +}) From 36784a7e3ce1e35833d4ed0c700539ee2a8cddb6 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 09:34:26 -0400 Subject: [PATCH 08/12] Update apps/backlite/settings.js as per @bobrippling's review Co-authored-by: Rob Pilling --- apps/backlite/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index 13402489d..0060fcdec 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -12,7 +12,7 @@ E.showMenu({ "" : { "title" : "BackLite" }, - "< Back": () => (back()), // fallback if run standalone + "< Back": back, // fallback if run standalone "Brightness": { value: settings.brightness, min: 0.1, max: 1, From 00401599269e3a9560511fdaa04e0abb294e6f6f Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 15:04:35 -0400 Subject: [PATCH 09/12] Remove outdated comment --- apps/backlite/settings.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/backlite/settings.js b/apps/backlite/settings.js index 0060fcdec..a966d27f3 100644 --- a/apps/backlite/settings.js +++ b/apps/backlite/settings.js @@ -1,7 +1,6 @@ (function(back) { var FILE = "BackLite.settings.json"; - // Load settings safely (avoid crashes on bad/missing JSON) var settings = require("Storage").readJSON(FILE, 1) || {}; if (!isFinite(settings.brightness)) settings.brightness = 0.3; From 5398b5e44298b62a567c49f255bcb5c24e9da325 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 15:12:02 -0400 Subject: [PATCH 10/12] Delete global settings var after brightness change to `0`, to free up memory --- apps/backlite/boot.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/backlite/boot.js b/apps/backlite/boot.js index 897b443b1..d957b9591 100644 --- a/apps/backlite/boot.js +++ b/apps/backlite/boot.js @@ -13,7 +13,8 @@ s.brightness = 0; if (!("lcdTimeout" in s)) s.lcdTimeout = 5; // fallback so logic doesn't break require("Storage").writeJSON("setting.json", s); - + //remove large settings object from memory + s=null; const longPressTime=400; //(ms) Bangle.on('lock', function(isLocked) { From 80b13dbaf08b56b06d870c7381efabb905dc8e73 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 15:13:25 -0400 Subject: [PATCH 11/12] Remove outdated setting call --- apps/backlite/boot.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/backlite/boot.js b/apps/backlite/boot.js index d957b9591..f3a4de589 100644 --- a/apps/backlite/boot.js +++ b/apps/backlite/boot.js @@ -11,7 +11,6 @@ //Set LCD to zero every reboot let s = require("Storage").readJSON("setting.json", 1) || {}; s.brightness = 0; - if (!("lcdTimeout" in s)) s.lcdTimeout = 5; // fallback so logic doesn't break require("Storage").writeJSON("setting.json", s); //remove large settings object from memory s=null; From 663480b07677d4cc2c18c20736be634b825ef17c Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 17:09:31 -0400 Subject: [PATCH 12/12] Update boot.js Co-authored-by: Rob Pilling --- apps/backlite/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backlite/boot.js b/apps/backlite/boot.js index f3a4de589..9f01b4676 100644 --- a/apps/backlite/boot.js +++ b/apps/backlite/boot.js @@ -13,7 +13,7 @@ s.brightness = 0; require("Storage").writeJSON("setting.json", s); //remove large settings object from memory - s=null; + delete s; const longPressTime=400; //(ms) Bangle.on('lock', function(isLocked) {