diff --git a/SPECS.md b/SPECS.md
index 103f524..0d3a72f 100644
--- a/SPECS.md
+++ b/SPECS.md
@@ -131,6 +131,11 @@ 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-24 — App 2.24.1 (branch `styles-retro-future`): the line of text above every page
+ ("Your drive at a glance.", "Settings. Display, battery…" and so on) is gone, at the owner's
+ request; the pages start at the top, level with the sidebar, and gain about 45 dp. Its 14
+ strings and the title arrays are removed. Checked on the emulator: no crash, and every tab
+ still fits 1778×640 without scrolling. Not tried on the car.
- 2026-10-24 — App 2.24.0 (branch `styles-retro-future`): three more Overview styles, each one
Canvas view fed the shared `ClusterValues` (now with the tyre pressures, formatted in the
chosen unit). **Sci-fi** (`SciFiView`): a starship console — rounded elbow frames in orange
diff --git a/app/build.gradle b/app/build.gradle
index 4bacad9..4dc7472 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,8 +34,8 @@ android {
applicationId "com.stinnesbeck.nilsmg4"
minSdk 27
targetSdk 36
- versionCode 117
- versionName "2.24.0"
+ versionCode 118
+ versionName "2.24.1"
// 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 2b9c92b..31b53e0 100644
--- a/app/src/main/java/com/evsuite/abrp/MainActivity.java
+++ b/app/src/main/java/com/evsuite/abrp/MainActivity.java
@@ -42,16 +42,6 @@ public class MainActivity extends AppCompatActivity {
{ R.id.tabVehicle, R.id.tabConsumption, R.id.tabCharging, R.id.tabService, R.id.tabServer,
R.id.tabSettings, R.id.tabLog };
- private static final int[] PAGE_TITLES = {
- R.string.design_overview_title, R.string.consumption_title, R.string.charging_title,
- R.string.design_service_title, R.string.design_server_title, R.string.design_settings_title,
- R.string.design_log_title
- };
- private static final int[] PAGE_SUBTITLES = {
- R.string.design_overview_subtitle, R.string.consumption_subtitle, R.string.charging_subtitle,
- R.string.design_service_subtitle, R.string.design_server_subtitle, R.string.design_settings_subtitle,
- R.string.design_log_subtitle
- };
// Status colours come from the palette, not from the Material swatches: #4CAF50 and
// #F44336 sit around 4:1 on this background, which disappears behind a sunlit
@@ -202,7 +192,7 @@ public class MainActivity extends AppCompatActivity {
}
/**
- * Marks the destination and labels the page on screen.
+ * Marks the destination in the navigation (the pages have no header line).
*
* Only isSelected is set: fill, text, icon and stroke come from the
* res/color/nav_tab_*.xml selectors applied by the Widget.EV.NavTab style. isSelected
@@ -212,8 +202,6 @@ public class MainActivity extends AppCompatActivity {
for (int i = 0; i < TAB_IDS.length; i++) {
findViewById(TAB_IDS[i]).setSelected(i == position);
}
- ((TextView) findViewById(R.id.header_title)).setText(PAGE_TITLES[position]);
- ((TextView) findViewById(R.id.header_subtitle)).setText(PAGE_SUBTITLES[position]);
}
/** Background thread for the one system-setting write (clearCarPlayFullScreen). */
diff --git a/app/src/main/res/layout-w1000dp/activity_main.xml b/app/src/main/res/layout-w1000dp/activity_main.xml
index ccf2bf9..2b9014b 100644
--- a/app/src/main/res/layout-w1000dp/activity_main.xml
+++ b/app/src/main/res/layout-w1000dp/activity_main.xml
@@ -16,12 +16,6 @@
-
-
-
-
-
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 1a8270b..ea0f520 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -2,12 +2,6 @@
-
-
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e55052a..a32f9a5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,10 +6,6 @@
Overview
Consumption
Charging
- Consumption
- Since start, motor, lifetime and trip counters
- Charging
- Live battery values and SOC/power curve
Server
Settings
Logs
diff --git a/app/src/main/res/values/strings_design.xml b/app/src/main/res/values/strings_design.xml
index 062b37f..a58d8f9 100644
--- a/app/src/main/res/values/strings_design.xml
+++ b/app/src/main/res/values/strings_design.xml
@@ -5,16 +5,6 @@
MG⁴
Nils’ MG4
ON THE ROAD, ELECTRIC
- Your drive at a glance.
- Data from your car, all in one place.
- Where your data goes.
- Your own server stores it; the car sends live data to ABRP itself.
- Live data.
- Where your car\'s live data goes, and how often.
- Settings.
- Display, battery, charging price and updates.
- Every upload, right here.
- Status and details of recent uploads.
BATTERY
VEHICLE INFO
TIRE PRESSURES