|
@@ -26,6 +26,9 @@ compatibility:
|
|
|
- The Music tile shows the selected app icon with an animated equalizer while
|
|
- The Music tile shows the selected app icon with an animated equalizer while
|
|
|
media audio is active.
|
|
media audio is active.
|
|
|
- The long-press hint fades away two minutes after app start.
|
|
- The long-press hint fades away two minutes after app start.
|
|
|
|
|
+- The Home-role banner is gone; a one-time first-run tip points to Settings.
|
|
|
|
|
+- Long-pressing a pinned app opens Rename, Change icon and Remove. Rename/icon
|
|
|
|
|
+ changes persist; Remove needs no confirmation.
|
|
|
- PIN is requested **only on a cold start**, never on resume or screen-off.
|
|
- PIN is requested **only on a cold start**, never on resume or screen-off.
|
|
|
- The screen stays awake while CarDash is the foreground window.
|
|
- The screen stays awake while CarDash is the foreground window.
|
|
|
- Landscape-only; tablet-first 1280×800; Android 10 minimum.
|
|
- Landscape-only; tablet-first 1280×800; Android 10 minimum.
|
|
@@ -46,6 +49,9 @@ compatibility:
|
|
|
| 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. |
|
|
|
| Media feedback | Music tile shows the selected app icon + animated bars while media is active | Compact visual feedback without adding a media control surface. |
|
|
| Media feedback | Music tile shows the selected app icon + animated bars while media is active | Compact visual feedback without adding a media control surface. |
|
|
|
| Hint lifetime | Two minutes from process start, then fade out | Avoids permanent onboarding chrome; survives widget rebuilds via `AppClock`. |
|
|
| Hint lifetime | Two minutes from process start, then fade out | Avoids permanent onboarding chrome; survives widget rebuilds via `AppClock`. |
|
|
|
|
|
+| Home role | Settings row only; one-time first-run tip | Removes permanent dashboard chrome while keeping discovery. |
|
|
|
|
|
+| Pinned editing | Long-press menu: Rename / Change icon / Remove | Keeps the home page clean; removal remains immediate. |
|
|
|
|
|
+| Custom icon source | The app icon first, then up to 24 installed app icons | Gives a large, recognizable grid without inventing generic art. |
|
|
|
| Screen | `FLAG_KEEP_SCREEN_ON` while foreground | The dashboard is the car display; no wake-lock permission needed. |
|
|
| Screen | `FLAG_KEEP_SCREEN_ON` while foreground | The dashboard is the car display; no wake-lock permission needed. |
|
|
|
| Theme | Light / Dark / Automatic with fixed 19:00–07:00 window | No location permission or network; time pickers make the window adjustable. |
|
|
| Theme | Light / Dark / Automatic with fixed 19:00–07:00 window | No location permission or network; time pickers make the window adjustable. |
|
|
|
| PIN | Four digits, salted PBKDF2 hash, cold start only | Matches the explicit instruction; no re-lock while running. |
|
|
| PIN | Four digits, salted PBKDF2 hash, cold start only | Matches the explicit instruction; no re-lock while running. |
|
|
@@ -97,11 +103,12 @@ Android (Kotlin)
|
|
|
| M7 | Release build, final docs, screenshots, last commits | Done |
|
|
| M7 | Release build, final docs, screenshots, last commits | Done |
|
|
|
| M8 | Home-button visibility switches, All Apps pinning, 16-button adaptive grid, keep-awake | Done |
|
|
| M8 | Home-button visibility switches, All Apps pinning, 16-button adaptive grid, keep-awake | Done |
|
|
|
| M9 | Accent colors, battery toggle, fading hint, user icons, Media equalizer, install rule | Done |
|
|
| M9 | Accent colors, battery toggle, fading hint, user icons, Media equalizer, install rule | Done |
|
|
|
|
|
+| M10 | Remove Home-role banner, one-time first-run tip, pinned Rename/icon/remove menu | Done |
|
|
|
|
|
|
|
|
## 5. Verification checklist
|
|
## 5. Verification checklist
|
|
|
|
|
|
|
|
- [x] `flutter analyze` clean.
|
|
- [x] `flutter analyze` clean.
|
|
|
-- [x] Unit/widget tests pass (21 tests: PIN, repository, theme/accent, battery visibility, slot visibility, pinned apps, cap, dense grid, equalizer).
|
|
|
|
|
|
|
+- [x] Unit/widget tests pass (23 tests: PIN, repository, theme/accent, battery, first-run state, slot visibility, pinned apps, custom labels/icons, cap, dense grid, equalizer).
|
|
|
- [x] Debug APK builds with JDK 21.
|
|
- [x] Debug APK builds with JDK 21.
|
|
|
- [x] Installs on API 35 1280×800 tablet.
|
|
- [x] Installs on API 35 1280×800 tablet.
|
|
|
- [x] HOME role granted; Home opens CarDash.
|
|
- [x] HOME role granted; Home opens CarDash.
|
|
@@ -127,7 +134,10 @@ Android (Kotlin)
|
|
|
- [x] Music equalizer widget animates; native media-active polling is wired.
|
|
- [x] Music equalizer widget animates; native media-active polling is wired.
|
|
|
- [x] Home hint is gone after two minutes from process start.
|
|
- [x] Home hint is gone after two minutes from process start.
|
|
|
- [x] All Apps search icon is visibly smaller.
|
|
- [x] All Apps search icon is visibly smaller.
|
|
|
-- [x] Release 0.3.0 installed on the emulator and physical Android 17 tablet.
|
|
|
|
|
|
|
+- [x] No Home-role banner; the first-run tip appears once, then never again.
|
|
|
|
|
+- [x] Long-press pinned app shows Rename, Change icon and Remove.
|
|
|
|
|
+- [x] Rename updates the Home label; Change icon persists an installed app icon; Remove is immediate.
|
|
|
|
|
+- [x] Release 0.4.0 installed on the emulator and physical Android 17 tablet.
|
|
|
- [x] Screenshots in `docs/screenshots/`; README/AGENTS/plan updated.
|
|
- [x] Screenshots in `docs/screenshots/`; README/AGENTS/plan updated.
|
|
|
|
|
|
|
|
## 6. Known risks and mitigations
|
|
## 6. Known risks and mitigations
|
|
@@ -151,8 +161,10 @@ Android (Kotlin)
|
|
|
foreground; it is not a background wake lock.
|
|
foreground; it is not a background wake lock.
|
|
|
8. **Media attribution**: the equalizer follows `AudioManager.isMusicActive`,
|
|
8. **Media attribution**: the equalizer follows `AudioManager.isMusicActive`,
|
|
|
not a specific package. Exact attribution would require notification access.
|
|
not a specific package. Exact attribution would require notification access.
|
|
|
-9. **Uninstall/reinstall** may drop the HOME role; Settings and the installer
|
|
|
|
|
- script can restore it.
|
|
|
|
|
|
|
+9. **Pinned customizations**: Rename affects only the Home label; a custom icon
|
|
|
|
|
+ falls back to the app/generic icon if its source app is uninstalled.
|
|
|
|
|
+10. **Uninstall/reinstall** may drop the HOME role; Settings and the installer
|
|
|
|
|
+ script can restore it.
|
|
|
|
|
|
|
|
## 7. Out of scope (for now)
|
|
## 7. Out of scope (for now)
|
|
|
|
|
|
|
@@ -180,3 +192,7 @@ Android (Kotlin)
|
|
|
a media-active equalizer, and a smaller All Apps search icon. Added the
|
|
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
|
|
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.
|
|
user-app icon (F-Droid), hint expiry, and 0.3.0 on the emulator/tablet.
|
|
|
|
|
+- 2026-10-29: Removed the Home-role banner; added a once-only first-run tip.
|
|
|
|
|
+ Replaced immediate removal with a pinned-app menu (Rename, Change icon,
|
|
|
|
|
+ Remove), custom Home labels and up to 25 installed-app icon choices. Verified
|
|
|
|
|
+ 23 tests and the full menu flow at 1280×800; 0.4.0 installed on the tablet.
|