diff options
| author | Adam Soltys <[email protected]> | 2026-09-11 23:16:49 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-11 23:16:49 -0700 |
| commit | c377f1bbc452da5019eff1e32542219e42fe1f42 (patch) | |
| tree | 430322d056b0e44e1c938ec30060fbfc47ff1d0c /android/app/src/main/java | |
| parent | d3234dfaf12dc3d7970c099fdc777a9b4ccc8e9d (diff) | |
| download | coinosv3-c377f1bbc452da5019eff1e32542219e42fe1f42.tar.gz coinosv3-c377f1bbc452da5019eff1e32542219e42fe1f42.zip | |
A tap on the balance card waited 700ms to show anything.
Tapping the unit tag on a phone took the best part of a second to change the
number. Measured on the device: 824ms, three taps running. The same tap on a
laptop was 30ms.
The balance carousel freezes itself while a finger is down — renders are held
and the strip is marked _skipMorph, so a background repaint can't rebuild it
mid-drag and yank the scroll. Touch-end lifts the render hold but leaves the
strip frozen until a scroll settles... and a TAP produces no scroll events at
all. So the freeze stood until the 700ms safety net fired, and every render in
between was refused by the morph — including the one the tap had just asked
for.
The mouse path has always had this guard (it only freezes once the pointer has
moved four pixels, and unfreezes immediately on a release that never moved),
which is why this never showed up on a laptop. The touch path now notices the
same thing the only way it can: the strip's scroll position is recorded when
the finger lands, and if it hasn't moved by the time the finger lifts, that
was a tap and the strip unfreezes there and then.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_019mrt228Upn9nNCwGixzSLx
Diffstat (limited to 'android/app/src/main/java')
0 files changed, 0 insertions, 0 deletions
