mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
3.4 KiB
3.4 KiB
Implementation Plan: Replace Nordic with Kable on Android (Deduplication Pass)
Phase 1: Deduplicate Kable Abstractions into commonMain [checkpoint: 709f6e3]
- Task: Extract common Kable state mapping logic from jvmMain to commonMain 10cdd16
- Create
commonMaintests forBleConnectionStatemapping using KableState - Move
KableMeshtasticRadioProfileandKableBleConnectionlogic that doesn't depend on platform specifics tocommonMain
- Create
- Task: Implement common Kable
ScannerandPeripheralwrappers 2691d70- Extract generic connection lifecycle (connect, reconnect, close) to
commonMainusing Kable'sPeripheralinterface
- Extract generic connection lifecycle (connect, reconnect, close) to
- Task: Conductor - User Manual Verification 'Phase 1: Deduplicate Kable Abstractions into commonMain' (Protocol in workflow.md) 709f6e3
Phase 2: Implement Kable Backend for Android (androidMain) [checkpoint: 12217de]
- Task: Add Kable dependency to Android source set in
core:ble/build.gradle.kts011d619 - Task: Implement Android-specific
BleConnectionFactoryandBleScannerusing the deduplicatedcommonMainlogic 589ee93- Write failing integration tests for Android Kable scanner (using fakes/mocks)
- Implement
KableBleScannerforandroidMain - Write failing integration tests for Android Kable connection (using fakes/mocks)
- Implement
KableBleConnectionforandroidMain(handling Android-specific MTU requests if necessary)
- Task: Conductor - User Manual Verification 'Phase 2: Implement Kable Backend for Android' (Protocol in workflow.md) 12217de
Phase 3: Migrate OTA Firmware Update Logic [checkpoint: 663c8e2]
- Task: Deprecate
NordicDfuHandlerand replace with Kable-based DFU 06fe4f5- Write failing tests for Kable DFU integration
- Implement new DFU handler in
feature:firmwareusingMeshtasticRadioProfile/ Kable abstraction
- Task: Conductor - User Manual Verification 'Phase 3: Migrate OTA Firmware Update Logic' (Protocol in workflow.md) 663c8e2
Phase 4: Wire Kable into Android App and Remove Nordic [checkpoint: ebe1617]
- Task: Deprecate and remove
NordicBleInterfaceandAndroidBleConnectionebe1617- Remove
NordicAndroidCommonLibrariesandNordicDfuLibraryfromgradle/libs.versions.tomland build files - Delete
NordicBleInterface.ktand associated Nordic-specific radio implementations
- Remove
- Task: Wire new
androidMainKable implementation into the Koin DI graph ebe1617- Update
AndroidRadioControllerImplor DI modules to provide the new KableBleConnectionFactoryandBleScanner
- Update
- Task: Conductor - User Manual Verification 'Phase 4: Wire Kable into Android App and Remove Nordic' (Protocol in workflow.md) ebe1617
Phase 5: Final Testing and Integration [checkpoint: 4778c0e]
- Task: Update Android
appUI tests and BLE unit tests to use Kable fakes 4778c0e- Fix any failing tests related to the Nordic removal
- Task: Manual end-to-end verification 4778c0e
- Build and run the Android app, verify BLE scanning, connecting, and messaging
- Verify OTA updates work via BLE
- Verify the Desktop app still functions correctly
- Task: Conductor - User Manual Verification 'Phase 5: Final Testing and Integration' (Protocol in workflow.md) 4778c0e
Phase: Review Fixes
- Task: Apply review suggestions e5dffd9