Simplify toggling whitelist

pull/2607/head
Rob Pilling 2023-02-27 20:34:12 +00:00
parent 774372dfa9
commit e24b8283b1
3 changed files with 13 additions and 15 deletions

View File

@ -79,7 +79,7 @@ if (global.save) boot += `global.save = function() { throw new Error("You can't
if (s.options) boot+=`Bangle.setOptions(${E.toJS(s.options)});\n`;
if (s.brightness && s.brightness!=1) boot+=`Bangle.setLCDBrightness(${s.brightness});\n`;
if (s.passkey!==undefined && s.passkey.length==6) boot+=`NRF.setSecurity({passkey:${E.toJS(s.passkey.toString())}, mitm:1, display:1});\n`;
if (s.whitelist && !s.whitelist.disabled) boot+=`NRF.on('connect', function(addr) { if (!(require('Storage').readJSON('setting.json',1)||{}).whitelist.macs.includes(addr)) NRF.disconnect(); });\n`;
if (s.whitelist && !s.whitelist_disabled) boot+=`NRF.on('connect', function(addr) { if (!(require('Storage').readJSON('setting.json',1)||{}).whitelist.includes(addr)) NRF.disconnect(); });\n`;
if (s.rotate) boot+=`g.setRotation(${s.rotate&3},${s.rotate>>2});\n` // screen rotation
// ================================================== FIXING OLDER FIRMWARES
if (FWVERSION<215.068) // 2v15.68 and before had compass heading inverted.

View File

@ -43,10 +43,6 @@ function resetSettings() {
"12hour" : false, // 12 or 24 hour clock?
firstDayOfWeek: 0, // 0 -> Sunday (default), 1 -> Monday
brightness: 1, // LCD brightness from 0 to 1
whitelist: { // Bluetooth whitelist
macs: [],
disabled: true,
},
// welcomed : undefined/true (whether welcome app should show)
options: {
wakeOnBTN1: true,
@ -197,10 +193,10 @@ function showBLEMenu() {
/*LANG*/'Whitelist': {
value:
(
settings.whitelist.disabled ? /*LANG*/"off" : /*LANG*/"on"
settings.whitelist_disabled ? /*LANG*/"off" : /*LANG*/"on"
) + (
settings.whitelist.macs
? " (" + settings.whitelist.macs.length + ")"
settings.whitelist
? " (" + settings.whitelist.length + ")"
: ""
),
onchange: () => setTimeout(showWhitelistMenu) // graphical_menu redraws after the call
@ -353,25 +349,25 @@ function showWhitelistMenu() {
var menu = {
"< Back" : ()=>showBLEMenu(),
};
if (settings.whitelist.disabled) {
if (settings.whitelist_disabled) {
menu[/*LANG*/"Enable"] = () => {
delete settings.whitelist.disabled;
delete settings.whitelist_disabled;
updateSettings();
showBLEMenu();
};
} else {
menu[/*LANG*/"Disable"] = () => {
settings.whitelist.disabled = true;
settings.whitelist_disabled = true;
updateSettings();
showBLEMenu();
};
}
if (settings.whitelist.macs) settings.whitelist.macs.forEach(function(d){
if (settings.whitelist) settings.whitelist.forEach(function(d){
menu[d.substr(0,17)] = function() {
E.showPrompt(/*LANG*/'Remove\n'+d).then((v) => {
if (v) {
settings.whitelist.macs.splice(settings.whitelist.macs.indexOf(d),1);
settings.whitelist.splice(settings.whitelist.indexOf(d),1);
updateSettings();
}
setTimeout(showWhitelistMenu, 50);
@ -385,7 +381,9 @@ function showWhitelistMenu() {
});
NRF.removeAllListeners('connect');
NRF.on('connect', function(addr) {
settings.whitelist.macs.push(addr);
if (!settings.whitelist) settings.whitelist=[];
delete settings.whitelist_disabled;
settings.whitelist.push(addr);
updateSettings();
NRF.removeAllListeners('connect');
showWhitelistMenu();

View File

@ -1 +1 @@
{"ble":true,"blerepl":true,"log":false,"timeout":10,"vibrate":true,"beep":"vib","timezone":0,"HID":false,"clock":null,"12hour":false,"brightness":1,"options":{"wakeOnBTN1":true,"wakeOnBTN2":true,"wakeOnBTN3":true,"wakeOnFaceUp":false,"wakeOnTouch":false,"wakeOnTwist":true,"twistThreshold":819.2,"twistMaxY":-800,"twistTimeout":1000},"whitelist":{"disabled":true}}
{"ble":true,"blerepl":true,"log":false,"timeout":10,"vibrate":true,"beep":"vib","timezone":0,"HID":false,"clock":null,"12hour":false,"brightness":1,"options":{"wakeOnBTN1":true,"wakeOnBTN2":true,"wakeOnBTN3":true,"wakeOnFaceUp":false,"wakeOnTouch":false,"wakeOnTwist":true,"twistThreshold":819.2,"twistMaxY":-800,"twistTimeout":1000}}