Launcher: Add an option to hide clocks from the app list

master
Alessandro Cocco 2022-02-03 22:25:42 +01:00
parent 4198189fbb
commit 1bed603882
4 changed files with 21 additions and 14 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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",

View File

@ -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);