diff --git a/apps/launch/ChangeLog b/apps/launch/ChangeLog index ceb0177da..b8c198d50 100644 --- a/apps/launch/ChangeLog +++ b/apps/launch/ChangeLog @@ -10,3 +10,5 @@ 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) + Add /*LANG*/ tags for internationalisation diff --git a/apps/launch/app.js b/apps/launch/app.js index 42aba1bb9..4ceabe751 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 @@ -54,10 +54,10 @@ E.showScroller({ var app = apps[i]; if (!app) return; if (!app.src || require("Storage").read(app.src)===undefined) { - E.showMessage("App Source\nNot found"); + E.showMessage(/*LANG*/"App Source\nNot found"); setTimeout(drawMenu, 2000); } else { - E.showMessage("Loading..."); + E.showMessage(/*LANG*/"Loading..."); load(app.src); } } @@ -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..1bb3d5c9a 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': { + /*LANG*/"": {"title": /*LANG*/"Launcher Settings"}, + /*LANG*/"< Back": back, + /*LANG*/"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': { + /*LANG*/"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)} + }, + /*LANG*/"Show clocks": { + value: settings.showClocks == true, + format: v => v ? /*LANG*/"Yes" : /*LANG*/"No", + onchange: (m) => {save("showClocks", m)} } }; E.showMenu(appMenu);