feat(aprs): 4.5.4 APRS-IS network reporting (ported from APRSdroid 1.6.3d)
Core logic extracted from APRSdroid 1.6.3d (jadx reverse-engineered,
verified against APRS spec):
- core/domain/aprs/AprsPacket.kt: passcode algorithm (0x73E2 XOR),
login line, uncompressed/compressed position encoding (ab0oo)
- core/data/aprs/AprsIsClient.kt: APRS-IS TCP client (login + packet
lines, 30s reconnect strategy)
- core/data/aprs/AprsReporter.kt: periodic reporting scheduler
(default 5 min, manual trigger support)
- core/data/aprs/AprsStore.kt: SharedPreferences persistence
(fill once, saved)
- app/AprsForegroundService.kt: foreground service with notification
(keeps APRS alive across pages), START_STICKY, last-known position
provider
- feature/settings/AprsCard.kt: APRS card between DataCard and
OutputCard, gear button opens settings dialog (server/port/
callsign/ssid/passcode/interval/status/symbol), manual report button
- Manifest: service registration + FOREGROUND_SERVICE(_DATA_SYNC) +
POST_NOTIFICATIONS
- Strings in EN/ZH/TR/IN/ID (23 keys x 5)
- Version 4.5.4/454 + What's new 5 languages