1
0
Fork 0
BangleApps/apps/quicklaunch/boot.js

59 lines
1.6 KiB
JavaScript

(function() {
var settings = Object.assign(require("Storage").readJSON("quicklaunch.json", true) || {});
if (!settings.leftapp) {
settings["leftapp"] = {"name":"(none)"};
require("Storage").write("quicklaunch.json",settings);
}
if (!settings.rightapp) {
settings["rightapp"] = {"name":"(none)"};
require("Storage").write("quicklaunch.json",settings);
}
if (!settings.upapp) {
settings["upapp"] = {"name":"(none)"};
require("Storage").write("quicklaunch.json",settings);
}
if (!settings.downapp) {
settings["downapp"] = {"name":"(none)"};
require("Storage").write("quicklaunch.json",settings);
}
if (!settings.tapapp) {
settings["tapapp"] = {"name":"(none)"};
require("Storage").write("quicklaunch.json",settings);
}
var sui = Bangle.setUI;
Bangle.setUI = function(mode, cb) {
sui(mode,cb);
if(!mode) return;
if ("object"==typeof mode) mode = mode.mode;
if (!mode.startsWith("clock")) return;
function tap() {
if (settings.tapapp.src) load (settings.tapapp.src);
}
let drag;
let e;
Bangle.on("touch",tap);
Bangle.on("drag", e => {
if (!drag) { // start dragging
drag = {x: e.x, y: e.y};
} else if (!e.b) { // released
const dx = e.x-drag.x, dy = e.y-drag.y;
drag = null;
if ((Math.abs(dx)>Math.abs(dy)+10) && (settings.leftapp.src)) {
// horizontal
load(dx>0 ? settings.rightapp.src : settings.leftapp.src);
}
else if (Math.abs(dy)>Math.abs(dx)+10) {
// vertical
load(dy>0 ? settings.downapp.src : settings.upapp.src);
}
}
});
};
})();