fix to work without fastload utils. tweaks to settings page.

master
thyttan 2023-03-12 01:11:07 +01:00
parent 2268b438e7
commit 4940bcb834
3 changed files with 53 additions and 30 deletions

View File

@ -8,22 +8,30 @@
storage.write("quicklaunch.json", settings);
};
let leaveTrace = function(trace) {
settings.trace = trace;
storage.writeJSON("quicklaunch.json", settings);
return trace;
};
let trace = settings.trace;
let touchHandler = (_,e) => {
let R = Bangle.appRect;
if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return;
qlTrace += "t";
if (settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
trace = leaveTrace(trace+"t");
if (settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
};
let swipeHandler = (lr,ud) => {
if (lr == -1) qlTrace += "l"; // l=left,
if (lr == 1) qlTrace += "r"; // r=right,
if (ud == -1) qlTrace += "u"; // u=up,
if (ud == 1) qlTrace += "d"; // d=down.
if (lr == -1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (lr == 1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (ud == -1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (ud == 1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (lr == -1) trace = leaveTrace(trace+"l"); // l=left,
if (lr == 1) trace = leaveTrace(trace+"r"); // r=right,
if (ud == -1) trace = leaveTrace(trace+"u"); // u=up,
if (ud == 1) trace = leaveTrace(trace+"d"); // d=down.
if (lr == -1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (lr == 1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (ud == -1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (ud == 1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
};
Bangle.setUI({
@ -49,8 +57,9 @@
// Draw app hints
g.setFont("Vector", 11)
.setFontAlign(0,1,3).drawString(settings[qlTrace+"lapp"].name, R.x2, R.y+R.h/2)
.setFontAlign(0,1,1).drawString(settings[qlTrace+"rapp"].name, R.x, R.y+R.h/2)
.setFontAlign(0,1,0).drawString(settings[qlTrace+"uapp"].name, R.x+R.w/2, R.y2)
.setFontAlign(0,-1,0).drawString(settings[qlTrace+"dapp"].name, R.x+R.w/2, R.y);
.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

@ -8,26 +8,33 @@
storage.write("quicklaunch.json", settings);
};
let leaveTrace = function(trace) {
settings.trace = trace;
storage.writeJSON("quicklaunch.json", settings);
return trace;
};
let trace;
Bangle.on("touch", (_,e) => {
if (!Bangle.CLOCK) return;
if (Bangle.CLKINFO_FOCUS) return;
let R = Bangle.appRect;
if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return;
qlTrace = "t"; // t=tap
if (settings[qlTrace].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
trace = leaveTrace("t"); // t=tap
if (settings[trace].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
});
Bangle.on("swipe", (lr,ud) => {
if (!Bangle.CLOCK) return;
if (Bangle.CLKINFO_FOCUS) return;
if (lr == -1) qlTrace = "l"; // l=left,
if (lr == 1) qlTrace = "r"; // r=right,
if (ud == -1) qlTrace = "u"; // u=up,
if (ud == 1) qlTrace = "d"; // d=down.
if (lr == -1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (lr == 1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (ud == -1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (ud == 1 && settings[qlTrace+"app"] && settings[qlTrace+"app"].src){ if (settings[qlTrace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[qlTrace+"app"].src)) reset(qlTrace+"app"); else load(settings[qlTrace+"app"].src); }
if (lr == -1) trace = leaveTrace("l"); // l=left,
if (lr == 1) trace = leaveTrace("r"); // r=right,
if (ud == -1) trace = leaveTrace("u"); // u=up,
if (ud == 1) trace = leaveTrace("d"); // d=down.
if (lr == -1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (lr == 1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (ud == -1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
if (ud == 1 && settings[trace+"app"] && settings[trace+"app"].src){ if (settings[trace+"app"].name == "Show Launcher") Bangle.showLauncher(); else if (!storage.read(settings[trace+"app"].src)) reset(trace+"app"); else load(settings[trace+"app"].src); }
});
}

View File

@ -18,7 +18,7 @@ apps.push({
// Add the Quick Launch extension app
let extension = {
"name": "Quick Launch Extension",
"name": "Extension",
"type": "app",
"sortorder": -11,
"src": "quicklaunch.app.js"
@ -45,7 +45,7 @@ function save(key, value) {
}
// If changing to extension app (from something else) add downstream settings entries.
if (value.name == "Quick Launch Extension" && settings[key].name != extension.name) {
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)"};
storage.write("quicklaunch.json",settings);
@ -54,7 +54,7 @@ function save(key, value) {
// Now change the setting on the current level in the path.
settings[key] = value;
storage.write("quicklaunch.json",settings);
storage.writeJSON("quicklaunch.json",settings);
}
function showMainMenu() {
@ -66,8 +66,15 @@ function showMainMenu() {
//List all selected apps
for (let key of Object.keys(settings)) {
if (key == "trace") continue;
let keyCurrent = key;
mainmenu[key+ ": "+settings[key].name] = function() {showSubMenu(keyCurrent);};
let entry = findPath(key).toUpperCase();
if (entry=="L") entry = "Left";
if (entry=="R") entry = "Right";
if (entry=="U") entry = "Up";
if (entry=="D") entry = "Down";
if (entry=="T") entry = "Tap";
mainmenu[entry+ ": "+settings[key].name] = function() {showSubMenu(keyCurrent);};
}
return E.showMenu(mainmenu);