Move BLE into its own menu, add passkey pairing setup. Doesn't seem great when working via web bluetooth

pull/543/head
Gordon Williams 2020-05-15 16:14:17 +01:00
parent fcd5a06e21
commit 297188624e
2 changed files with 54 additions and 16 deletions

View File

@ -3,4 +3,5 @@
if (!settings) return;
if (settings.options) Bangle.setOptions(settings.options);
if (settings.brightness && settings.brightness!=1) Bangle.setLCDBrightness(settings.brightness);
if (settings.passkey!==undefined && settings.passkey.length==6) NRF.setSecurity({passkey:settings.passkey, mitm:1, display:1});
})()

View File

@ -67,22 +67,7 @@ function showMainMenu() {
'': { 'title': 'Settings' },
'Make Connectable': ()=>makeConnectable(),
'App/Widget Settings': ()=>showAppSettingsMenu(),
'BLE': {
value: settings.ble,
format: boolFormat,
onchange: () => {
settings.ble = !settings.ble;
updateSettings();
}
},
'Programmable': {
value: settings.blerepl,
format: boolFormat,
onchange: () => {
settings.blerepl = !settings.blerepl;
updateSettings();
}
},
'BLE': ()=>showBLEMenu(),
'Debug Info': {
value: settings.log,
format: v => v ? "Show" : "Hide",
@ -134,6 +119,58 @@ function showMainMenu() {
return E.showMenu(mainmenu);
}
function showBLEMenu() {
E.showMenu({
'BLE': {
value: settings.ble,
format: boolFormat,
onchange: () => {
settings.ble = !settings.ble;
updateSettings();
}
},
'Programmable': {
value: settings.blerepl,
format: boolFormat,
onchange: () => {
settings.blerepl = !settings.blerepl;
updateSettings();
}
},
'Passkey': {
value: settings.passkey?settings.passkey:"none",
onchange: () => setTimeout(showPasskeyMenu) // graphical_menu redraws after the call
},
'< Back': ()=>showMainMenu()
});
}
function showPasskeyMenu() {
var menu = {
"Disable" : () => {
settings.passkey = undefined;
updateSettings();
showBLEMenu();
}
};
if (!settings.passkey || settings.passkey.length!=6)
settings.passkey = "123456";
for (var i=0;i<6;i++) (function(i){
menu[`Digit ${i+1}`] = {
value : 0|settings.passkey[i],
min: 0, max: 9,
onchange: v => {
var p = settings.passkey.split("");
p[i] = v;
settings.passkey = p.join("");
updateSettings();
}
};
})(i);
menu['< Back']=()=>showBLEMenu();
E.showMenu(menu);
}
function showLCDMenu() {
const lcdMenu = {
'': { 'title': 'LCD' },