App 2.3.0: Server tab, live telemetry to the car server

- New Server tab: server URL, ingest token and installation id, with
  Save, Test connection (health, then a read-only token check) and the
  config-file import that upstream removed (app folder / USB stick first,
  document picker as fallback). Settings are kept encrypted and read on
  every use, so the service picks up a change without a restart. Each
  installation generates its own id; the inherited upstream UUID and
  the baked-in CONSUMPTION_API_* build fields are gone.
- Live telemetry restored from before ea8032a (TelemetryPayload,
  UploadCadence, UploadSettings, GPS) and sent in batches to
  POST /v1/telemetry instead of ABRP; the server forwards to ABRP. Adds
  ext_temp, voltage and current. Unsent samples queue in memory (about
  8 h) while offline.
- Upload tab: the live-telemetry switch and cadence controls work again;
  the dead service and autostart switches are removed.
- Manifest: location permissions and foreground service types.
- Unit tests compile again: 114 (stable) / 136 (unstable) pass. Tests
  for the deleted AbrpApi and HeadUnitWeather removed; new tests for
  ServerConfig and TelemetryQueue. Lint passes.

Not yet tried on the car.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 14:23:04 +02:00
co-authored by Claude Opus 5.5
parent c253876ed2
commit 6145736c97
27 changed files with 1590 additions and 287 deletions
+4 -4
View File
@@ -7,8 +7,8 @@
<string name="design_brand_footer">ON THE ROAD, ELECTRIC</string>
<string name="design_overview_title">Your drive at a glance.</string>
<string name="design_overview_subtitle">Data from your car, all in one place.</string>
<string name="design_abrp_title">Connect to your route.</string>
<string name="design_abrp_subtitle">Link your car with your ABRP account.</string>
<string name="design_server_title">Where your data goes.</string>
<string name="design_server_subtitle">Your own server stores it and passes it on to ABRP.</string>
<string name="design_service_title">You focus on the road.</string>
<string name="design_service_subtitle">Your data stays up to date in the background.</string>
<string name="design_wifi_title">Stay connected.</string>
@@ -18,9 +18,9 @@
<string name="design_battery">BATTERY</string>
<string name="design_energy">ENERGY AND TEMPERATURE</string>
<string name="design_tires">TIRE PRESSURES</string>
<string name="design_account">ACCOUNT LINK</string>
<string name="design_account">SERVER LINK</string>
<string name="design_private_title">Your private connection.</string>
<string name="design_private_body">The token links your car to your ABRP account. Your credentials are stored encrypted on this device.</string>
<string name="design_private_body">The token lets the car write to your server. It is stored encrypted on this device; your ABRP credentials stay on the server.</string>
<string name="design_no_data">Values that cannot be read are shown as &#x2014;.</string>
<string name="design_service_controls">UPLOAD CONTROL</string>
<string name="design_service_timing">UPDATE FREQUENCY</string>