Add passkey display/confirm support
Added support for numeric comparison and passkey entry with keyboard-side display when pairing bluetooth.
Added a pairing screen for displays to show the passkey and made various tweaks to display code to allow for switching between screens and to select appropriate font sizes across displays of various sizes.
128x32 OLED status screen (unchanged)
128x32 OLED pairing screen
128x64 OLED status screen (layer indicator is now the same size as the top text)
128x64 OLED pairing screen
nice!view with built-in status screen (updated font sizes)
nice!view pairing screen
I also snuck in some refactoring of BLE code which was unrelated to the passkey support, which I did while trying to debug things (see the first commit in this PR). I can pull that out to a separate PR if you'd like.
Remaining work:
- [x] Support upgrading security by re-pairing an existing connection
- [ ] Make sure everything works properly when paired to multiple hosts, and they all need to upgrade security
- [ ] Fix passkey entry bugs
I'm probably going to put this on hold until we finish upgrading to Zephyr 3.5 to make sure the problems I was running into with BT pairing aren't just bugs in Zephyr.
This feature would be a big win for split keyboards!
Is there any possibility of it being resurrected?