Skip to content

v1.6.0

Choose a tag to compare

@vide vide released this 25 Apr 07:55
· 333 commits to main since this release

Trips just got a top-to-bottom rebuild — the marquee feature of this release.

Added

  • Trips list redesign: rows are ~60% shorter and carry a 6dp timeline "fingerprint" strip beneath the route — a compressed version of the detail timeline so different trips (multi-day with DC + AC overnight, daily commute with a parking gap, a single short drive) are visually distinguishable at a glance. Date chip · route · distance up top, fingerprint middle, duration · stops · kWh meta below.
  • Trip detail timeline: horizontal bar under the map. Each drive, charge, and parking gap is a colored segment proportional to its duration — drives in the car's accent color, AC/DC charges in the green/orange palette harmonized with the car's theme, parking in muted neutral. Tap a segment for details. Multi-day parking is sqrt-compressed so driving and charging stay readable. First segment of each kind shows a small white icon (steering wheel, bolt, plug, P) so the legend is self-explanatory.
  • Edit trips: "Add leg" lists drives and charges within ±2 days of the trip not already claimed by another saved trip; "Merge trip" lists adjacent trips within ±14 days and rolls everything (including AC charges) between them into one. Dashed line on the map for non-contiguous legs (e.g. car transported). Delete via the top-bar overflow to revert.
  • Trip cost donut: each charge stop is a donut segment sized by share of total cost, with DC and AC stops in distinct lightness shades of their palette color. Total cost in the center; tap a segment to pop it out and surface that stop's city, AC/DC chip, cost, kWh, duration. Expandable for avg-cost-per-100 km/mi and per-kWh pills plus a per-charge list.
  • Horizontal battery energy-flow card: a Sankey-style flow replacing the old battery stats grid. Battery pictogram in the middle, two inflow streams (DC top, AC below) cubic-bezier-expanding to their share of battery height, one outflow tapering off on the right. Per-inflow kWh + avg kW, per-outflow kWh + Wh/km (or Wh/mi).
  • Weather during the trip: temperature sparkline with weather-condition icons floating on the line at each sample. Samples drawn from the trip's GPS points, ~1 per drive-hour (3–12 total), fetched from Open-Meteo. Card hides itself if the trip is too recent for Open-Meteo's archive.
  • Trip persistence: trips are now first-class database entities, which is what unlocks edit and merge. Existing history is unaffected.
  • Trip map overlays: date range and total distance render as translucent accent-color chips on the map directly.
  • Trip legs count in header: collapsible "Trip legs" card shows the composition inline (3 🚘 + 2 ⚡).
  • Cost filter on the charges list: new Cost dropdown alongside Type and Location (the row was reshuffled into three single-select dropdowns: ⚡ Type, 💰 Cost, 📍 Location). Pick No cost to isolate sessions where no price has been recorded — most useful for cleaning up DC charges where TeslaMate doesn't pull a cost automatically. From there, the existing "edit on TeslaMate" trailing icon gets you to the right place. For cars with Free Supercharging enabled, picking No cost surfaces a one-line hint so the filter stays useful for non-Supercharger DC stops.

Changed

  • Trip detail performance: back-nav no longer blanks to a spinner; map keeps tiles + polyline, donut doesn't re-animate, timeline doesn't rebuild.
  • 90-day and yearly charts on charges / drives / trips now render every week/month, including empty ones, so trends visually show inactivity.
  • Trips list summary card: total distance and total energy charged lost their decimals; total driving time uses cascading units (2d 3h, 1w 2d, 1mo 2w).
  • Internal dependency bumps (AGP 9.1 / Kotlin 2.3 / Hilt 2.59 / WorkManager 2.10 / OkHttp 5 / Retrofit 3).

Fixed

  • DatePicker timezone off-by-one on "Where was I that day?" — picked date now matches the user's tap in every zone.
  • Charges / Drives list flashed on date-filter change when a secondary filter (AC/DC, distance) had zeroed out the visible list. The full-screen spinner now only appears on the true initial load.