ReviewOS

also looking at this

craft-native/craft

fix(mobile): preserve native editing, navigation, and durable media requests

#369
Merged chris wants to merge codex/native-vertical-scroll-tab-swipes into main
36 files +864 -185

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

packages/android/fixtures/native-navigation/NativeNavigationTest.ktmodified+4-1
Changes to packages/android/fixtures/native-navigation/NativeNavigationTest.kt
@@ -1863,8 +1863,11 @@ class NativeNavigationTest {
18631863 // viewport edge, matching the iOS native scroll host.
18641864 val headerTop = screenTop(peopleHeader)
18651865 val viewportTop = screenTop(people)
1866 val firstChild = (peopleContent as? ViewGroup)?.getChildAt(0)
1867 val layout = "scrollY=${people.scrollY} headerTop=${peopleHeader.top} translationY=${peopleHeader.translationY} contentHeight=${peopleContent.height} viewportHeight=${people.height} firstChild=${firstChild?.tag} firstTranslation=${firstChild?.translationY} headerIsDirectChild=${peopleHeader.parent === peopleContent} focus=${activity.currentFocus?.tag} refreshing=${peopleHost.isRefreshing}"
1868 assertTrue("ScrollView did not retain the requested scroll: $layout", people.scrollY > 0)
18661869 assertTrue(
1867 "ScrollView sticky header did not remain pinned: header=$headerTop viewport=$viewportTop",
1870 "ScrollView sticky header did not remain pinned: header=$headerTop viewport=$viewportTop $layout",
18681871 kotlin.math.abs(headerTop - viewportTop) <= 1,
18691872 )
18701873 }