diff --git a/FIRMWARE.md b/FIRMWARE.md index 5339fca..99bd678 100644 --- a/FIRMWARE.md +++ b/FIRMWARE.md @@ -11,9 +11,24 @@ development. It must not be treated as a vendor specification. | Android | 9 (Pie) — **API 28** | | Chipset | MediaTek **MT2712** | | Device | `mt2712_saic_eh32` (eh32 = MG4) | -| Display | **1920×720 @ 160 dpi** (the car's sidebar takes part of the width; an app window has been reported at 1778×720) | +| Display | Sources disagree, see below. The Logs tab's **SCREEN** line shows what the car reports. | | Emulator display profile | **1920×720 @ 160 dpi** | +**Display, unconfirmed.** Three figures are in circulation: + +- **1920×720 px**, the figure this project has used (emulator profile, layouts). +- **1280×480**, from [EVProfile's README](https://github.com/malys/EVProfile) ("forced + landscape"). That is exactly 1920×720 px at 240 dpi expressed in dp, the unit layouts use — + so it may be the same panel at a higher density. EVProfile also notes that this platform lets + the density be changed per app. +- An app window of **1778×720**, reported upstream: the car's own sidebar taking part of the + width. + +The app has worked on the car with layouts designed at 1920×720 dp, which fits 160 dpi better +than 240 (checked on the emulator: at 240 dpi the sidebar needs scrolling and the Overview's +cards no longer fit). Since 2.16.2 the Logs tab shows the panel's pixels and density and the +app window in px and dp; a photo of that line settles it. + ## Signing caveat Certificate equality alone does not prove an APK came from this project. The nightly OTA @@ -43,5 +58,5 @@ follow the same path. See `AGENTS.md` for the full per-signal split. ## Emulator fidelity The `mise` emulator tasks use an API 33 automotive AVD for the car service and an API 28 -AVD at **1920×720 @ 160 dpi** for the screen. Neither exposes the SAIC vendor properties, +AVD at **1920×720 @ 160 dpi** for the screen (see "Display, unconfirmed" above). Neither exposes the SAIC vendor properties, so vehicle-specific behaviour still requires on-vehicle validation. diff --git a/README.md b/README.md index ca21320..e222ac5 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ APIs. ## Screenshot -Version 2.8.2 on the head unit's 1920x720 screen, in full screen (Android 9 emulator; no +Version 2.8.2 at the head unit's 1920x720 pixels and 160 dpi, in full screen (Android 9 emulator; no vehicle there, so every value shows as a dash).
diff --git a/SPECS.md b/SPECS.md
index 832d46f..e4e28a9 100644
--- a/SPECS.md
+++ b/SPECS.md
@@ -48,6 +48,7 @@ Current: app 2.14.2, server 2.5.0 (pinned by digest in `k8s/server.yaml`).
dashboard queries return data).
- [x] Manifests validated offline (kubeconform, with Traefik CRDs). **Applied by Nils only.**
- [ ] Check Grafana's host in `k8s/ingress.yaml` (placeholder `car-grafana.k8s.stinnesbeck.com`).
+- [ ] Screen size and density on the car: Logs → SCREEN (2.16.2), see FIRMWARE.md.
- [ ] Not yet tried on the car: live data straight to ABRP (2.11), Enter on phone (2.12), accent
colours and the car-colour probe on the Logs tab (2.14; a photo of its list decides whether
the accent can follow the paint automatically), right-aligned values (2.14.1).
@@ -109,6 +110,10 @@ tyre pressures, GPS (lat, lon, elevation, heading) and the is_* flags. It does *
INGEST_TOKEN) into git and pushed it. Commit amended and force-pushed; both values regenerated in
the now gitignored `k8s/secrets.yaml` (since moved to `k8s/secrets/secrets.yaml`, outside
`kubectl apply -f k8s/`). Filled-in secrets live only there from now on.
+- 2026-10-18 — App 2.16.2: Logs → SCREEN shows the panel's pixels and density and the app
+ window in px and dp. The MG4's display figures disagree (1920×720 px used here; EVProfile lists
+ 1280×480, which is 1920×720 at 240 dpi in dp; upstream reported a 1778×720 window); FIRMWARE.md
+ lists all three until a photo of that line settles it.
- 2026-10-18 — EVProfile's licence checked: MIT, forked from SliDeeN/MG4Control and last merged
from it on 2026-08-02, inside MG4Control's MIT period (MIT up to 2.6.5 of 2026-08-05, GPL v3
from 2.6.6 of 2026-09-02). Recorded in `LICENSE.md`. History scanned for secrets before the
diff --git a/app/build.gradle b/app/build.gradle
index ada442d..c1329a4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,8 +34,8 @@ android {
applicationId "com.stinnesbeck.nilsmg4"
minSdk 27
targetSdk 36
- versionCode 85
- versionName "2.16.1"
+ versionCode 86
+ versionName "2.16.2"
// Nothing about the server ships in the APK: its URL and ingest token are entered in
// the app's Server tab (ServerConfig), and the database is only reachable by the server.
diff --git a/app/src/main/java/com/evsuite/abrp/MainActivity.java b/app/src/main/java/com/evsuite/abrp/MainActivity.java
index 721c725..ff4e99f 100644
--- a/app/src/main/java/com/evsuite/abrp/MainActivity.java
+++ b/app/src/main/java/com/evsuite/abrp/MainActivity.java
@@ -263,6 +263,7 @@ public class MainActivity extends AppCompatActivity {
callLogText = logPane.findViewById(R.id.call_log_text);
steeringKeysText = logPane.findViewById(R.id.steering_keys_text);
TextView carColorText = logPane.findViewById(R.id.car_color_text);
+ showScreenInfo(logPane.findViewById(R.id.screen_text));
logPane.findViewById(R.id.car_color_button).setOnClickListener(v -> new Thread(() -> {
java.util.List