mckero
de85aa1e8b
refactor(amsat): align with Material3 conventions per PR #233 review
Addresses feedback from rt-bishop/Look4Sat#233:
1. Migrate hardcoded colors to MainTheme colorScheme
- Extend darkScheme: tertiary (Active 0xFF648FFF), tertiaryContainer (Telemetry 0xFFFFB000)
- Extend lightScheme: tertiary (0xFF3C6FE0), tertiaryContainer (0xFFE09800) for contrast
- Remove top-level Color() constants from SatStatusScreen.kt
- Add statusColorOf() mapper using MaterialTheme.colorScheme
2. Move HTTP implementation from domain to data layer (Clean Architecture)
- Delete AmSatApiClient.kt from core:domain (violates AGENTS.md: "Pure Kotlin, NO Android deps")
- Migrate to IRemoteSource/RemoteSource in core:data (uses existing OkHttp3)
- AmSatRepository now depends on IRemoteSource instead of AmSatApiClient
3. Inline JSON parsing (prepare for java.time migration)
- Parse AMSAT API responses (names, reports) in AmSatRepository
- Time parsing still uses manual logic (java.time desugaring in follow-up)
Before:
- Hardcoded Color(0xFFXXXXXX) in UI + Repository (no theme support)
- HttpURLConnection in domain layer (architecture violation)
- AMSAT colors duplicated across modules
After:
- MaterialTheme.colorScheme.tertiary/tertiaryContainer (light/dark adaptive)
- HTTP via data layer RemoteSource (follows AGENTS.md architecture)
- Single source of truth for AMSAT colors
Ref: https://github.com/rt-bishop/Look4Sat/pull/233#discussion_r1868599947
Ref: AGENTS.md "core:domain - Pure Kotlin (JVM). NO Android dependencies."