Skip to content

feat: add "Where was I that day?" feature#209

Open
vide wants to merge 3 commits intomainfrom
feat/where-was-i
Open

feat: add "Where was I that day?" feature#209
vide wants to merge 3 commits intomainfrom
feat/where-was-i

Conversation

@vide
Copy link
Owner

@vide vide commented Mar 20, 2026

Summary

Adds a new "Where was I that day?" feature that lets users look up their car's position and activity at any past date and time.

Dashboard entrypoint

  • New row attached below the Location card (shared Card, HorizontalDivider between them)
  • History icon + "Where was I that day?" text + tappable AssistChip with "Pick a date"
  • Material3 DatePicker (past dates only) → TimePicker dialog flow → "Go!" button navigates to result screen

WhereWasI result screen

  • Map card: OSMDroid map with single marker at the car's position, tappable to open external maps
  • Location breadcrumb: Country flag + name (tappable → CountriesVisited screen), region, city/address
  • State card: Large centered icon + state label (Driving / Charging / Parked)
    • Shared info in consistent positions: Odometer, Outside Temperature (Row 1)
    • Driving: Speed, Drive Distance (Row 2) — tappable → DriveDetailScreen
    • Charging: Battery Level, Power (Row 2) — tappable → ChargeDetailScreen
    • Parked: no additional rows, not tappable
  • Weather card: Historical weather from Open-Meteo archive API (icon + temperature + condition)

Implementation

  • WhereWasIViewModel: Queries drives + charges for the target day, determines state by checking time ranges, fetches drive/charge detail for position interpolation, reverse geocodes via Nominatim, fetches historical weather
  • New navigation route Screen.WhereWasI with carId, timestamp, exteriorColor parameters
  • All strings translated to EN/IT/ES/CA
  • CHANGELOG.md updated with all unreleased features

Test plan

  • Dashboard: verify "Where was I that day?" row appears below Location card
  • Tap the chip → DatePicker appears, select a date → TimePicker appears, tap "Go!"
  • Cancel/dismiss DatePicker by tapping outside or back
  • Test a time during a known drive → DRIVING state with speed/distance, tap → DriveDetail
  • Test a time during a known charge → CHARGING state with battery/power, tap → ChargeDetail
  • Test a time between activities → PARKED state
  • Tap country name in breadcrumb → navigates to CountriesVisited
  • Test a day with no data → "No data available" message
  • Verify weather card shows when data is available

🤖 Generated with Claude Code

vide and others added 3 commits March 20, 2026 17:40
Add a new feature accessible from the dashboard Location card that lets
users look up their car's position and activity at any past date/time.

- Dashboard entrypoint: "Where was I that day?" row with AssistChip
  attached below the Location card with a HorizontalDivider
- Material3 DatePicker → TimePicker dialog flow (past dates only)
- New WhereWasIScreen with: map, location breadcrumb (country flag +
  name → tappable to CountriesVisited, region, city), car state card
  (driving/charging/parked with state-specific info), weather card
- WhereWasIViewModel: queries drives/charges for the target day,
  determines state, interpolates position, reverse geocodes via
  Nominatim, fetches weather from Open-Meteo archive API
- Shared info (odometer, outside temp) in consistent positions across
  all states for spatial memory
- Tappable state card navigates to DriveDetail or ChargeDetail
- All strings translated to EN/IT/ES/CA
- Updated CHANGELOG.md with all unreleased features

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Time picker dialog title now shows the chosen date
- Location breadcrumb is now a single line: flag Country > Region > City
  with country tappable in accent color
- Geofence name (from TeslaMate) displayed prominently below breadcrumb,
  falling back to Nominatim address if no geofence
- Replace "Tap for details" text with standard > chevron hint
- Add geofenceName to WhereWasIUiState, populated from drive/charge address

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use Locale.getDisplayCountry() to show the country name in the device's
current locale, matching the behavior of the Stats for Nerds countries
visited page. Previously showed the Nominatim-provided name which is
in the country's own language.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant