diff options
Diffstat (limited to '.agent/worklog.md')
| -rw-r--r-- | .agent/worklog.md | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/.agent/worklog.md b/.agent/worklog.md index e17781b..7a4467f 100644 --- a/.agent/worklog.md +++ b/.agent/worklog.md @@ -127,10 +127,23 @@ Section 7.3 AIS display — COMPLETE (2026-03-15): AIS integrated into ViewModel - `MainViewModelTest` — 3 new tests: valid type-1 adds vessel, same MMSI deduped, non-AIS stays empty - JVM test harness: `/tmp/ais-vm-test-runner/` (3 tests — all GREEN) +### [APPROVED] TrackRepository (2026-03-25) +- `android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt` +- `test-runner/src/main/kotlin/org/terst/nav/track/TrackRepository.kt` +- `isRecording` flag; `startTrack()` clears + starts; `stopTrack()`; `addPoint()` guards on isRecording; `getPoints()` returns snapshot +- 8 tests — all GREEN (`TrackRepositoryTest`) + +### [APPROVED] Track ViewModel + Map overlay + Record FAB (2026-03-25) +- `MainViewModel`: TrackRepository wired in; exposes `isRecording: StateFlow<Boolean>`, `trackPoints: StateFlow<List<TrackPoint>>`; `startTrack()`, `stopTrack()`, `addGpsPoint(lat, lon, sogKnots, cogDeg)` +- `MapHandler.updateTrackLayer(style, points)`: lazy LineLayer init; red (#E53935) 3dp polyline from List<TrackPoint> +- `MainActivity`: stores `loadedStyle`; GPS flow feeds `viewModel.addGpsPoint()` (m/s→knots); observes `trackPoints` → `mapHandler.updateTrackLayer()`; observes `isRecording` → FAB icon toggle (ic_track_record / ic_close) +- `activity_main.xml`: `fab_record_track` FAB anchored top|end of bottom nav +- `drawable/ic_track_record.xml`: red dot record icon + ## Next 3 Specific Steps -1. **CPA/TCPA alarms** — use CpaCalculator in ViewModel to emit alarm when CPA < threshold; add UI indicator in MapFragment -2. **AISHub periodic polling** — call refreshAisFromInternet() on a timer (e.g. every 60s) when GPS position is known -3. **AIS TCP full implementation** — replace stub socket reader with NmeaStreamManager integration +1. **Persist track to GPX/Room** — export recorded track as GPX file or store in Room DB +2. **Track stats in Log tab** — show elapsed time, distance, avg SOG while recording +3. **AnchorWatchHandler UI** — wire `AnchorWatchHandler` fully into SafetyFragment (currently stub) ## Scripts Added - `test-runner/` — standalone Kotlin/JVM Gradle project; runs all 22 GPS/NMEA tests without Android SDK |
