From 907cea89d8293fd3bd227d230f5767dfa3feae16 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Fri, 21 Jul 2023 21:24:08 +0200 Subject: [PATCH 1/4] fastload - Formatting --- apps/fastload/settings.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/fastload/settings.js b/apps/fastload/settings.js index 66c990df1..1265d5e72 100644 --- a/apps/fastload/settings.js +++ b/apps/fastload/settings.js @@ -52,12 +52,12 @@ } }; - mainmenu['Hide "Fastloading..."'] = { - value: !!settings.hideLoading, - onchange: v => { - writeSettings("hideLoading",v); - } - }; + mainmenu['Hide "Fastloading..."'] = { + value: !!settings.hideLoading, + onchange: v => { + writeSettings("hideLoading",v); + } + }; return mainmenu; } From b63ff956bec655b3b01987e9c3e9d9f558fc9816 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Fri, 21 Jul 2023 19:28:32 +0200 Subject: [PATCH 2/4] fastload - Check setting.json and force real load on change --- apps/fastload/README.md | 1 + apps/fastload/boot.js | 12 ++++++++++-- apps/fastload/settings.js | 19 +++++++++++++------ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/apps/fastload/README.md b/apps/fastload/README.md index be4175f55..d82e13461 100644 --- a/apps/fastload/README.md +++ b/apps/fastload/README.md @@ -12,6 +12,7 @@ This allows fast loading of all apps with two conditions: * If Quick Launch is installed it can be excluded from app history * Allows to redirect all loads usually loading the clock to the launcher instead * The "Fastloading..." screen can be switched off +* Enable checking `setting.json` and force a complete load on changes ## App history diff --git a/apps/fastload/boot.js b/apps/fastload/boot.js index c7fc2fd86..baa5a517c 100644 --- a/apps/fastload/boot.js +++ b/apps/fastload/boot.js @@ -19,7 +19,15 @@ let loadingScreen = function(){ let cache = s.readJSON("fastload.cache") || {}; -let checkApp = function(n){ +const SYS_SETTINGS="setting.json"; + +let appFastloadPossible = function(n){ + if(SETTINGS.detectSettingsChange && (!cache[SYS_SETTINGS] || E.CRC32(SYS_SETTINGS) != cache[SYS_SETTINGS])){ + cache[SYS_SETTINGS] = E.CRC32(SYS_SETTINGS); + s.writeJSON("fastload.cache", cache); + return false; + } + // no widgets, no problem if (!global.WIDGETS) return true; let app = s.read(n); @@ -39,7 +47,7 @@ let slowload = function(n){ }; let fastload = function(n){ - if (!n || checkApp(n)){ + if (!n || appFastloadPossible(n)){ // Bangle.load can call load, to prevent recursion this must be the system load global.load = slowload; Bangle.load(n); diff --git a/apps/fastload/settings.js b/apps/fastload/settings.js index 1265d5e72..15c135fe4 100644 --- a/apps/fastload/settings.js +++ b/apps/fastload/settings.js @@ -52,12 +52,19 @@ } }; - mainmenu['Hide "Fastloading..."'] = { - value: !!settings.hideLoading, - onchange: v => { - writeSettings("hideLoading",v); - } - }; + mainmenu['Hide "Fastloading..."'] = { + value: !!settings.hideLoading, + onchange: v => { + writeSettings("hideLoading",v); + } + }; + + mainmenu['Detect settings changes'] = { + value: !!settings.detectSettingsChange, + onchange: v => { + writeSettings("detectSettingsChange",v); + } + }; return mainmenu; } From e2ba3ca64da7ce5b433e152c3c5887992b7f8897 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Mon, 24 Jul 2023 22:32:01 +0200 Subject: [PATCH 3/4] fastload - Replace E.CRC32 with Storage.hash --- apps/fastload/boot.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/fastload/boot.js b/apps/fastload/boot.js index baa5a517c..4ac8b97e9 100644 --- a/apps/fastload/boot.js +++ b/apps/fastload/boot.js @@ -22,8 +22,8 @@ let cache = s.readJSON("fastload.cache") || {}; const SYS_SETTINGS="setting.json"; let appFastloadPossible = function(n){ - if(SETTINGS.detectSettingsChange && (!cache[SYS_SETTINGS] || E.CRC32(SYS_SETTINGS) != cache[SYS_SETTINGS])){ - cache[SYS_SETTINGS] = E.CRC32(SYS_SETTINGS); + if(SETTINGS.detectSettingsChange && (!cache[SYS_SETTINGS] || s.hash(SYS_SETTINGS) != cache[SYS_SETTINGS])){ + cache[SYS_SETTINGS] = s.hash(SYS_SETTINGS); s.writeJSON("fastload.cache", cache); return false; } @@ -31,11 +31,11 @@ let appFastloadPossible = function(n){ // no widgets, no problem if (!global.WIDGETS) return true; let app = s.read(n); - if (cache[n] && E.CRC32(app) == cache[n].crc) + if (cache[n] && s.hash(app) == cache[n].hash) return cache[n].fast; cache[n] = {}; cache[n].fast = app.includes("Bangle.loadWidgets"); - cache[n].crc = E.CRC32(app); + cache[n].hash = s.hash(app); s.writeJSON("fastload.cache", cache); return cache[n].fast; }; From 1d577fe59da81967e53648807cf0d3a27d103a0c Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Mon, 24 Jul 2023 22:35:21 +0200 Subject: [PATCH 4/4] fastload - Bump version --- apps/fastload/ChangeLog | 1 + apps/fastload/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/fastload/ChangeLog b/apps/fastload/ChangeLog index 4e68ab2c7..053799a9f 100644 --- a/apps/fastload/ChangeLog +++ b/apps/fastload/ChangeLog @@ -2,3 +2,4 @@ 0.02: Allow redirection of loads to the launcher 0.03: Allow hiding the fastloading info screen 0.04: (WIP) Allow use of app history when going back (`load()` or `Bangle.load()` calls without specified app). +0.05: Check for changes in setting.js and force real reload if needed diff --git a/apps/fastload/metadata.json b/apps/fastload/metadata.json index 954a7d8b4..abd5b3ed5 100644 --- a/apps/fastload/metadata.json +++ b/apps/fastload/metadata.json @@ -1,7 +1,7 @@ { "id": "fastload", "name": "Fastload Utils", "shortName" : "Fastload Utils", - "version": "0.04", + "version": "0.05", "icon": "icon.png", "description": "Enable experimental fastloading for more apps", "type":"bootloader",