ReviewOS

also looking at this

craft-native/craft

feat(maps): add key-free native Android maps and shared map controls

#363
Merged chris wants to merge codex/wildloop-native-map-providers into main
28 files +1857 -481

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+12-1
Changes to packages/android/fixtures/native-navigation/NativeNavigationTest.kt
@@ -613,9 +613,20 @@ class NativeNavigationTest {
613613 Intent(instrumentation.targetContext, MainActivity::class.java)
614614 .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
615615 ) as MainActivity
616 fun matching(root: AccessibilityNodeInfo, id: String): AccessibilityNodeInfo? {
617 if (root.viewIdResourceName == id) return root
618 for (index in 0 until root.childCount) {
619 val child = root.getChild(index) ?: continue
620 matching(child, id)?.let { return it }
621 }
622 return null
623 }
616624 fun node(id: String): AccessibilityNodeInfo {
617625 repeat(100) {
618 automation.rootInActiveWindow?.findAccessibilityNodeInfosByViewId(id)?.firstOrNull()?.let { return it }
626 // Native automation consumes node metadata. Android's direct
627 // find-by-view-ID RPC instead resolves an AAPT resource ID,
628 // which authored STX identities deliberately do not allocate.
629 automation.rootInActiveWindow?.let { matching(it, id) }?.let { return it }
619630 SystemClock.sleep(100)
620631 }
621632 throw AssertionError("The native accessibility tree did not expose STX testID $id")