|
@@ -64,6 +64,7 @@ compatibility:
|
|
|
| Home cap | 16 buttons total, including All apps; Settings is outside the grid | Keeps the single page legible at tablet resolutions; enforced in `LauncherController`. |
|
|
| Home cap | 16 buttons total, including All apps; Settings is outside the grid | Keeps the single page legible at tablet resolutions; enforced in `LauncherController`. |
|
|
|
| Settings placement | Gear next to Wi-Fi in `StatusCluster` | Keeps Settings reachable without spending a grid slot. |
|
|
| Settings placement | Gear next to Wi-Fi in `StatusCluster` | Keeps Settings reachable without spending a grid slot. |
|
|
|
| Playback control | Circled volume ring is play/pause; Mute pill remains | One prominent control for play/resume/pause without adding another card. |
|
|
| Playback control | Circled volume ring is play/pause; Mute pill remains | One prominent control for play/resume/pause without adding another card. |
|
|
|
|
|
+| Volume control | Absolute `setStreamVolume`, relative `adjustStreamVolume` fallback, fixed-policy detection | Some car units ignore absolute writes; fixed-volume amplifiers cannot be controlled by apps. |
|
|
|
| Icons | Only pinned apps show their own icon by default; fixed slots stay stylized | Keeps the dashboard consistent while making added apps recognizable. |
|
|
| Icons | Only pinned apps show their own icon by default; fixed slots stay stylized | Keeps the dashboard consistent while making added apps recognizable. |
|
|
|
| Accent | Six curated choices, persisted in Settings | Changes the whole theme without a color picker or arbitrary contrast failures. |
|
|
| Accent | Six curated choices, persisted in Settings | Changes the whole theme without a color picker or arbitrary contrast failures. |
|
|
|
| Battery visibility | One switch hides level and charging bolt | One control for both indicators, as requested. |
|
|
| Battery visibility | One switch hides level and charging bolt | One control for both indicators, as requested. |
|
|
@@ -155,6 +156,7 @@ Android (Kotlin)
|
|
|
| M17 | Non-blocking Gogs update check; 1.0.1 version-only update-test release | Done |
|
|
| M17 | Non-blocking Gogs update check; 1.0.1 version-only update-test release | Done |
|
|
|
| M18 | Bluetooth-off settings action; 1.0.2 release | Done |
|
|
| M18 | Bluetooth-off settings action; 1.0.2 release | Done |
|
|
|
| M19 | OBD-II/Speed/Temperature Settings cards; source switches; 10-minute first-install hint; 1.0.3 | Done |
|
|
| M19 | OBD-II/Speed/Temperature Settings cards; source switches; 10-minute first-install hint; 1.0.3 | Done |
|
|
|
|
|
+| M20 | Fixed-volume car detection; relative volume fallback; 1.0.4 | Done |
|
|
|
|
|
|
|
|
## 5. Verification checklist
|
|
## 5. Verification checklist
|
|
|
|
|
|
|
@@ -168,6 +170,7 @@ Android (Kotlin)
|
|
|
- [x] App picker assign / long-press change / clear, with persistence across restart.
|
|
- [x] App picker assign / long-press change / clear, with persistence across restart.
|
|
|
- [x] Launch Navigation/Music/Radio full-screen and return Home (verified with Maps and YouTube Music).
|
|
- [x] Launch Navigation/Music/Radio full-screen and return Home (verified with Maps and YouTube Music).
|
|
|
- [x] Volume slider, mute and hardware-key synchronization (keys are routed to `STREAM_MUSIC` while the dashboard is foreground).
|
|
- [x] Volume slider, mute and hardware-key synchronization (keys are routed to `STREAM_MUSIC` while the dashboard is foreground).
|
|
|
|
|
+- [x] Fixed-volume car units disable the slider and pass hardware keys through; absolute-write failures fall back to relative stream steps.
|
|
|
- [x] Light theme, dark theme and automatic switch.
|
|
- [x] Light theme, dark theme and automatic switch.
|
|
|
- [x] PIN set/change/remove; cold start shows lock; wrong PIN; no re-lock after returning from an app.
|
|
- [x] PIN set/change/remove; cold start shows lock; wrong PIN; no re-lock after returning from an app.
|
|
|
- [x] Verify 1024×600 compact layout (`adb shell wm size 1024x600`).
|
|
- [x] Verify 1024×600 compact layout (`adb shell wm size 1024x600`).
|
|
@@ -206,14 +209,14 @@ Android (Kotlin)
|
|
|
- [x] 1.0.0 updater build installed on emulator/tablet; it reported up to date before 1.0.1.
|
|
- [x] 1.0.0 updater build installed on emulator/tablet; it reported up to date before 1.0.1.
|
|
|
- [x] 1.0.1 universal APK built and added to `releases/`; release published for update testing.
|
|
- [x] 1.0.1 universal APK built and added to `releases/`; release published for update testing.
|
|
|
- [x] Emulator completed the full in-app 1.0.0 → 1.0.1 download/installer flow.
|
|
- [x] Emulator completed the full in-app 1.0.0 → 1.0.1 download/installer flow.
|
|
|
-- [x] Yellow update dot appears on the Settings gear; 63 tests pass.
|
|
|
|
|
|
|
+- [x] Yellow update dot appears on the Settings gear; 65 tests pass.
|
|
|
- [x] Bluetooth-off Settings card exposes **Open Bluetooth settings** and refreshes on return.
|
|
- [x] Bluetooth-off Settings card exposes **Open Bluetooth settings** and refreshes on return.
|
|
|
- [x] 1.0.2 universal APK built and published for in-app update.
|
|
- [x] 1.0.2 universal APK built and published for in-app update.
|
|
|
- [x] Settings split into separate OBD-II, Speed and Temperature cards; OBD-II holds adapter settings only.
|
|
- [x] Settings split into separate OBD-II, Speed and Temperature cards; OBD-II holds adapter settings only.
|
|
|
- [x] Speed and Temperature toggles hide/show their Home elements and persist.
|
|
- [x] Speed and Temperature toggles hide/show their Home elements and persist.
|
|
|
- [x] OBD/GPS source switches appear while an adapter is selected and persist.
|
|
- [x] OBD/GPS source switches appear while an adapter is selected and persist.
|
|
|
- [x] Onboarding hint is limited to ten minutes after a fresh install; upgraded installs never show it.
|
|
- [x] Onboarding hint is limited to ten minutes after a fresh install; upgraded installs never show it.
|
|
|
-- [x] 63 tests pass, including the onboarding window and source preferences.
|
|
|
|
|
|
|
+- [x] 65 tests pass, including the onboarding window and source preferences.
|
|
|
- [x] 1.0.3 universal APK built and published for in-app update.
|
|
- [x] 1.0.3 universal APK built and published for in-app update.
|
|
|
- [x] Tablet has the 1.0.0 installer build; unknown-app confirmation is user-controlled.
|
|
- [x] Tablet has the 1.0.0 installer build; unknown-app confirmation is user-controlled.
|
|
|
- [x] Screenshots in `docs/screenshots/`; README/AGENTS/plan/OBD doc updated.
|
|
- [x] Screenshots in `docs/screenshots/`; README/AGENTS/plan/OBD doc updated.
|
|
@@ -316,7 +319,10 @@ Android (Kotlin)
|
|
|
- 2026-10-30: Split Settings into OBD-II, Speed and Temperature cards, added
|
|
- 2026-10-30: Split Settings into OBD-II, Speed and Temperature cards, added
|
|
|
independent show/hide switches plus OBD/GPS and OBD/weather source switches,
|
|
independent show/hide switches plus OBD/GPS and OBD/weather source switches,
|
|
|
and limited the long-press hint to ten minutes after a fresh install. Bumped to
|
|
and limited the long-press hint to ten minutes after a fresh install. Bumped to
|
|
|
- 1.0.3+15; 63 tests pass.
|
|
|
|
|
|
|
+ 1.0.3+15; 65 tests pass.
|
|
|
|
|
+- 2026-10-30: Added fixed-volume detection and a relative volume-step fallback
|
|
|
|
|
+ for car units that ignore absolute `setStreamVolume`; fixed-volume sliders now
|
|
|
|
|
+ explain that the vehicle amplifier owns the level. Bumped to 1.0.4+16.
|
|
|
- 2026-10-30: Versioned the universal Android release as 1.0.0+12 and added
|
|
- 2026-10-30: Versioned the universal Android release as 1.0.0+12 and added
|
|
|
`releases/cardash-android-1.0.0.apk` with checksum and release notes.
|
|
`releases/cardash-android-1.0.0.apk` with checksum and release notes.
|
|
|
- 2026-10-29: Centered the now-playing title across the whole media card instead of
|
|
- 2026-10-29: Centered the now-playing title across the whole media card instead of
|