Settings for disabling specific apps
parent
5e87fc2bcf
commit
39c98bf1c9
|
|
@ -1,4 +1,6 @@
|
|||
(function () {
|
||||
var settings = require("Storage").readJSON("backswipe.json", 1) || {};
|
||||
|
||||
// Overrride the default setUI method, so we can save the back button callback
|
||||
var setUI = Bangle.setUI;
|
||||
Bangle.setUI = function (mode, cb) {
|
||||
|
|
@ -7,9 +9,11 @@
|
|||
options = mode;
|
||||
}
|
||||
|
||||
var currentFile = global.__FILE__ || "";
|
||||
|
||||
print("Setting UI");
|
||||
if(global.BACK) delete global.BACK;
|
||||
if (options && options.back) {
|
||||
if (options && options.back && enabledForApp(currentFile)) {
|
||||
print("Saving back callback");
|
||||
global.BACK = options.back;
|
||||
}
|
||||
|
|
@ -28,6 +32,17 @@
|
|||
}
|
||||
}
|
||||
|
||||
function enabledForApp(app) {
|
||||
if (!settings) return true;
|
||||
if (settings.mode === "blacklist") {
|
||||
return !settings.apps.includes(app);
|
||||
} else if (settings.mode === "whitelist") {
|
||||
return settings.apps.includes(app);
|
||||
} else {
|
||||
return settings.mode === "on" ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
// Listen to left to right swipe
|
||||
Bangle.on("swipe", goBack);
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@
|
|||
"supports" : ["BANGLEJS2"],
|
||||
"type": "bootloader",
|
||||
"storage": [
|
||||
{"name":"backswipe.boot.js","url":"boot.js"}
|
||||
{"name":"backswipe.boot.js","url":"boot.js"},
|
||||
{"name":"backswipe.settings.js","url":"settings.js"}
|
||||
],
|
||||
"data": [
|
||||
{"name":"backswipe.json"}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,103 @@
|
|||
(function() {
|
||||
var FILE = 'backswipe.json';
|
||||
// Mode can be 'blacklist', 'whitelist', 'on' or 'disabled'
|
||||
// Apps is an array of app names, where all the apps that are there are either blocked or allowed, depending on the mode
|
||||
var DEFAULTS = {
|
||||
'mode': 'blacklist',
|
||||
'apps': []
|
||||
};
|
||||
|
||||
var settings = {};
|
||||
|
||||
var loadSettings = function() {
|
||||
var settings = require('Storage').readJSON(FILE, 1) || DEFAULTS;
|
||||
return settings;
|
||||
}
|
||||
|
||||
var saveSettings = function(settings) {
|
||||
require('Storage').write(FILE, settings);
|
||||
}
|
||||
|
||||
var getApps = function() {
|
||||
var apps = require('Storage').list(/\.info$/).map(app => {
|
||||
return app.replace('.info', '');
|
||||
});
|
||||
return apps;
|
||||
}
|
||||
|
||||
var getSettings = function() {
|
||||
var settings = loadSettings();
|
||||
return {
|
||||
mode: settings.mode,
|
||||
apps: settings.apps,
|
||||
};
|
||||
}
|
||||
|
||||
var showMenu = function() {
|
||||
var settings = getSettings();
|
||||
var menu = {
|
||||
'': { 'title': 'Backswipe' },
|
||||
'< Back': () => {
|
||||
load();
|
||||
E.showMenu();
|
||||
},
|
||||
'Mode': {
|
||||
value: settings.mode,
|
||||
format: v => v,
|
||||
onchange: v => {
|
||||
settings.mode = v;
|
||||
},
|
||||
options: ['blacklist', 'whitelist', 'on', 'disabled']
|
||||
},
|
||||
'App List': {
|
||||
value: '',
|
||||
format: v => v,
|
||||
onchange: v => {
|
||||
showAppSubMenu();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
E.showMenu(menu);
|
||||
}
|
||||
|
||||
var showAppSubMenu = function() {
|
||||
var menu = {
|
||||
'': { 'title': 'Backswipe' },
|
||||
'< Back': () => {
|
||||
showMenu();
|
||||
},
|
||||
'Add App': () => {
|
||||
showAppList();
|
||||
}
|
||||
};
|
||||
settings.apps.forEach(app => {
|
||||
menu[app.app] = () => {
|
||||
settings.apps.splice(settings.apps.indexOf(app), 1);
|
||||
}
|
||||
saveSettings(settings);
|
||||
});
|
||||
E.showMenu(menu);
|
||||
}
|
||||
|
||||
var showAppList = function() {
|
||||
var apps = getApps();
|
||||
var menu = {
|
||||
'': { 'title': 'Backswipe' },
|
||||
'< Back': () => {
|
||||
showMenu();
|
||||
}
|
||||
};
|
||||
apps.forEach(app => {
|
||||
menu[app] = () => {
|
||||
settings.apps.push(app);
|
||||
saveSettings(settings);
|
||||
showAppSubMenu();
|
||||
}
|
||||
});
|
||||
E.showMenu(menu);
|
||||
}
|
||||
|
||||
loadSettings();
|
||||
showMenu();
|
||||
})
|
||||
Loading…
Reference in New Issue