diff --git a/apps/launch/ChangeLog b/apps/launch/ChangeLog index ceb0177da..7f0e5d66a 100644 --- a/apps/launch/ChangeLog +++ b/apps/launch/ChangeLog @@ -10,3 +10,4 @@ After 10s of being locked, the launcher goes back to the clock screen 0.10: added in selectable font in settings including scalable vector font 0.11: Merge Bangle.js 1 and 2 launchers, again +0.12: Add an option to hide clocks from the app list (fix #1015) diff --git a/apps/launch/app.js b/apps/launch/app.js index 42aba1bb9..de7aa8963 100644 --- a/apps/launch/app.js +++ b/apps/launch/app.js @@ -1,9 +1,9 @@ var s = require("Storage"); -let fonts = g.getFonts(); var scaleval = 1; var vectorval = 20; var font = g.getFonts().includes("12x20") ? "12x20" : "6x8:2"; -let settings = require('Storage').readJSON("launch.json", true) || {}; +let settings = Object.assign({ showClocks: true }, s.readJSON("launch.json", true) || {}); + if ("vectorsize" in settings) { vectorval = parseInt(settings.vectorsize); } @@ -14,10 +14,10 @@ if ("font" in settings){ } else{ font = settings.font; - scaleval = (font.split('x')[1])/20; + scaleval = (font.split("x")[1])/20; } } -var apps = s.list(/\.info$/).map(app=>{var a=s.readJSON(app,1);return a&&{name:a.name,type:a.type,icon:a.icon,sortorder:a.sortorder,src:a.src};}).filter(app=>app && (app.type=="app" || app.type=="clock" || !app.type)); +var apps = s.list(/\.info$/).map(app=>{var a=s.readJSON(app,1);return a&&{name:a.name,type:a.type,icon:a.icon,sortorder:a.sortorder,src:a.src};}).filter(app=>app && (app.type=="app" || (app.type=="clock" && settings.showClocks) || !app.type)); apps.sort((a,b)=>{ var n=(0|a.sortorder)-(0|b.sortorder); if (n) return n; // do sortorder first @@ -72,7 +72,7 @@ if (process.env.HWVERSION==2) { // 10s of inactivity goes back to clock Bangle.setLocked(false); // unlock initially var lockTimeout; -Bangle.on('lock', locked => { +Bangle.on("lock", locked => { if (lockTimeout) clearTimeout(lockTimeout); lockTimeout = undefined; if (locked) diff --git a/apps/launch/metadata.json b/apps/launch/metadata.json index 1701d1f87..96bbf104b 100644 --- a/apps/launch/metadata.json +++ b/apps/launch/metadata.json @@ -2,7 +2,7 @@ "id": "launch", "name": "Launcher", "shortName": "Launcher", - "version": "0.11", + "version": "0.12", "description": "This is needed to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.", "icon": "app.png", "type": "launch", diff --git a/apps/launch/settings.js b/apps/launch/settings.js index 8be1adb36..f75e875a8 100644 --- a/apps/launch/settings.js +++ b/apps/launch/settings.js @@ -1,24 +1,30 @@ // make sure to enclose the function in parentheses (function(back) { - let settings = require('Storage').readJSON('launch.json',1)||{}; + let settings = Object.assign({ showClocks: true }, require("Storage").readJSON("launch.json", true) || {}); + let fonts = g.getFonts(); function save(key, value) { settings[key] = value; - require('Storage').write('launch.json',settings); + require("Storage").write("launch.json",settings); } const appMenu = { - '': {'title': 'Launcher Settings'}, - '< Back': back, - 'Font': { + "": {"title": "Launcher Settings"}, + "< Back": back, + "Font": { value: fonts.includes(settings.font)? fonts.indexOf(settings.font) : fonts.indexOf("12x20"), min:0, max:fonts.length-1, step:1,wrap:true, - onchange: (m) => {save('font', fonts[m])}, + onchange: (m) => {save("font", fonts[m])}, format: v => fonts[v] }, - 'Vector font size': { + "Vector font size": { value: settings.vectorsize || 10, min:10, max: 20,step:1,wrap:true, - onchange: (m) => {save('vectorsize', m)} + onchange: (m) => {save("vectorsize", m)} + }, + "Show clocks": { + value: settings.showClocks == true, + format: v => v ? "Yes" : "No", + onchange: (m) => {save("showClocks", m)} } }; E.showMenu(appMenu);