mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
feat: Add KMP URI handling, import, and QR code generation support (#4856)
This commit is contained in:
parent
4eb711ce58
commit
1e55e554be
33 changed files with 379 additions and 209 deletions
|
|
@ -8,8 +8,8 @@ Use `AGENTS.md` as the source of truth for architecture boundaries and required
|
|||
|
||||
When checking upstream docs/examples, match these repository-pinned versions from `gradle/libs.versions.toml`:
|
||||
|
||||
- Kotlin: `2.3.10`
|
||||
- Koin: `4.2.0-RC2` (`koin-annotations` `2.1.0`, compiler plugin `0.4.0`)
|
||||
- Kotlin: `2.3.20`
|
||||
- Koin: `4.2.0` (`koin-annotations` `2.1.0`, compiler plugin `0.4.1`)
|
||||
- JetBrains Navigation 3: `1.1.0-alpha04` (`org.jetbrains.androidx.navigation3`)
|
||||
- JetBrains Lifecycle (multiplatform): `2.10.0-beta01` (`org.jetbrains.androidx.lifecycle`)
|
||||
- AndroidX Lifecycle (Android-only): `2.10.0` (`androidx.lifecycle`)
|
||||
|
|
|
|||
|
|
@ -32,25 +32,25 @@ Modules that share JVM-specific code between Android and desktop now standardize
|
|||
| `core:ble` | ✅ | ✅ | Kable multiplatform BLE abstractions in commonMain |
|
||||
| `core:nfc` | ✅ | ✅ | NFC contract in commonMain; hardware in androidMain |
|
||||
| `core:service` | ✅ | ✅ | Service layer; Android bindings in androidMain |
|
||||
| `core:ui` | ✅ | ✅ | Shared Compose UI, `jvmAndroidMain` + `jvmMain` actuals |
|
||||
| `core:ui` | ✅ | ✅ | Shared Compose UI, pure KMP QR generator, `jvmAndroidMain` + `jvmMain` actuals |
|
||||
| `core:testing` | ✅ | ✅ | Shared test doubles, fakes, and utilities for `commonTest` |
|
||||
| `core:api` | ❌ | — | Android-only (AIDL). Intentional. |
|
||||
| `core:barcode` | ❌ | — | Android-only (CameraX). Flavor split minimised to decoder factory only (ML Kit / ZXing). Shared contract in `core:ui`. |
|
||||
|
||||
**18/20** core modules are KMP with JVM targets. The 2 Android-only modules are intentionally platform-specific, with shared contracts already abstracted into `core:ui/commonMain`.
|
||||
|
||||
### Feature Modules (8 total — all KMP with JVM)
|
||||
### Feature Modules (8 total — 7 KMP with JVM)
|
||||
|
||||
| Module | UI in commonMain? | Desktop wired? |
|
||||
|---|:---:|:---:|
|
||||
| `feature:settings` | ✅ | ✅ ~35 real screens; shared `ChannelViewModel` |
|
||||
| `feature:settings` | ✅ | ✅ ~35 real screens; shared `ChannelScreen` & `ViewModel` |
|
||||
| `feature:node` | ✅ | ✅ Adaptive list-detail; shared `NodeContextMenu` |
|
||||
| `feature:messaging` | ✅ | ✅ Adaptive contacts + messages; 17 shared files in commonMain (ViewModels, MessageBubble, MessageItem, QuickChat, Reactions, DeliveryInfo, actions, events) |
|
||||
| `feature:connections` | ✅ | ✅ Shared `ConnectionsScreen` with dynamic transport detection |
|
||||
| `feature:intro` | ✅ | — |
|
||||
| `feature:map` | ✅ | Placeholder; shared `NodeMapViewModel` |
|
||||
| `feature:firmware` | — | Placeholder; DFU is Android-only |
|
||||
| `feature:widget` | ❌ | — | Android-only (App Widgets). Intentional. |
|
||||
| `feature:widget` | ❌ | — | Android-only (Glance appwidgets). Intentional. |
|
||||
|
||||
### Desktop Module
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ here| **Migrate to JetBrains Compose Multiplatform dependencies** | High | Low |
|
|||
| Connections | ✅ Unified shared UI with dynamic transport detection |
|
||||
| Metrics logs | ✅ TracerouteLog, NeighborInfoLog, HostMetricsLog |
|
||||
| Map | ❌ Needs MapLibre or equivalent |
|
||||
| QR Generation | ✅ Pure KMP generation via `qrcode-kotlin` |
|
||||
| Charts | ✅ Vico KMP charts wired in commonMain (Device, Environment, Signal, Power, Pax) |
|
||||
| Debug Panel | ✅ Real screen (mesh log viewer via shared `DebugViewModel`) |
|
||||
| Notifications | ✅ Desktop native notifications with system tray icon support |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue