Meshtastic-Android/core
James Rich b708b2ff76 feat: implement batched NodeInfo delivery in handshake protocol
This commit introduces support for `NodeInfoBatch` messages, allowing the application to receive and process multiple node records efficiently during the second stage of the device handshake. This replaces the legacy approach of sending node information individually, improving synchronization performance.

Key changes include:

- **Handshake Protocol:**
    - Added `BATCH_NODE_INFO_NONCE` to `HandshakeConstants`.
    - Updated `MeshConnectionManagerImpl` to request batched node information by default during the handshake process.
    - Updated `MeshConfigFlowManagerImpl` to handle the batch-specific completion nonce, ensuring Stage 2 of the handshake finalizes correctly.

- **Packet Handling:**
    - Enhanced `FromRadioPacketHandlerImpl` to detect `node_info_batch` packets.
    - Implemented logic to iterate through batched items and process each `NodeInfo` record via the `MeshConfigFlowManager`.
    - Updated connection progress reporting to reflect the count of nodes received within a batch.

- **Testing and Simulation:**
    - Updated `MockInterface` to simulate batched node delivery, refactoring the mock response logic into distinct Stage 1 (config) and Stage 2 (node info) phases.
    - Added a unit test in `FromRadioPacketHandlerImplTest` to verify that batched items are correctly routed and that the UI connection status is updated.

Specific changes:
- Modified `HandshakeConstants` to document the transition to batched NodeInfo delivery in Stage 2.
- Updated `MeshConnectionManagerImpl.startNodeInfoOnly()` to use the new batch nonce.
- Added `nodeInfoBatch` processing branch to the `handleFromRadio` logic.
2026-04-03 10:51:17 -05:00
..
api feat(tak): introduce built-in Local TAK Server and mesh integration (#4951) 2026-04-01 20:21:25 +00:00
barcode feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
ble feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
common feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
data feat: implement batched NodeInfo delivery in handshake protocol 2026-04-03 10:51:17 -05:00
database feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
datastore Refactor map layer management and navigation infrastructure (#4921) 2026-03-26 00:29:24 +00:00
di refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00
domain feat(wifi-provision): add mPWRD-OS branding and disclaimer banner (#4978) 2026-04-03 13:47:15 +00:00
model refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00
navigation feat(wifi): introduce BLE-based WiFi provisioning for nymea-compatible devices (#4968) 2026-04-02 17:31:17 +00:00
network feat: implement batched NodeInfo delivery in handshake protocol 2026-04-03 10:51:17 -05:00
nfc refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00
prefs feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
proto refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00
repository feat: implement batched NodeInfo delivery in handshake protocol 2026-04-03 10:51:17 -05:00
resources chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4975) 2026-04-03 09:13:23 -05:00
service feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00
takserver feat(wifi-provision): add mPWRD-OS branding and disclaimer banner (#4978) 2026-04-03 13:47:15 +00:00
testing feat(analytics): expand DataDog RUM integration and align with iOS parity (#4970) 2026-04-01 20:27:28 +00:00
ui feat(ci): shard test suite and enable JUnit 5 parallel execution (#4977) 2026-04-03 13:08:49 +00:00