mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-06-01 10:39:00 -04:00
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>
71 lines
1.6 KiB
YAML
71 lines
1.6 KiB
YAML
# Codecov configuration for Meshtastic Android
|
|
# Ref: https://docs.codecov.com/docs/codecovyml-reference
|
|
|
|
codecov:
|
|
branch: main
|
|
|
|
coverage:
|
|
precision: 2
|
|
round: down
|
|
range: "70...100"
|
|
status:
|
|
project:
|
|
default:
|
|
target: auto # Coverage should not decrease from base branch
|
|
threshold: 1% # Allow 1% drop to reduce noise
|
|
patch:
|
|
default:
|
|
target: auto # New code should have coverage similar to project average
|
|
threshold: 1%
|
|
base: auto
|
|
|
|
comment:
|
|
layout: "reach,diff,flags,files"
|
|
behavior: default
|
|
require_changes: false # Post a comment even if coverage doesn't change
|
|
|
|
flags:
|
|
host-unit:
|
|
paths:
|
|
- .
|
|
carryforward: true
|
|
android-instrumented:
|
|
paths:
|
|
- .
|
|
carryforward: true
|
|
|
|
component_management:
|
|
default_rules:
|
|
statuses:
|
|
- type: project
|
|
target: auto
|
|
threshold: 1%
|
|
individual_components:
|
|
- component_id: core
|
|
name: Core
|
|
paths:
|
|
- core/**
|
|
- component_id: features
|
|
name: Features
|
|
paths:
|
|
- feature/**
|
|
- component_id: app
|
|
name: App
|
|
paths:
|
|
- androidApp/**
|
|
- component_id: desktop
|
|
name: Desktop
|
|
paths:
|
|
- desktopApp/**
|
|
|
|
ignore:
|
|
- "**/build/**"
|
|
- "**/*.pb.kt" # Generated Protobuf code
|
|
- "core/resources/**" # Centralized resources
|
|
- "**/test/**" # Unit tests
|
|
- "**/androidTest/**" # Instrumented tests
|
|
- "**/*Test.kt" # Test files
|
|
- "**/*Mock.kt" # Fakes/Mocks
|
|
- "**/*Fake.kt" # Fakes
|
|
- "**/testing/**" # Shared test utilities
|