Repository navigation
Add pager-aware native list scroll targets - #162
Open
ricardovfreixo wants to merge 4 commits into
Open
ricardovfreixo wants to merge 4 commits into
ricardovfreixo wants to merge 4 commits into
Conversation
This was referenced Oct 23, 2026
ricardovfreixo
marked this pull request as ready for review
October 23, 2026 13:32
Bounded merge for the companion PR NativePHP#162: takes upstream's bounded gesture areas (NativePHP#173), the text/font/keyboard/divider/sheet fixes (NativePHP#142, NativePHP#155, NativePHP#156, NativePHP#163, NativePHP#147, NativePHP#168, NativePHP#170) and the tab-row chrome fix (NativePHP#167), while keeping this branch's scroll-target seam intact — the live pager page availability guard (PagerPageContext), the ancestor pager chain in isAvailable(), and the Android list scroll-target registration. TabRowRenderer.kt resolves to upstream's version: both sides had independently removed the unsupported LocalTopBarColor / LocalTopTabRow hooks, so nothing was reintroduced and no stubs added.
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
Adds optional native-list scroll targets for Android tab reselect, with native pager-aware availability.
NativeList::scrollTarget()/scroll-targetnames the realLazyListState; exact top means index zero AND offset zero.Required paired delivery / release ordering
Depends on the matching core scroll registry and optional
isAvailableargument. Do not merge/release this before that core interface is available.Verification
These include Kotlin source-contract assertions, not Kotlin execution. Upstream now includes a focused JVM harness under
tests/android; it was not run. No Kotlin/JVM/Gradle build or phone validation was executed here. No JUnit test source is placed in production renderer assets.Follow-up Kotlin compatibility fix
The user's first native build exposed four unresolved references in the upstream
TabRowRenderer.kt:LocalTopBarColor/LocalTopTabRoware absent from the paired core. Commit28753b7removes those unsupported imports and restores the documented transparent container. Two source regressions were red before the change and green after it; the full PHP suite and 26 app Log tests pass. Independent narrow review cleared the fix. No native compiler rerun was executed by the agent.Current-main integration
Merge
00e4831be6cf24fa71ce60b0c1699d4060e3966aincludes upstream86ef0e6without a rebase. Bounded gestures, fonts/text/keyboard/sheet fixes are preserved alongside live pager availability and scroll-target registration. TabRowRenderer is byte-identical to upstream's corrected transparent implementation. Matching core:cbf2eb466f85ed68dec960d5e727ca61673ddbf6. Independent provider/consumer review found no P0/P1.Android gates — ready for review, native validation outstanding
Rebuild using the paired core/UI refs and verify root-tab scroll + refresh, pager swipes/settles, nested pager availability, away-and-return cancellation, and non-pager lists. Compile/runtime behavior and TalkBack/layout checks remain user-run.