diff --git a/apps/launch/ChangeLog b/apps/launch/ChangeLog index 0aff8c49f..0b5dc7630 100644 --- a/apps/launch/ChangeLog +++ b/apps/launch/ChangeLog @@ -20,3 +20,4 @@ 0.18: Add 'back' icon in top-left to go back to clock 0.19: Fix regression after back button added (returnToClock was called twice!) 0.20: Use Bangle.showClock for changing to clock +0.21: Fix a bug where a warning would stay on screen forever diff --git a/apps/launch/app.js b/apps/launch/app.js index 36f3aaf4b..ecd57c9f5 100644 --- a/apps/launch/app.js +++ b/apps/launch/app.js @@ -42,47 +42,51 @@ let apps = launchCache.apps; if (!settings.fullscreen) Bangle.loadWidgets(); -E.showScroller({ - h : 64*scaleval, c : apps.length, - draw : (i, r) => { - var app = apps[i]; - if (!app) return; - g.clearRect((r.x),(r.y),(r.x+r.w-1), (r.y+r.h-1)); - g.setFont(font).setFontAlign(-1,0).drawString(app.name,64*scaleval,r.y+(32*scaleval)); - if (app.icon) { - if (!app.img) app.img = s.read(app.icon); // load icon if it wasn't loaded - try {g.drawImage(app.img,8*scaleval, r.y+(8*scaleval), {scale: scaleval});} catch(e){} +const drawMenu = () => { + E.showScroller({ + h : 64*scaleval, c : apps.length, + draw : (i, r) => { + var app = apps[i]; + if (!app) return; + g.clearRect((r.x),(r.y),(r.x+r.w-1), (r.y+r.h-1)); + g.setFont(font).setFontAlign(-1,0).drawString(app.name,64*scaleval,r.y+(32*scaleval)); + if (app.icon) { + if (!app.img) app.img = s.read(app.icon); // load icon if it wasn't loaded + try {g.drawImage(app.img,8*scaleval, r.y+(8*scaleval), {scale: scaleval});} catch(e){} + } + }, + select : i => { + var app = apps[i]; + if (!app) return; + if (!app.src || require("Storage").read(app.src)===undefined) { + E.showMessage(/*LANG*/"App Source\nNot found"); + setTimeout(drawMenu, 2000); + } else { + load(app.src); + } + }, + back : Bangle.showClock, // button press or tap in top left shows clock now + remove : () => { + // cleanup the timeout to not leave anything behind after being removed from ram + if (lockTimeout) clearTimeout(lockTimeout); + Bangle.removeListener("lock", lockHandler); } - }, - select : i => { - var app = apps[i]; - if (!app) return; - if (!app.src || require("Storage").read(app.src)===undefined) { - E.showMessage(/*LANG*/"App Source\nNot found"); - setTimeout(drawMenu, 2000); - } else { - load(app.src); - } - }, - back : Bangle.showClock, // button press or tap in top left shows clock now - remove : () => { - // cleanup the timeout to not leave anything behind after being removed from ram - if (lockTimeout) clearTimeout(lockTimeout); - Bangle.removeListener("lock", lockHandler); - } -}); -g.flip(); // force a render before widgets have finished drawing + }); + g.flip(); // force a render before widgets have finished drawing + + // 10s of inactivity goes back to clock + Bangle.setLocked(false); // unlock initially + let lockTimeout; + let lockHandler = function(locked) { + if (lockTimeout) clearTimeout(lockTimeout); + lockTimeout = undefined; + if (locked) + lockTimeout = setTimeout(Bangle.showClock, 10000); + } + Bangle.on("lock", lockHandler); +}; +drawMenu(); -// 10s of inactivity goes back to clock -Bangle.setLocked(false); // unlock initially -let lockTimeout; -let lockHandler = function(locked) { - if (lockTimeout) clearTimeout(lockTimeout); - lockTimeout = undefined; - if (locked) - lockTimeout = setTimeout(Bangle.showClock, 10000); -} -Bangle.on("lock", lockHandler); if (!settings.fullscreen) // finally draw widgets Bangle.drawWidgets(); } diff --git a/apps/launch/metadata.json b/apps/launch/metadata.json index 85fcdd02f..86f52089f 100644 --- a/apps/launch/metadata.json +++ b/apps/launch/metadata.json @@ -2,7 +2,7 @@ "id": "launch", "name": "Launcher", "shortName": "Launcher", - "version": "0.20", + "version": "0.21", "description": "This is needed to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.", "readme": "README.md", "icon": "app.png", diff --git a/apps/lint_exemptions.js b/apps/lint_exemptions.js index 0e37b4036..a1cf34ac5 100644 --- a/apps/lint_exemptions.js +++ b/apps/lint_exemptions.js @@ -1002,12 +1002,6 @@ module.exports = { "no-undef" ] }, - "launch/app.js": { - "hash": "7d5b7d7f2adbe4c8c137f76b6560a06437ab142cfeffb3f0ff261f1250a6b687", - "rules": [ - "no-undef" - ] - }, "kitchen/stepo2.kit.js": { "hash": "b7660bef1a2560f23ff696b03d297cdd39936ca61c01b3d0a316d49f9cf72590", "rules": [