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; }