Document Phase 6 on-device verification for FB-06..FB-09
This commit is contained in:
@@ -197,3 +197,28 @@ check finds the pulse genuinely missing, and that check could not be run. The re
|
|||||||
acceptance-criteria checkbox ("location marker's pulse animation is confirmed visible
|
acceptance-criteria checkbox ("location marker's pulse animation is confirmed visible
|
||||||
on-device...") is therefore left unchecked/unresolved and should be picked up in a
|
on-device...") is therefore left unchecked/unresolved and should be picked up in a
|
||||||
follow-up pass that has emulator access.
|
follow-up pass that has emulator access.
|
||||||
|
|
||||||
|
### On-device verification, later pass (emulator available)
|
||||||
|
|
||||||
|
Confirmed idle-state ambient centering (FB-01) and the marker's continuous pulse
|
||||||
|
render both in idle and during an active recording (steady frame production visible
|
||||||
|
via `EGL_emulation` logcat timing throughout, not just a single static frame) — the
|
||||||
|
marker itself is unchanged so this is the same animation already shipped, now
|
||||||
|
confirmed rendering on both screens this ticket touches.
|
||||||
|
|
||||||
|
Manual pan via `adb shell input swipe`/`touchscreen swipe` was attempted repeatedly
|
||||||
|
(varying distance, duration, idle vs. recording state, both directions) and never
|
||||||
|
visibly moved the camera or surfaced the recenter button, even though the exact same
|
||||||
|
input mechanism reliably worked elsewhere in this build (Settings list scroll, tab
|
||||||
|
switches, HUD long-press-to-edit, button taps). Source re-inspection during this pass
|
||||||
|
confirms `interactionOptions` unconditionally sets
|
||||||
|
`InteractiveFlag.pinchZoom | InteractiveFlag.drag` exactly as designed, and the 7
|
||||||
|
widget tests added for this ticket directly exercise the pan-cancels-following and
|
||||||
|
recenter-button logic and all pass. Given a working generic swipe mechanism failed
|
||||||
|
specifically and only against `flutter_map`'s own drag recognizer, this reads as more
|
||||||
|
likely a synthetic-touch/gesture-recognition limitation of `adb`-injected swipes
|
||||||
|
against `flutter_map`'s `InteractiveViewer`-style gesture arena than a code defect —
|
||||||
|
but it was not possible to conclusively confirm real single-finger drag panning
|
||||||
|
on-device from this environment. This should be spot-checked directly on a physical
|
||||||
|
device (or via manual interaction with the emulator's own window, not `adb input`)
|
||||||
|
before fully closing out this ticket's live-pan acceptance criterion.
|
||||||
|
|||||||
@@ -200,3 +200,27 @@ The code change and its three widget tests are the verified deliverable for this
|
|||||||
the on-device screenshot check called for in Implementation step 3 / Acceptance criteria
|
the on-device screenshot check called for in Implementation step 3 / Acceptance criteria
|
||||||
was not completed and should be picked up in a follow-up pass when the emulator is
|
was not completed and should be picked up in a follow-up pass when the emulator is
|
||||||
stable, rather than by fighting it further here.
|
stable, rather than by fighting it further here.
|
||||||
|
|
||||||
|
### On-device verification, later pass (emulator available)
|
||||||
|
|
||||||
|
Opened a brand-new route with a mock GPS fix set (`adb emu geo fix`). Confirmed the
|
||||||
|
camera now opens centered on the mock location at street-level zoom, not Null Island —
|
||||||
|
this ticket's actual fix is verified working.
|
||||||
|
|
||||||
|
Tile rendering itself was intermittent: the Route Planner's own `TileLayer` repeatedly
|
||||||
|
fell back to the app-wide skeleton placeholder (`SkeletonMapLayer`, a faint animated
|
||||||
|
grid — confirmed present on close visual inspection of a cropped/enlarged screenshot,
|
||||||
|
not truly blank) for extended periods, while the separate, already-fully-cached
|
||||||
|
`AppShell` background map kept showing live tiles at the same location moments apart.
|
||||||
|
Since `skeletonMode` is one process-wide `ChangeNotifierProvider` shared by every map
|
||||||
|
in the app (`mapConnectivityProvider`), both maps must agree at any instant — the
|
||||||
|
divergence observed here is consistent with `skeletonMode` genuinely flapping
|
||||||
|
true/false (a real, if intermittent, tile-fetch problem in this emulator session) and
|
||||||
|
the two screenshots simply landing on different sides of a flip. A host-side `curl` to
|
||||||
|
the tile host succeeded instantly, but an in-emulator `ping` hung for its full 2-minute
|
||||||
|
timeout, pointing at degraded network condition inside this specific AVD rather than a
|
||||||
|
`RoutePlannerScreen`-specific defect — its `TileLayer`/`CachedTileProvider` setup is
|
||||||
|
byte-for-byte the same pattern `RideMap` already uses successfully. This matches the
|
||||||
|
"second, distinct bug" this ticket's own Risks section anticipated as a possibility;
|
||||||
|
the investigation here did not find a code-level cause, and the location-centering fix
|
||||||
|
itself is confirmed correct and complete.
|
||||||
|
|||||||
@@ -155,3 +155,11 @@ metric into a row with an existing member reflows that row so their `colSpan`s s
|
|||||||
`lib/src/crash/crash_reporter.dart` and `lib/src/tiles/map_connectivity.dart`, neither
|
`lib/src/crash/crash_reporter.dart` and `lib/src/tiles/map_connectivity.dart`, neither
|
||||||
touched by this ticket). `flutter test` is green with a final count of **416 tests**
|
touched by this ticket). `flutter test` is green with a final count of **416 tests**
|
||||||
(412 baseline + 4 new), no regressions.
|
(412 baseline + 4 new), no regressions.
|
||||||
|
|
||||||
|
### On-device verification, later pass (emulator available)
|
||||||
|
|
||||||
|
Confirmed live on a running recording: with all four default metrics visible
|
||||||
|
(Speed / Average speed / Distance / Elapsed time), turning "Average speed" off in
|
||||||
|
Settings' Live HUD Stats section immediately reflowed Speed and Distance to each take
|
||||||
|
half the row, with no gap left behind — matching the acceptance criteria exactly, seen
|
||||||
|
with a real before/after screenshot.
|
||||||
|
|||||||
@@ -326,3 +326,10 @@ that `defaultFor` packs by title width instead of a fixed 4-per-row index. Both
|
|||||||
rewritten to explicitly position their metrics into a shared row via
|
rewritten to explicitly position their metrics into a shared row via
|
||||||
`updatePosition`/`updateSize` before exercising `_reflowRow`, so they test the reflow
|
`updatePosition`/`updateSize` before exercising `_reflowRow`, so they test the reflow
|
||||||
behavior itself rather than an incidental default-layout coincidence.
|
behavior itself rather than an incidental default-layout coincidence.
|
||||||
|
|
||||||
|
### On-device verification, later pass (emulator available)
|
||||||
|
|
||||||
|
Confirmed live during a recording: long titles ("AVERAGE SPEED", "ELAPSED TIME") both
|
||||||
|
render at full size, uncut and unellipsized, with "Average speed" correctly claiming a
|
||||||
|
wider default column span than "Speed" or "Distance" per `minColSpanForLabel`. No
|
||||||
|
overflow or clipping observed at default widget sizes on the emulator's screen.
|
||||||
|
|||||||
Reference in New Issue
Block a user