diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index 38510ad58..25adad359 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -55,4 +55,6 @@ 0.48: Allow reading custom themes from files 0.49: Now reloads settings properly after 'Calibrate Battery' 0.50: Add Bangle.js 2 touchscreen calibration - for 2v16 or 2v15 cutting edge builds -0.51: Add option for left-handed users +0.51: Add setting for configuring a launcher +0.52: Add option for left-handed users + diff --git a/apps/setting/metadata.json b/apps/setting/metadata.json index 210ebf0f4..3a3094a4e 100644 --- a/apps/setting/metadata.json +++ b/apps/setting/metadata.json @@ -1,7 +1,7 @@ { "id": "setting", "name": "Settings", - "version": "0.51", + "version": "0.52", "description": "A menu for setting up Bangle.js", "icon": "settings.png", "tags": "tool,system", diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 102708729..5d3bd3705 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -87,6 +87,7 @@ function showSystemMenu() { /*LANG*/'LCD': ()=>showLCDMenu(), /*LANG*/'Locale': ()=>showLocaleMenu(), /*LANG*/'Select Clock': ()=>showClockMenu(), + /*LANG*/'Select Launcher': ()=>showLauncherMenu(), /*LANG*/'Date & Time': ()=>showSetTimeMenu() }; @@ -685,6 +686,35 @@ function showClockMenu() { } return E.showMenu(clockMenu); } +function showLauncherMenu() { + var launcherApps = require("Storage").list(/\.info$/) + .map(app => {var a=storage.readJSON(app, 1);return (a&&a.type == "launch")?a:undefined}) + .filter(app => app) // filter out any undefined apps + .sort((a, b) => a.sortorder - b.sortorder); + const launcherMenu = { + '': { + 'title': /*LANG*/'Select Launcher', + }, + '< Back': ()=>showSystemMenu(), + }; + launcherApps.forEach((app, index) => { + var label = app.name; + if ((!settings.launcher && index === 0) || (settings.launcher === app.src)) { + label = "* " + label; + } + launcherMenu[label] = () => { + if (settings.launcher !== app.src) { + settings.launcher = app.src; + updateSettings(); + showMainMenu(); + } + }; + }); + if (launcherApps.length === 0) { + launcherMenu[/*LANG*/"No Launchers Found"] = () => { }; + } + return E.showMenu(launcherMenu); +} function showSetTimeMenu() { d = new Date();