Wear OS manual qa checklist
this checklist is run before declaring a Wear OS milestone complete. it covers emulator validation plus one real watch where possible.
build and static checks
- [ ]
flutter analyzeis green. - [ ]
flutter testis green. - [ ]
flutter build linuxis green. - [ ]
flutter cleanthenflutter build apk --flavor wear -t lib/main_wear.dartproduces a release APK. - [ ] the wear APK installs on a Wear OS emulator (API 30+) and on a physical watch if one is available.
home and navigation
- [ ] the watch home screen lists easy mode, meditations, insights, and settings (recitation is reached through easy mode or a meditation).
- [ ] rotary crown / bezel scrolling works on lists.
- [ ] tapping an entry opens the correct screen.
- [ ] the system back gesture returns to the home screen.
ambient / aod
- [ ] AOD is only active when the watch's Always-on display setting is on.
- [ ] with AOD on, the app stays visible and dims in ambient mode.
- [ ] an
OngoingActivitychip appears on the watch face (on supported watch faces) and tapping it returns to the app. - [ ] the app is auto-resumed on wake from ambient mode.
sync
- [ ] the watch settings screen shows the paired-phone connection status.
- [ ] manual sync now starts a Data Layer sync and updates the last-sync time.
- [ ] a meditation toggled for sync to watch appears on the watch list after a sync.
- [ ] a session started on the watch reaches the phone's history after the next sync or app open.
- [ ] a session started on the phone reaches the watch's insights after the next sync or app open.
- [ ] user-imported sounds missing on the watch fall back to built-in sounds with a one-line notice.
health relay
- [ ] a completed watch session appears in Health Connect on the paired phone (when permissions were previously granted).
- [ ] health records are not written directly from the watch.
do not disturb
- [ ] with silence phone enabled and no watch dnd grant, starting a session puts the paired phone in do not disturb and stopping it restores the previous filter.
- [ ] the phone still restores dnd when the watch is disconnected before the session ends (on reconnect, or at the session's expiry).
- [ ] after
adb shell cmd notification allow_dnd com.wesorick.john.knowthatyouarebreathing, a watch session puts the watch itself in do not disturb. - [ ] the settings silence watch row reports which device is silenced and its info screen explains the adb grant.
player and recitation
- [ ] easy mode has a three-way timer/recitation/breathing toggle and starts each mode.
- [ ] timer, meditation player, breathing, and recitation all start and stop correctly.
- [ ] breathing meditations from the saved list start and play the selected exercise.
- [ ] the watch player uses the selected
VisualizerStyle(dot, tree, wave, or circle) for both breathing and meditation segments. - [ ] labels and transport controls are readable over the visualizer, using dark text shadows behind the label and icon glyphs instead of a large covering pill.
- [ ] bells and soundscapes play on the watch (or fall back with a notice).
- [ ] the screen behavior setting is respected.
- [ ] incomplete timer and recitation sessions prompt to save or discard.
- [ ] hardware stem/rotary input works when enabled in recitation input settings (including OnePlus/Android 14).
- [ ] the single debounce setting applies to both screen taps and hardware input.
- [ ] the wear meditation list shows a breathing icon for breathing meditations and a layered icon for mixed-mode meditations.
- [ ] the breathing player shows the current phase (
inhale,exhale,hold) and a breathing-driven visual ring. - [ ] the splash screen is dark when the app launches.
about / version
- [ ] the watch settings screen shows the app icon, name, and version.
- [ ] the phone/desktop settings screen shows the app icon, name, version, and build number.
- [ ] the version shown matches the value in
pubspec.yaml.
battery and reliability
- [ ] a 30-minute session does not crash or drain the watch battery unusually.
- [ ] repeated sync, player, and recitation use does not leave stale state.
- [ ] notifications scheduled on the phone still mirror to the watch.
known deferred items
these features are intentionally not part of this QA pass:
- audio source / remote audio (deferred with stage 10.9).
- watch-local notification scheduling (deferred; phone mirroring is used).