diff --git a/plans/todo.md b/plans/todo.md index 53d548a..1e7414f 100644 --- a/plans/todo.md +++ b/plans/todo.md @@ -1,11 +1,91 @@ # Next-session TODO -Hand-off list as of 2026-05-10. Deploy target is GitHub Pages -(`/loto/` base). All prior plan folders + their reports have been -swept after shipping; residual / new items live here directly. +Hand-off list as of 2026-08-19. Covers both `web/` (SvelteKit PWA, +deployed to GitHub Pages at the `/loto/` base) and `android/` (Capacitor +wrapper). Shipped plan folders are swept after release; residual and new +items live here directly. ## Highest leverage (start here) +### Android device QA (blocked: no device or emulator) + +Carried from the shipped Android experience pass. The native code is +merged and statically reviewed, but every item below is device-only — +this environment is headless ARM64 with no emulator and no Android SDK. + +- [ ] Tap a cell → vibrates; enable reduced-motion → silent. +- [ ] Auto-call 3+ min untouched → screen stays lit. Stop → sleeps normally. +- [ ] Background during auto-call, return → still lit. +- [ ] Finish a round (remaining 0) → lock releases. +- [ ] Back with bingo modal open → modal closes, app stays. +- [ ] Back with settings open → sheet closes. +- [ ] Back at root → Vietnamese exit dialog; "Ở lại" keeps state. +- [ ] System font 200% → grid intact; Settings → Cỡ chữ bảng resizes; + survives reload. +- [ ] Gesture nav + status bar clear of the settings gear and footer. +- [ ] Volume rocker during a call → media slider. +- [ ] Launcher shows `Lô tô` with the brand icon; themed-icon mode tints it. +- [ ] Cold start in dark mode → dark splash, no white flash. + +Two assumptions the checklist doubles as a test for: the WebView has no +history at rest (SvelteKit hydrates with `replaceState`), so back at root +should exit rather than navigate; and `OnBackPressedCallback` / `Bridge` +resolve transitively through `appcompat` / `capacitor-android` — never +compiled here, so a build failure would show up first. + +### Android wrapper — open items + +Merged from `android/plans/todo.md` on 2026-08-19. Items that the Android +experience pass already shipped (haptics, back button, safe-area insets, +launcher icon, splash + night variant) were dropped rather than carried; +verified present in `MainActivity.java`, `web/src/app.css`, and +`android/android/app/src/main/res/`. + +- [ ] Sideload onto real devices (API 24, 31, 36) and BlueStacks. Overlaps + the device QA list above — do both in one sitting. +- [ ] Cold start: app loads `https://localhost/`, no white flash > 1s. +- [ ] Offline: airplane mode, kill app, relaunch — must work. +- [ ] Audio: tap a number → Vietnamese voice plays; both voices switch + correctly (`hoai-my` ↔ `nam-minh`). +- [ ] First-launch SW registration: confirm Workbox precaches the bundled + audio without errors (should be idempotent — assets already on disk). +- [ ] Audio focus: the WebView `