BangleApps/apps/swp2clk/boot.js

49 lines
1.3 KiB
JavaScript

{
const DEBUG = false;
const FILE = "swp2clk.data.json";
let log = (message) => {
if (DEBUG) {
console.log(JSON.stringify(message));
}
};
let readSettings = () => {
log("reading settings");
let settings = require("Storage").readJSON(FILE, 1) || {
mode: 0,
whiteList: [],
blackList: []
};
log(settings);
return settings;
};
let settings = readSettings();
//inhibit is needed to filter swipes that had another handler load anything earlier than this handler was called
let inhibit = false;
Bangle.load = ( o => (f) => {
o(f);
log("inhibit caused by change to:" + f);
inhibit = true;
})(Bangle.load);
let swipeHandler = (dir) => {
let currentFile = global.__FILE__||"default";
log("swipe:" + dir + " on app: " + currentFile);
if (!inhibit && dir === 1 && !Bangle.CLOCK) {
log("on a not clock app " + currentFile);
if ((settings.mode === 1 && settings.whiteList.includes(currentFile)) || // "White List"
(settings.mode === 2 && !settings.blackList.includes(currentFile)) || // "Black List"
settings.mode === 3) { // "Always"
log("load clock");
Bangle.showClock();
}
}
inhibit = false;
};
Bangle.on("swipe", swipeHandler);
}