mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-06-04 12:05:59 -04:00
Complete implementation of the Android Auto / AAOS car module: Phase 1 - Setup: - Version catalog entries (car-app 1.9.0-alpha01) - Module build.gradle.kts with android-library, flavors, koin - AndroidManifest with MESSAGING category, minCarApiLevel 8 - AAOS automotive_app_desc.xml - Car-specific string resources - ProGuard keep rules Phase 2 - Foundation: - MeshtasticCarAppService (CarAppService entry point) - MeshtasticCarSession (session lifecycle, Crashlytics tagging) - FeatureCarModule (Koin DI with ComponentScan) - HomeScreen (TabTemplate: Messages + Nodes) - CrashlyticsCarTagger, TemplateBuilders helpers - CarUiModels (presentation state models) Phase 3 - Messaging (MVP): - MessagingScreen (300ms debounced invalidation, max 10 conversations) - ConversationScreen (voice reply, read-aloud, max 5 messages) - FuzzyNodeNameResolver (LCS-based voice name matching) - MessageFilter (emoji/admin exclusion, 237-byte limit) - BatchMessageLoader (50 unread on session start) - CarNotificationManager (MessagingStyle + reply/mark-read) Phase 4 - Emergency: - EmergencyHandler (flow collection, alert state, audio tone) - EmergencySpotlightBuilder (alert rows for messaging screen) - EmergencySessionWiring (lifecycle attach/detach) Phase 5 - Nodes: - NodeDashboardScreen (sorted list, signal/battery, topology header) - NodeDetailScreen (PaneTemplate with Message action) Phase 6 - Channels: - ChannelChipBuilder (ActionStrip with unread badges) Phase 8 - Status Panel: - MeshStatusPanel (connection, node count, last msg time) - MeshStatusSessionWiring (Flow-based lifecycle) Phase 9 - Voice: - CarTtsEngine (TTS read-aloud) - VoiceDmCoordinator (fuzzy resolve + voice DM flow) Phase 10 - Polish: - OnboardingScreen (no channels configured state) - DisconnectedScreen (BLE disconnect graceful degradation) - ProGuard consumer rules Verified: spotlessApply ✓ detekt ✓ compileGoogleDebugKotlin ✓ assembleGoogleDebug ✓ Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>