forked from FOSS/BangleApps
parent
cb2a321963
commit
03bf02eb22
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
const settings = Object.assign({
|
||||||
|
global: false,
|
||||||
|
apps: []
|
||||||
|
}, require("Storage").readJSON("swipeinv.json", true) || {});
|
||||||
|
|
||||||
|
if (settings.global || settings.apps.length > 0) {
|
||||||
|
const setURIOrig = Bangle.setUI;
|
||||||
|
Bangle.setUI = (mode, callback) => {
|
||||||
|
if (typeof mode === "object" && mode.swipe) {
|
||||||
|
if (settings.global ^ settings.apps.includes(global.__FILE__)) {
|
||||||
|
const origSwipeCb = mode.swipe;
|
||||||
|
mode.swipe = (dirLR, dirUD) => origSwipeCb(dirLR*-1, dirUD*-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return setURIOrig(mode, callback);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"id": "swipeinv",
|
||||||
|
"name": "Swipe inversion",
|
||||||
|
"shortName":"Swipe inv.",
|
||||||
|
"icon": "app.png",
|
||||||
|
"version":"0.01",
|
||||||
|
"description": "Inverts swipe direction globally or per app, see settings. If global inversion is enabled, you can unselect the inversion per app and vice versa.",
|
||||||
|
"type": "bootloader",
|
||||||
|
"tags": "system",
|
||||||
|
"supports": ["BANGLEJS2"],
|
||||||
|
"storage": [
|
||||||
|
{"name":"swipeinv.boot.js","url":"boot.js"},
|
||||||
|
{"name":"swipeinv.settings.js","url":"settings.js"}
|
||||||
|
],
|
||||||
|
"data": [{"name":"swipeinv.json"}]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
(function(back) {
|
||||||
|
var FILE = "swipeinv.json";
|
||||||
|
// Load settings
|
||||||
|
const settings = Object.assign({
|
||||||
|
global: false,
|
||||||
|
apps: []
|
||||||
|
}, require("Storage").readJSON(FILE, true) || {});
|
||||||
|
|
||||||
|
function writeSettings() {
|
||||||
|
require('Storage').writeJSON(FILE, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
function appMenu() {
|
||||||
|
menu = {
|
||||||
|
"" : { "title" : /*LANG*/"Swipe inversion apps" },
|
||||||
|
"< Back" : () => { writeSettings(); mainMenu();}
|
||||||
|
};
|
||||||
|
require("Storage").list(/\.info$/).map(app=>require("Storage").readJSON(app,1)).filter(app => app.type === "app" || !app.type).sort((a,b) => {
|
||||||
|
if (a.name<b.name) return -1;
|
||||||
|
if (a.name>b.name) return 1;
|
||||||
|
return 0;
|
||||||
|
}).forEach(app => {
|
||||||
|
menu[app.name] = {
|
||||||
|
value: settings.apps.includes(app.src),
|
||||||
|
onchange: v => {
|
||||||
|
if (v) {
|
||||||
|
settings.apps.push(app.src);
|
||||||
|
} else {
|
||||||
|
const idx = settings.apps.indexOf(app.src);
|
||||||
|
if (idx !== -1) {
|
||||||
|
settings.apps.splice(idx, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
E.showMenu(menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
function mainMenu() {
|
||||||
|
E.showMenu({
|
||||||
|
"" : { "title" : /*LANG*/"Swipe inversion" },
|
||||||
|
"< Back" : () => back(),
|
||||||
|
|
||||||
|
/*LANG*/'Invert globally': {
|
||||||
|
value: !!settings.global,
|
||||||
|
onchange: v => {
|
||||||
|
settings.global = v;
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*LANG*/'Select apps': () => appMenu()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
mainMenu();
|
||||||
|
})
|
Loading…
Reference in New Issue