Skip to content

E-Ink UI rework; BLE pairing lock; devcontainer perm fix;#2781

Open
alessiodam wants to merge 1 commit into
meshcore-dev:devfrom
alessiodam:alessiodam/feature/eink-ui-rework
Open

E-Ink UI rework; BLE pairing lock; devcontainer perm fix;#2781
alessiodam wants to merge 1 commit into
meshcore-dev:devfrom
alessiodam:alessiodam/feature/eink-ui-rework

Conversation

@alessiodam

Copy link
Copy Markdown

I've reworked the entire UI last week so it's cleaner, feels better to navigate and have added some features like BLE pairing locking and flood/zero-hop adverts from the E-Ink UI itself.
I've also fixed the uid for the uucp group in Arch Linux in the devcontainer.

This has all been tested on a LilyGo T-Echo and have not had any issues.

--> Copilot Web generated the PR description below

This pull request introduces several feature enhancements and bug fixes across the companion radio example and supporting libraries, with a focus on BLE pairing control, UI improvements, and device compatibility. The most significant changes add support for locking BLE pairing via persisted preferences, expose pairing controls to the UI and serial interface, improve activity reporting, and enhance display refresh capabilities.

BLE Pairing Lock and Control:

  • Add a pairing_locked field to NodePrefs to persist BLE pairing lock state, and update DataStore to read/write this field. The pairing lock is now enforced at startup and can be toggled via the serial interface and UI. [1] [2] [3] [4]
  • Extend BaseSerialInterface and implement in SerialBLEInterface to allow enabling/disabling BLE pairing at runtime, and ensure pairing requests are rejected when locked. [1] [2] [3] [4] [5]

UI and Activity Reporting:

  • Enhance AbstractUITask and UITask to track and display recent client activities, such as new device discoveries, and expose BLE pairing lock status and controls through the UI. [1] [2] [3] [4]

Display and Visual Feedback:

  • Add a fullRefresh() method to the DisplayDriver interface and implement it for GxEPDDisplay, allowing forced full-panel refreshes to resolve display artifacts. [1] [2] [3] [4] [5]
  • Add a new charging_icon for battery charging status display.

Device and Platform Compatibility:

  • Update .devcontainer/devcontainer.json to fix the group ID for Arch Linux device access.
  • Improve ArduinoSerialInterface::isConnected() to accurately report connection status on NRF52 platforms.

Miscellaneous:

  • Add documentation links to .vscode/extensions.json.
  • Refactor BLE pin code logic in MyMesh to better handle build-time and session-generated PINs.
  • Add an option to flood advertisements to all nodes using the default scope. [1] [2]

These changes collectively improve device security, user experience, and code maintainability.

…ent new devices from pairing (which also stops the LED from blinking on boards like the T-Echo); fix the uid in the devcontainer for Arch Linux;

Signed-off-by: Alessio D'Ambrosio <alessio@alessiodam.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant