ReviewOS

also looking at this

craft-native/craft

fix(native): retain keyed controls and correct map and tab chrome

#368
Merged chris wants to merge codex/native-repeated-selector-identity into main
32 files +449 -100

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/templates/MainActivityNative.kt.templatemodified+2-2
Changes to packages/android/templates/MainActivityNative.kt.template
@@ -6574,11 +6574,11 @@ class MainActivity : AppCompatActivity() {
65746574 }
65756575
65766576 private fun applyAccessibility(view: View, props: JSONObject, type: String, fallbackLabel: String) {
6577 view.tag = fallbackLabel
6577 val testId = craftNativeOptionalString(props.opt("testID"))
6578 view.tag = testId?.takeIf { it.isNotBlank() } ?: fallbackLabel
65786579 val label = craftNativeOptionalString(props.opt("accessibilityLabel"))
65796580 ?: craftNativeOptionalString(props.opt("alt"))?.takeIf { type == "Image" || type == "ImageBackground" }
65806581 val value = craftNativeOptionalString(props.opt("accessibilityValue"))
6581 val testId = craftNativeOptionalString(props.opt("testID"))
65826582 view.contentDescription = when {
65836583 label != null && value != null -> "$label, $value"
65846584 label != null -> label