handle app name "(none)" vs empty string "" in settings.js instead of in app.js"

pull/2645/head
thyttan 2023-03-12 12:22:02 +01:00
parent 10ac0e625a
commit 6d80f784b4
2 changed files with 14 additions and 15 deletions

View File

@ -56,15 +56,10 @@
let R = Bangle.appRect;
// Draw app hints
let lname = settings[trace+"lapp"].name=="(none)"?"":settings[trace+"lapp"].name;
let rname = settings[trace+"rapp"].name=="(none)"?"":settings[trace+"rapp"].name;
let uname = settings[trace+"uapp"].name=="(none)"?"":settings[trace+"uapp"].name;
let dname = settings[trace+"dapp"].name=="(none)"?"":settings[trace+"dapp"].name;
let tname = settings[trace+"tapp"].name=="(none)"?"":settings[trace+"tapp"].name;
g.setFont("Vector", 11)
.setFontAlign(0,1,3).drawString(lname, R.x2, R.y+R.h/2)
.setFontAlign(0,1,1).drawString(rname, R.x, R.y+R.h/2)
.setFontAlign(0,1,0).drawString(uname, R.x+R.w/2, R.y2)
.setFontAlign(0,-1,0).drawString(dname, R.x+R.w/2, R.y)
.setFontAlign(0,0,0).drawString(tname, R.x+R.w/2, R.y+R.h/2);
.setFontAlign(0,1,3).drawString(settings[trace+"lapp"].name, R.x2, R.y+R.h/2)
.setFontAlign(0,1,1).drawString(settings[trace+"rapp"].name, R.x, R.y+R.h/2)
.setFontAlign(0,1,0).drawString(settings[trace+"uapp"].name, R.x+R.w/2, R.y2)
.setFontAlign(0,-1,0).drawString(settings[trace+"dapp"].name, R.x+R.w/2, R.y)
.setFontAlign(0,0,0).drawString(settings[trace+"tapp"].name, R.x+R.w/2, R.y+R.h/2);
}

View File

@ -4,7 +4,7 @@ var settings = Object.assign(storage.readJSON("quicklaunch.json", true) || {});
// Add default settings if they haven't been configured before.
for (let c of ["lapp","rapp","uapp","dapp","tapp"]){ // l=left, r=right, u=up, d=down, t=tap.
if (!settings[c]) settings[c] = {"name":"(none)"};
if (!settings[c]) settings[c] = {"name":""};
}
// Convert settings object from before v0.12 to v0.12.
@ -13,6 +13,7 @@ for (let c of ["leftapp","rightapp","upapp","downapp","tapapp"]){
let cNew = c.substring(0,1)+"app";
settings[cNew] = settings[c];
delete settings[c];
if (settings[cNew].name=="(none)") settings[cNew].name = "";
if (settings[cNew].name=="Quick Launch Extension"){
settings[cNew].name = "Extension";
@ -20,6 +21,7 @@ for (let c of ["leftapp","rightapp","upapp","downapp","tapapp"]){
if (settings[d]) {
let dNew = cNew.substring(0,1)+d.substring(3,4)+"app";
settings[dNew] = settings[d];
if (settings[dNew].name=="(none)") settings[dNew].name = "";
}
}
}
@ -71,7 +73,7 @@ function save(key, value) {
// If changing to extension app (from something else) add downstream settings entries.
if (value.name == extension.name && settings[key].name != extension.name) {
for (let c of [path+"lapp", path+"rapp", path+"uapp", path+"dapp", path+"tapp"]) {
settings[c] = {"name":"(none)"};
settings[c] = {"name":""};
storage.write("quicklaunch.json",settings);
}
}
@ -88,7 +90,7 @@ function showMainMenu() {
"< Back" : ()=>{load();}
};
//List all selected apps
// List all selected apps.
for (let key of Object.keys(settings)) {
if (key == "trace") continue;
let keyCurrent = key;
@ -98,7 +100,9 @@ function showMainMenu() {
if (entry=="U") entry = "Up";
if (entry=="D") entry = "Down";
if (entry=="T") entry = "Tap";
mainmenu[entry+ ": "+settings[key].name] = function() {showSubMenu(keyCurrent);};
// If no app is selected the name is an empty string, but we want to display "(none)".
let appName = settings[key].name==""?"(none)":settings[key].name;
mainmenu[entry+ ": "+appName] = function() {showSubMenu(keyCurrent);};
}
return E.showMenu(mainmenu);
@ -111,7 +115,7 @@ function showSubMenu(key) {
};
submenu["(none)"] = function() {
save(key, {"name":"(none)"});
save(key, {"name":""});
showMainMenu();
};
apps.forEach((a)=>{