From 95b70d0204479f65e67843d920823c92ff8c9de3 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Wed, 19 Aug 2026 16:10:31 +0700 Subject: [PATCH] chore(plans): fold the android and web hand-off lists into todo.md The consolidation commit moved todo.md but carried its pre-merge contents; the merged body was left unstaged. Land it here. Covers both targets now: the device QA checklist carried off the shipped Android experience pass, the Play production access window, the clipped web PWA icons defect, the surviving Android wrapper items, and the Capacitor decision record. --- plans/todo.md | 132 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 125 insertions(+), 7 deletions(-) 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 `