summaryrefslogtreecommitdiff
path: root/android-app/app/src/main
AgeCommit message (Collapse)Author
14 daysfeat: implement NMEA stream management, sensor data models, and power modesPeter Stone
- Added NmeaStreamManager for TCP connection and sentence parsing. - Extended NmeaParser to support MWV (wind), DBT (depth), and HDG/HDM (heading) sentences. - Added sensor data models: WindData, DepthData, HeadingData. - Introduced PowerMode enum to manage GPS update intervals. - Integrated NmeaStreamManager and PowerMode into LocationService. - Added test-runner, a standalone JVM-only Gradle project for verifying GPS/NMEA logic. Co-Authored-By: Gemini CLI <noreply@google.com>
2026-03-14fix: replace invalid OpenSeaMap style URL with working base map + seamark ↵Peter Stone
overlay The previous URL (tiles.openseamap.org/.../style.json) is not a valid MapLibre GL style — OpenSeaMap only provides raster tile overlays. Switch to OpenFreeMap liberty style as the base map and add OpenSeaMap seamark tiles as a raster overlay layer. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14fix: use Expression.get() instead of PropertyFactory.get() for tidal layer ↵Peter Stone
properties PropertyFactory.get() does not exist; MapLibre uses Expression.get() to reference feature properties in data-driven style expressions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14fix: correct ConstraintLayout attribute typo in activity_main.xmlPeter Stone
layout_bottom_toTopOf → layout_constraintBottom_toTopOf on fab_tidal. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14Add GpsPosition data class and NMEA RMC parser with testsClaudomator Agent
- NmeaParser: parses $GPRMC (and any *RMC) sentence → GpsPosition - Null for void status (V), malformed input, non-RMC sentence - SOG/COG default to 0.0 when empty; S/W give negative lat/lon - Timestamp from HHMMSS + DDMMYY fields as Unix epoch millis UTC - No Android dependencies - GpsPositionTest: value holding and data-class equality (2 tests) - NmeaParserTest: 11 tests covering valid parse, void/malformed/empty, hemisphere signs, decimal precision - All 22 unit tests verified GREEN via kotlinc + JUnitCore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14Add GpsProvider interface and DeviceGpsProvider (FusedLocation)Claudomator Agent
- GpsPosition: lat/lon/sog (knots)/cog (degrees true)/timestampMs - GpsProvider + GpsListener interfaces for provider abstraction - DeviceGpsProvider wraps LocationManager GPS_PROVIDER (1 Hz default) SOG: m/s × 1.94384 knots; fix-lost timeout 10s - FakeGpsProvider + 9 passing JVM unit tests (no Android deps) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14Implement barometric pressure trend monitoring and visualizationClaudomator Agent
2026-03-14Implement tidal current overlay on the chart with toggle FABClaudomator Agent
2026-03-13refactor: rename app from AndroidApp to navPeter Stone
2026-03-13fix: resolve MapLibre 11.x migration issues and layout/resource errorsPeter Stone
2026-03-13fix: resolve XML syntax and resource formatting errorsPeter Stone
2026-03-13refactor: update package name to org.terst.nav and setup CI/CD with Firebase ↵Peter Stone
App Distribution
2026-03-13Implement polar performance diagram visualizationClaudomator Agent
2026-03-13feat: Implement MOB (Man Overboard) alarm functionalityClaudomator Agent
This commit introduces the core functionality for the Man Overboard (MOB) alarm. Key changes include: - Added a persistent, high-contrast red MOB Floating Action Button to the UI. - Implemented dynamic location permission requests and initialization of LocationService. - Created a MobWaypoint data class to store MOB location and timestamp. - Developed the activateMob() function to: - Capture current GPS coordinates. - Set the active MOB waypoint and mark MOB as activated. - Switch to a dedicated MOB navigation view, hiding other UI elements. - Start a continuous, looping audible alarm (assumes R.raw.mob_alarm exists). - Log the MOB event to the console (placeholder for future logbook integration). - Implemented a MOB navigation view (ConstraintLayout) with real-time distance to MOB and elapsed time display. - Added a recoverMob() function, triggered by a 'Recovered' button, to: - Deactivate MOB mode. - Stop and release the audible alarm. - Restore the main UI visibility. - Location updates are observed to continuously update the MOB navigation display. - Ensured MediaPlayer resources are properly released on activity destruction. Future enhancements (not part of this commit) include: - Implementing a bearing arrow in the MOB navigation view. - Integrating with a persistent logbook system.
2026-03-13Implement basic instrument displayClaudomator Agent
2026-03-13feat: Implement initial chart display setup with MapLibre GL NativeClaudomator Agent
2026-03-13Implement GPS navigation with position, SOG, and COGClaudomator Agent