| Age | Commit message (Collapse) | Author |
|
- TrackRepository + TrackPoint wired into MainViewModel:
isRecording/trackPoints StateFlows, startTrack/stopTrack/addGpsPoint
- MapHandler.updateTrackLayer(): lazily initialises a red LineLayer
and updates GeoJSON polyline from List<TrackPoint>
- fab_record_track FAB in activity_main.xml (top|end of bottom nav);
icon toggles between ic_track_record and ic_close while recording
- MainActivity feeds every GPS fix into viewModel.addGpsPoint() and
observes trackPoints to redraw the polyline in real time
- ic_track_record.xml vector drawable (red record dot)
- 8 TrackRepositoryTest tests all GREEN
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Caused a fatal InflateException crash on app launch. Android requires
layout_width and layout_height on <include> tags explicitly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Replace FAB-based navigation with a 4-tab BottomNavigationView (Map,
Instruments, Log, Safety). Instruments use a collapsible bottom sheet;
Log and Safety display as full-screen overlay fragments.
- Add SafetyFragment with MOB and Anchor Watch controls
- Add DocFragment for in-app markdown help (Markwon: core, tables, images)
- Add layout_instruments_sheet with 3x3 instrument grid and PolarDiagramView
- Add fragment_safety and fragment_doc layouts
- Add vector drawables: ic_map, ic_instruments, ic_log, ic_safety, ic_close
- Update activity_main.xml to CoordinatorLayout with bottom sheet + overlay
- Fix: set isHideable=true before STATE_HIDDEN to avoid silent no-op from
behavior_hideable=false default; restore false on Map/Instruments tabs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Add VoiceLogFragment, VoiceLogViewModel, VoiceLogState, LogEntry, InMemoryLogbookRepository
- Wire voice log FAB in MainActivity to show/hide fragment container
- Add RECORD_AUDIO permission to manifest
- Add native CMakeLists.txt and native-lib.cpp stubs
- Fix missing BufferOverflow import in LocationService
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
layout_bottom_toTopOf → layout_constraintBottom_toTopOf on fab_tidal.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
App Distribution
|
|
|
|
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.
|
|
|
|
|