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); 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 touchHandler = (_,e) => {
let R = Bangle.appRect; let R = Bangle.appRect;
if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return; if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return;
qlTrace += "t"; trace = leaveTrace(trace+"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); } 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) => { let swipeHandler = (lr,ud) => {
if (lr == -1) qlTrace += "l"; // l=left, if (lr == -1) trace = leaveTrace(trace+"l"); // l=left,
if (lr == 1) qlTrace += "r"; // r=right, if (lr == 1) trace = leaveTrace(trace+"r"); // r=right,
if (ud == -1) qlTrace += "u"; // u=up, if (ud == -1) trace = leaveTrace(trace+"u"); // u=up,
if (ud == 1) qlTrace += "d"; // d=down. if (ud == 1) trace = leaveTrace(trace+"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[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[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[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[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[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[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[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({ Bangle.setUI({
@ -49,8 +57,9 @@
// Draw app hints // Draw app hints
g.setFont("Vector", 11) g.setFont("Vector", 11)
.setFontAlign(0,1,3).drawString(settings[qlTrace+"lapp"].name, R.x2, 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[qlTrace+"rapp"].name, R.x, 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[qlTrace+"uapp"].name, R.x+R.w/2, R.y2) .setFontAlign(0,1,0).drawString(settings[trace+"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,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); 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) => { Bangle.on("touch", (_,e) => {
if (!Bangle.CLOCK) return; if (!Bangle.CLOCK) return;
if (Bangle.CLKINFO_FOCUS) return; if (Bangle.CLKINFO_FOCUS) return;
let R = Bangle.appRect; let R = Bangle.appRect;
if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return; if (e.x < R.x || e.x > R.x2 || e.y < R.y || e.y > R.y2 ) return;
qlTrace = "t"; // t=tap trace = leaveTrace("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); } 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) => { Bangle.on("swipe", (lr,ud) => {
if (!Bangle.CLOCK) return; if (!Bangle.CLOCK) return;
if (Bangle.CLKINFO_FOCUS) return; if (Bangle.CLKINFO_FOCUS) return;
if (lr == -1) qlTrace = "l"; // l=left, if (lr == -1) trace = leaveTrace("l"); // l=left,
if (lr == 1) qlTrace = "r"; // r=right, if (lr == 1) trace = leaveTrace("r"); // r=right,
if (ud == -1) qlTrace = "u"; // u=up, if (ud == -1) trace = leaveTrace("u"); // u=up,
if (ud == 1) qlTrace = "d"; // d=down. if (ud == 1) trace = leaveTrace("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[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[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[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[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[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[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[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 // Add the Quick Launch extension app
let extension = { let extension = {
"name": "Quick Launch Extension", "name": "Extension",
"type": "app", "type": "app",
"sortorder": -11, "sortorder": -11,
"src": "quicklaunch.app.js" "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 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"]) { for (let c of [path+"lapp", path+"rapp", path+"uapp", path+"dapp", path+"tapp"]) {
settings[c] = {"name":"(none)"}; settings[c] = {"name":"(none)"};
storage.write("quicklaunch.json",settings); storage.write("quicklaunch.json",settings);
@ -54,7 +54,7 @@ function save(key, value) {
// Now change the setting on the current level in the path. // Now change the setting on the current level in the path.
settings[key] = value; settings[key] = value;
storage.write("quicklaunch.json",settings); storage.writeJSON("quicklaunch.json",settings);
} }
function showMainMenu() { function showMainMenu() {
@ -66,8 +66,15 @@ function showMainMenu() {
//List all selected apps //List all selected apps
for (let key of Object.keys(settings)) { for (let key of Object.keys(settings)) {
if (key == "trace") continue;
let keyCurrent = key; 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); return E.showMenu(mainmenu);