Correct Android onTapToFocus gesture and event delivery - #1
Open
SproutSeeds wants to merge 3 commits into
Open
SproutSeeds wants to merge 3 commits into
SproutSeeds wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
I found two Android callback problems while testing your work in Tesla #814, which adds the callback requested in #590. Lifting the last finger after a pinch emits onTapToFocus, and queued discrete taps can be combined into one callback.
This correction suppresses the new callback after multiple pointer input and makes TapToFocusEvent noncoalescing. It also clarifies the iOS focusMode requirement in the two API descriptions. The existing native focus and zoom paths retain their behavior. Four files, 13 additions and three deletions against your 36be2b6 head.
How did you test this change?
I compared the original, your PR and the corrected native builds. Your PR fails three subscribed pinch assertions in each Android renderer. Three valid Paper queue trials each accept four native window taps but deliver one callback. The correction passes those controls.
Final Paper and Fabric each pass 44 checks covering pinch, repeated taps, cancellation, callback removal/restoration, remounts, queued delivery and ten returns from Home. Android builds and TypeScript pass. The full iOS Paper bridge suite passes three methods and 13 preview tap cases. On my iPhone 15 Pro Max, I confirmed focus, pinch without tap callbacks, continued focus/zoom without the callback and restored delivery afterward.
Reproduction fixtures, results and exact commits, failure classifications.
Full iOS controls build with CLT clang 17. Default clang 21, Jest and explicit ESLint have matching baseline setup failures. Android optics are emulated; queue tests use bundled apps with developer support off. Earlier debug stress and emulator failures remain in the report. Physical Android optics and hosted execution are unverified; upstream workflows await approval with zero jobs.
Cody