feat(status): add AMSAT satellite status tracking

New feature: displays recent AMSAT satellite activity from amsat.org API.
Shows 6-day status grid (Heard/Telemetry/Not Heard) + detailed reports.

Addresses PR #233 feedback:
- Uses Material3 colorScheme (tertiary/tertiaryContainer) for theme support
- HTTP in data layer via RemoteSource (Clean Architecture)
- SimpleDateFormat instead of manual date math
- Edge-to-edge support

Implementation:
- feature:status module (AMSAT status screen + legend)
- core:data AmSatRepository (API client using RemoteSource)
- core:domain models (SatStatus/SatReport/SatSlot/SatDay)
- MainTheme.kt: AMSAT colors mapped to colorScheme slots

Navigation intentionally not included - you mentioned potential UI
restructuring (Navigation Drawer). The screen is ready to integrate
wherever it fits your roadmap.

Ref: https://github.com/rt-bishop/Look4Sat/pull/233
This commit is contained in:
mckero committed 2026-08-05 17:43:17 +00:00
1 parent 8fbfcb3712
commit 691c5f5bb1
14 files changed
+758 -5

No files matched your search

@@ -79,6 +79,10 @@ private val lightScheme = lightColorScheme(
onSecondary = Color(0xFFFFFFFF),
secondaryContainer = Color(0xFFF1E1BB),
onSecondaryContainer = Color(0xFF221B04),
tertiary = Color(0xFF3C6FE0), // AMSAT Active (darker for light theme)
onTertiary = Color(0xFFFFFFFF),
tertiaryContainer = Color(0xFFE09800), // AMSAT Telemetry (darker)
onTertiaryContainer = Color(0xFF000000),
background = Color(0xFFFFF8F0),
onBackground = Color(0xFF1E1B13),
surface = Color(0xFFFFF8F0),
@@ -101,10 +105,10 @@ private val darkScheme = darkColorScheme(
onSecondary = Color(0xFF000000),
secondaryContainer = Color(0xFF404040), // navBar indicator,
onSecondaryContainer = Color(0xFFE0E0E0), // navBar active icon
// tertiary = Color(0xFF121212),
// onTertiary = Color(0xFF121212),
// tertiaryContainer = Color(0xFF121212),
// onTertiaryContainer = Color(0xFF121212),
tertiary = Color(0xFF648FFF), // AMSAT Active (from amsat.org/status)
onTertiary = Color(0xFF000000),
tertiaryContainer = Color(0xFFFFB000), // AMSAT Telemetry
onTertiaryContainer = Color(0xFF000000),
background = Color(0xFF121212),
onBackground = Color(0xFFE0E0E0),
surface = Color(0xFF202020), // card background
@@ -67,6 +67,21 @@
\n* Replaced the types selection dialog with modes selection to avoid confusion
</string>
<!-- AMSAT Status screen -->
<string name="nav_amsat">AMSAT</string>
<string name="amsat_title">AMSAT Satellite Status</string>
<string name="amsat_refresh">Refresh</string>
<string name="amsat_retry">Retry</string>
<string name="amsat_updated">Updated:</string>
<string name="amsat_active">Active</string>
<string name="amsat_tlm">TLM/Beacon</string>
<string name="amsat_not_heard">Not Heard</string>
<string name="amsat_conflict">Conflicting</string>
<string name="amsat_name">Name</string>
<string name="amsat_load_failed">Load failed - check network and retry</string>
<string name="amsat_no_reports">No reports for this period</string>
<string name="amsat_close">Close</string>
<!-- Radar screen -->
<string name="radar_back">Back</string>
<string name="radar_notify">Notify</string>