App 2.40.4: the recorder's listening works on Android 9

listenToProperties looked only for registerCallback (Android 10); the
car's car library has registerListener/unregisterListener. Take either,
unsubscribe property by property, and say why when it fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
This commit is contained in:
2026-10-27 09:19:33 +01:00
co-authored by Claude Opus 5.5
parent 097467f4e0
commit 60ab3118a1
5 changed files with 178 additions and 19 deletions
+14
View File
@@ -140,6 +140,20 @@ tyre pressures, GPS (lat, lon, elevation, heading) and the is_* flags. It does *
confirmed car facts, app structure, UI conventions, build/test/ship, documents. It replaces
upstream's EVABRPUploader text. The test emulator is now in the flake: `nix run .#car-emulator`
(Android 9 AOSP at 1920×720, 160 dpi; the car build installs as the system user — checked).
- 2026-10-27 — App 2.40.4: **the recorder's listening works on Android 9**. Both recordings
from the car (08:49 and 08:52, 2.40.3) said "listening to the assistance properties: not
possible": `listenToProperties` looked only for `registerCallback`, Android 10's name; the car's
car library (Android 9) has `registerListener(CarPropertyEventListener, int, float)` and
`unregisterListener`, as the app's `CarPropertyAdapter` already knew. It now takes either, and
unsubscribes property by property (Android 9's one-argument `unregisterListener` removes
entries from the list it walks and would leave every other property subscribed). A failure now
says why (`EVHardware.listenProblem`: no car service, no way to subscribe, or the exception).
Tested with a stand-in manager of Android 9's shape (`PropertyListeningTest`). Correction to
2.40.3: the ignition listener it was compared with also looks only for `registerCallback`, so
it most likely never subscribes on the car either (it reads the state once at start); left as
it is. What the polled part of the two recordings shows of the block: `0x2160A15B` (by name
the target speed) 0.0 throughout; `0x2140A15A` between 3 and 7 every few captures;
`0x2160A1A3`/`0x2160A1A4` counting up by 0.1; speeds 8–33 km/h. Not tried on the car.
- 2026-10-27 — App 2.40.3 published (`car-2.40.3`; also carries 2.40.1 and 2.40.2).
- 2026-10-27 — App 2.40.3: **the signal recorder listens** (owner: "is there really nothing we
can do about the readout of the cruise control set point"). The 2.32.0 recording only polled.