feat(android): trip history list + route replay map (Phase 28.5)

This commit is contained in:
Mathieu Moran
2026-08-15 19:51:06 -04:00
parent cadde5aeee
commit a40fced666
13 changed files with 816 additions and 29 deletions
+9 -7
View File
@@ -2021,7 +2021,7 @@ tracked in FEATURES.md.
2. **FEAT-02** — QR / claim-code device pairing flow (medium)
3. **FEAT-04** — Replace SIM868 2G GSM with 4G LTE modem (large)
### Phase 28: Native Android companion app — 🚧 IN PROGRESS (28.1 ✅, 28.2 ✅, 28.3 ✅, 28.4 ✅, 28.5–28.7 pending)
### Phase 28: Native Android companion app — 🚧 IN PROGRESS (28.1 ✅, 28.2 ✅, 28.3 ✅, 28.4 ✅, 28.5 ✅, 28.6–28.7 pending)
**Renumbered from former Phase 26 on 2026-08-10 to make room for the road-test bug-fix phase.
Renumbered to Phase 28 on 2026-08-11 to make room for Phase 27 feature additions. Planning
completed 2026-08-11. Detailed implementation plan in [android/plan.md](android/plan.md).**
@@ -2203,12 +2203,14 @@ The app reuses the existing Pi REST API surface with no changes:
connection status bar (Pi WiFi + Server dots).
- GPS map (MapLibre) deferred — basemap needs internet, which the Pi hotspot doesn't provide.
**28.5 — Trip history**
- List trips from `/api/trips` with date, distance, duration, start/end locations
- Tap to view route on map with scrubber timeline (reuse the same data as Phase 18 web
replay, just rendered natively)
- Geocode via the Pi's `/api/geocode` or the phone's own Android
`Geocoder` (no network needed for the Pi's offline `reverse_geocoder` path)
**28.5 — Trip history ✅ DONE (2026-08-15)**
- `TripViewModel` loads `/api/trips` (with batch geocode of start/end via `/api/geocode/batch`)
and `/api/trip/{id}` for the route.
- `TripListScreen` (new Trips tab): date/time, distance, duration, avg/max speed, start→end labels.
- `TripReplayScreen`: MapLibre map using the Pi's offline raster tiles (`/static/vendor/tiles/{z}/{x}/{y}.png`,
zoom 8–15 — no internet needed), route polyline + cursor marker, camera fit, timeline scrubber
with timestamp + speed, and play/pause animation.
- Deferred: Room offline cache, start/end markers, geocode label under the scrubber.
**28.6 — Remote portal direct access (away from car)**
- Talk to `https://yaris.ceaf.dev/api/v1/portal/...` directly