James Rich
8ae937b063
refactor: Move RadioController interfaces to core:repository and split into focused sub-interfaces
...
Relocates RadioController, AdminController, MessagingController,
NodeController, and RequestController from core:model to core:repository
where they belong (alongside their consumers and the ServiceRepository
they mirror).
Splits the monolithic RadioController into 4 focused sub-interfaces
following the Interface Segregation Principle:
- AdminController: config, channels, device lifecycle
- MessagingController: send packets, reactions, contacts
- NodeController: favorite, ignore, mute, remove
- RequestController: traceroute, telemetry, position queries
RadioController remains as a composite extending all four for backward
compatibility. Feature modules can now inject the narrower interface
for better testability.
Also fixes ScannerViewModelTest by adding Dispatchers.setMain/resetMain
to match the pattern used by all other ViewModel tests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-28 08:16:17 -05:00
James Rich
de665518a7
fix: Resolve lint errors and warnings
...
- Wrap StateFlow.value read in remember{} to satisfy composition lint
- Wrap derivedStateOf in remember{} (MapView PurgeTileSourceDialog)
- Use mutableIntStateOf to avoid autoboxing (MapStyleDialog)
- Use ResourcesCompat.getDrawable() instead of deprecated getDrawable()
- Fix mixed indentation in MarkerClusterer.java
Lint result: 0 errors, 10 warnings (down from 2 errors, 12 warnings)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-28 06:37:32 -05:00
James Rich
7e3bd85847
cleanup: Remove legacy cruft and eliminate runBlocking from UI path
...
- Remove x86/x86_64 from ABI filters (armeabi-v7a/arm64-v8a only)
- Remove unused takpacket-sdk-jvm from version catalog
- Raise core/proto minSdk from 21 to 26 (ATAK compat no longer needed)
- Remove stale FIXME comment about foreground service in manifest
- Replace Executors.newSingleThreadExecutor with Dispatchers.Default.asExecutor
in BarcodeScannerProvider (removes manual thread pool management)
- Convert formatAgo() to @Composable with stringResource(), eliminating
runBlocking from the UI rendering path. Non-composable callers (map views,
accessibility) use a 3-arg overload with pre-resolved strings.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-28 06:37:32 -05:00
James Rich
50cf226561
Change Ktor log level to INFO and add 'HttpClient' tag to KermitHttpLogger
2026-05-28 06:37:32 -05:00
James Rich
69883e9306
refactor: remove AIDL API and modernize radio architecture
...
Remove the deprecated AIDL/IPC API surface and perform deep architectural
modernization of the radio command pipeline, aligning with the meshtastic-sdk
AdminApiImpl pattern for future SDK migration.
Key changes:
1. AIDL Removal & Infrastructure Cleanup
- Delete core:api module and all AIDL interfaces
- Remove ServiceBroadcasts + CommonParcelable infrastructure
- Remove core:api from CI workflow lint/publish steps
2. Model Modernization
- Introduce NodeAddress sealed class with type-safe addressing
- Remove deprecated DataPacket constants in favor of NodeAddress
- Consolidate dual node maps into single source with getNodeById
- Split large model files, deduplicate NodeEntity, flatten RadioController
3. Service Layer Refactoring (SDK-aligned)
- Remove ServiceAction sealed class, use direct suspend calls
- Convert CommandSender & MeshActionHandler to suspend APIs
- Merge MeshActionHandler into DirectRadioControllerImpl
(ViewModel → RadioController → CommandSender, no intermediate layer)
- Build AdminMessage protos directly with typed protos end-to-end
- Apply structured concurrency to NodeRequestActions/NodeManagementActions
- Fix CancellationException handling throughout
Architecture (before → after):
ViewModel → RadioController → Handler → CommandSender → PacketHandler
ViewModel → RadioController → CommandSender → PacketHandler
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-28 06:37:32 -05:00
James Rich
a79e30e698
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5631 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com >
2026-05-28 03:42:49 -07:00
James Rich
212270ebf0
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5607 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com >
2026-05-26 13:14:32 -05:00
James Rich
2d60e384b0
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5588 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com >
2026-05-23 17:34:06 -05:00
James Rich
e167b58615
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5583 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com >
2026-05-23 06:32:28 -05:00
James Rich
d870141b7c
feat(ai): upgrade Chirpy on-device AI with proper APIs, download UX, and streaming ( #5579 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-22 23:51:02 +00:00
James Rich
c26ef946b1
feat(docs): upgrade Chirpy assistant with streaming and live diagnostics ( #5564 )
2026-05-21 10:25:19 -05:00
James Rich
ea85b906e8
feat(nav): rename tab labels to canonical order ( #5551 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-20 17:57:08 -05:00
James Rich
228765a159
fix(ci): unblock Dokka documentation generation ( #5496 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-19 13:00:45 -05:00
James Rich
83bb1a31f7
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5465 )
2026-05-19 10:12:04 -05:00
James Rich
fc0df1a79a
feat(docs): In-app documentation browser with Jekyll site and Docusaurus sync ( #5445 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-19 04:00:22 +00:00
James Rich
f5128798a8
feat: adopt Material 3 Expressive design system (M3-native APIs only) ( #5479 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-19 01:10:47 +00:00
James Rich
df4f10c4d6
fix(nav): remote admin nodenum + Nav3 consolidation and improvements ( #5478 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-18 17:29:27 +00:00
James Rich
f4b6b02ace
refactor(build): rename entry modules and remove DESKTOP_ONLY mode ( #5476 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-18 12:44:12 +00:00