add settings for standard # of swipe and drag handlers

master
thyttan 2023-02-07 20:28:22 +01:00
parent 23e345202a
commit 4649f908d0
2 changed files with 36 additions and 14 deletions

View File

@ -27,7 +27,7 @@
return 0; return 0;
} else if (Bangle["#on"+eventType] instanceof Array) { } else if (Bangle["#on"+eventType] instanceof Array) {
return Bangle["#on"+eventType].length; return Bangle["#on"+eventType].length;
} else if (Bangle["#on"+eventType] !== undefiened) { } else if (Bangle["#on"+eventType] !== undefined) {
return 1; return 1;
} }
} }
@ -36,7 +36,7 @@
// if it is a left to right swipe // if it is a left to right swipe
if (lr === 1) { if (lr === 1) {
// if we're in an app that has a back button, run the callback for it // if we're in an app that has a back button, run the callback for it
if (global.BACK && countHandlers("swipe")<4 && countHandlers("drag")<1) { // # of allowed handlers should be user configurable in settings if (global.BACK && countHandlers("swipe")<=settings.standardNumSwipeHandlers && countHandlers("drag")<=settings.standardNumDragHandlers) {
global.BACK(); global.BACK();
} }
} }

View File

@ -4,19 +4,21 @@
// Apps is an array of app info objects, where all the apps that are there are either blocked or allowed, depending on the mode // Apps is an array of app info objects, where all the apps that are there are either blocked or allowed, depending on the mode
var DEFAULTS = { var DEFAULTS = {
'mode': 0, 'mode': 0,
'apps': [] 'apps': [],
'standardNumSwipeHandlers': 0,
'standardNumDragHandlers': 0
}; };
var settings = {}; var settings = {};
var loadSettings = function() { var loadSettings = function() {
settings = require('Storage').readJSON(FILE, 1) || DEFAULTS; settings = require('Storage').readJSON(FILE, 1) || DEFAULTS;
} };
var saveSettings = function(settings) { var saveSettings = function(settings) {
require('Storage').write(FILE, settings); require('Storage').write(FILE, settings);
} };
// Get all app info files // Get all app info files
var getApps = function() { var getApps = function() {
var apps = require('Storage').list(/\.info$/).map(appInfoFileName => { var apps = require('Storage').list(/\.info$/).map(appInfoFileName => {
@ -35,8 +37,8 @@
return 0; return 0;
}); });
return apps; return apps;
} };
var showMenu = function() { var showMenu = function() {
var menu = { var menu = {
'': { 'title': 'Backswipe' }, '': { 'title': 'Backswipe' },
@ -55,11 +57,31 @@
}, },
'App List': () => { 'App List': () => {
showAppSubMenu(); showAppSubMenu();
},
'standard # of swipe handlers' : { // If more than this many handlers are present backswipe will not go back
value: 0|settings.standardNumSwipeHandlers,
min: 0,
max: 10,
format: v=>v,
onchange: v => {
settings.standardNumSwipeHandlers = v;
saveSettings(settings);
},
},
'standard # of drag handlers' : { // If more than this many handlers are present backswipe will not go back
value: 0|settings.standardNumDragHandlers,
min: 0,
max: 10,
format: v=>v,
onchange: v => {
settings.standardNumDragHandlers = v;
saveSettings(settings);
},
} }
}; };
E.showMenu(menu); E.showMenu(menu);
} };
var showAppSubMenu = function() { var showAppSubMenu = function() {
var menu = { var menu = {
@ -101,4 +123,4 @@
loadSettings(); loadSettings();
showMenu(); showMenu();
}) })