|
|
@@ -10,13 +10,14 @@ compatibility:
|
|
|
|
|
|
- One home page. No top bar, no bottom dock, no pages.
|
|
|
- Clock/date, battery/charging and Wi-Fi on the page.
|
|
|
-- A prominent media-volume card (ring, slider, −/+, mute).
|
|
|
-- Up to **16 home buttons**: Navigation, Music, Radio, Settings, All apps, plus
|
|
|
- apps pinned from All Apps.
|
|
|
+- A prominent media-volume card: play/pause ring, slider, −/+, mute.
|
|
|
+- Up to **16 home buttons**: Navigation, Music, Radio, All apps, plus apps
|
|
|
+ pinned from All Apps. Settings lives next to Wi-Fi in the top-right status
|
|
|
+ area, outside the grid.
|
|
|
- Navigation/Music/Radio are **app slots** with show/hide switches. They can be
|
|
|
- assigned, changed and cleared. Settings and All apps are always present.
|
|
|
+ assigned, changed and cleared. All apps is always present and last.
|
|
|
- Pinned apps are added by long-pressing an app in All Apps and removed by
|
|
|
- long-pressing the added button on Home. Settings and All apps are always last.
|
|
|
+ long-pressing the added button on Home.
|
|
|
Only pinned apps show their own icon by default; the fixed buttons and
|
|
|
predefined slots stay stylized.
|
|
|
- The grid adapts from 2 to 6 columns and shrinks its tiles as the count grows.
|
|
|
@@ -47,9 +48,11 @@ compatibility:
|
|
|
| Central app content | Launcher-native; apps open full-screen | Android cannot embed another app; overlay chrome was rejected as fragile and app-obstructing. |
|
|
|
| UI chrome | None (no bars) | Removes the mismatch between launcher chrome and full-screen apps; cleaner, more compatible. |
|
|
|
| Home layout | Single page, info + volume + up to 16 buttons | Matches the refined brief; tiles scale from 2 to 6 columns. |
|
|
|
-| App slots | Navigation, Music, Radio with visibility switches | Kept from the original brief; Settings and All apps are fixed. |
|
|
|
+| App slots | Navigation, Music, Radio with visibility switches | Kept from the original brief; All apps is fixed. |
|
|
|
| Pinned apps | All Apps long-press adds, Home long-press removes | Makes any installed app reachable from Home without editing a separate layout screen. |
|
|
|
-| Home cap | 16 buttons total, including Settings and All apps | 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. |
|
|
|
+| Playback control | Circled volume ring is play/pause; Mute pill remains | One prominent control for play/resume/pause without adding another card. |
|
|
|
| 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. |
|
|
|
| Battery visibility | One switch hides level and charging bolt | One control for both indicators, as requested. |
|
|
|
@@ -81,9 +84,9 @@ Flutter
|
|
|
HomeScreen
|
|
|
ClockBlock / StatusCluster / VolumeCard / ShortcutGrid
|
|
|
LauncherController -> apps, slots, pinned apps, 16-button cap, default-home state
|
|
|
- SystemController -> battery/Wi-Fi/volume/media polling
|
|
|
+ SystemController -> battery/Wi-Fi/volume/media polling + media keys
|
|
|
AllAppsScreen / AppPickerSheet
|
|
|
- SettingsScreen -> General / Security
|
|
|
+ SettingsScreen -> General / Car data / Security
|
|
|
PinSetupScreen / LockScreen -> LockController -> PinService
|
|
|
Android (Kotlin)
|
|
|
MainActivity -> keep-screen-on, volume keys, permission forwarding
|
|
|
@@ -120,6 +123,7 @@ Android (Kotlin)
|
|
|
| M10 | Remove Home-role banner, one-time first-run tip, pinned Rename/icon/remove menu | Done |
|
|
|
| M11 | Restore stylized fixed icons; pinned apps show own icons by default; 29-icon selector | Done |
|
|
|
| M12 | Accent-tinted dark theme, OBD-II adapter/telemetry, location weather fallback, Car data Settings | Done |
|
|
|
+| M13 | Play/pause volume ring, Settings gear in status area, 16-button cap without Settings | Done |
|
|
|
|
|
|
## 5. Verification checklist
|
|
|
|
|
|
@@ -145,7 +149,7 @@ Android (Kotlin)
|
|
|
- [x] `FLAG_KEEP_SCREEN_ON` is present on the dashboard window.
|
|
|
- [x] Six accent choices change the Material theme immediately and persist.
|
|
|
- [x] Battery switch hides both the battery level and charging bolt.
|
|
|
-- [x] Settings/All apps are the last two Home buttons.
|
|
|
+- [x] Settings is next to Wi-Fi; All apps is the last grid button.
|
|
|
- [x] A user-installed app (F-Droid) shows its own icon; system apps stay generic.
|
|
|
- [x] Music equalizer widget animates; native media-active polling is wired.
|
|
|
- [x] Home hint is gone after two minutes from process start.
|
|
|
@@ -160,14 +164,16 @@ Android (Kotlin)
|
|
|
- [x] OBD economy/card tests pass; native ELM327 path compiles.
|
|
|
- [x] Location permission, reverse geocoding and Open-Meteo fallback verified live (Ukiah, 17°C).
|
|
|
- [x] Temperature row renders below the date and follows OBD/weather priority.
|
|
|
-- [x] Release 0.6.0 installed on the emulator and physical Android 17 tablet.
|
|
|
+- [x] Circled volume ring shows Play/Pause; 33 tests include media keys and the ring.
|
|
|
+- [x] Settings gear is next to Wi-Fi; the grid ends with All apps.
|
|
|
+- [x] Release 0.7.0 installed on the emulator; the tablet was offline, so 0.6.0 remains there pending a reconnect.
|
|
|
- [x] Screenshots in `docs/screenshots/`; README/AGENTS/plan/OBD doc updated.
|
|
|
|
|
|
## 6. Known risks and mitigations
|
|
|
|
|
|
1. **Media-volume polling** is every 900 ms while foreground. It is cheap and
|
|
|
handles hardware keys, but a future native `ContentObserver` would remove
|
|
|
- the polling. No global play/pause is in scope.
|
|
|
+ the polling. Play/pause uses standard Android media keys.
|
|
|
2. **`QUERY_ALL_PACKAGES`** is required for a launcher app list. It is documented
|
|
|
and acceptable for sideloading; a Play distribution needs policy work.
|
|
|
3. **PIN security scope**: cold-start only by design; it does not replace the
|
|
|
@@ -218,7 +224,7 @@ Android (Kotlin)
|
|
|
foreground keep-screen-on flag. Verified 17 tests, 16-button layouts at
|
|
|
1280×800 and 1024×600, cap/removal/re-add, and 0.2.0 on the physical tablet.
|
|
|
- 2026-10-29: Added six accent choices, battery/charging visibility, a two-minute
|
|
|
- fading hint anchored to process start, Settings/All apps last, user-app icons,
|
|
|
+ fading hint anchored to process start, All apps last, user-app icons,
|
|
|
a media-active equalizer, and a smaller All Apps search icon. Added the
|
|
|
two-attempt ADB install rule. Verified 21 tests, accent/battery toggles, a
|
|
|
user-app icon (F-Droid), hint expiry, and 0.3.0 on the emulator/tablet.
|
|
|
@@ -235,3 +241,7 @@ Android (Kotlin)
|
|
|
Car data Settings with adapter dropdown and weather toggle, and permission
|
|
|
flows. Verified 30 tests, live weather on the emulator and 0.6.0 installation;
|
|
|
OBD hardware remains a car test.
|
|
|
+- 2026-10-29: The circled volume ring is now play/pause (media-key resume, or
|
|
|
+ opens the assigned Music app when nothing responds). Settings moved next to
|
|
|
+ Wi-Fi in the status area and no longer consumes a grid slot. Verified 33 tests
|
|
|
+ and 0.7.0 on the emulator; the tablet was offline at install time.
|