react-native-tvos 0.69.6-3 → 0.69.8-0rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Components/TV/TVFocusGuideView.js +72 -61
- package/Libraries/Components/View/ViewNativeComponent.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Lists/VirtualizedList.js +25 -10
- package/README.md +2 -1
- package/React/Base/RCTVersion.m +2 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +66 -29
- package/React/Views/RCTTVView.h +6 -1
- package/React/Views/RCTTVView.m +65 -7
- package/React/Views/RCTViewManager.m +5 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactAndroidHWInputDeviceHelper.java +44 -14
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +60 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +40 -4
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/react/renderer/components/view/ViewProps.cpp +80 -16
- package/ReactCommon/react/renderer/components/view/ViewProps.h +8 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-javadoc.jar → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-javadoc.jar} +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-javadoc.jar → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-javadoc.jar} +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3.module → 0.69.8-0rc/hermes-engine-0.69.8-0rc.module} +47 -47
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.module.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.module.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.module.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.module.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3.pom → 0.69.8-0rc/hermes-engine-0.69.8-0rc.pom} +1 -1
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.pom.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.pom.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.pom.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc.pom.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/maven-metadata.xml +4 -4
- package/android/com/facebook/react/hermes-engine/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/hermes-engine/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/hermes-engine/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/hermes-engine/maven-metadata.xml.sha512 +1 -1
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-debug-javadoc.jar → 0.69.8-0rc/react-native-0.69.8-0rc-debug-javadoc.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-debug-sources.jar → 0.69.8-0rc/react-native-0.69.8-0rc-debug-sources.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-sources.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-sources.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-sources.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug-sources.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-debug.aar → 0.69.8-0rc/react-native-0.69.8-0rc-debug.aar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-debug.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-release-javadoc.jar → 0.69.8-0rc/react-native-0.69.8-0rc-release-javadoc.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-release-sources.jar → 0.69.8-0rc/react-native-0.69.8-0rc-release-sources.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-sources.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-sources.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-sources.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release-sources.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3-release.aar → 0.69.8-0rc/react-native-0.69.8-0rc-release.aar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc-release.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3.module → 0.69.8-0rc/react-native-0.69.8-0rc.module} +57 -57
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-3/react-native-0.69.6-3.pom → 0.69.8-0rc/react-native-0.69.8-0rc.pom} +1 -1
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0rc/react-native-0.69.8-0rc.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/package.json +2 -2
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/template/package.json +1 -1
- package/tvos-types.d.ts +28 -5
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug.aar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug.aar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug.aar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-debug.aar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release.aar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release.aar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release.aar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3-release.aar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.module.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.module.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.module.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.module.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.pom.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.pom.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.pom.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-3/hermes-engine-0.69.6-3.pom.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-sources.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-sources.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-sources.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug-sources.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-debug.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-sources.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-sources.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-sources.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release-sources.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3-release.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-3/react-native-0.69.6-3.pom.sha512 +0 -1
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-sources.jar → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-sources.jar} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-sources.jar.md5 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-sources.jar.md5} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-sources.jar.sha1 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-sources.jar.sha1} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-sources.jar.sha256 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-sources.jar.sha256} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-debug-sources.jar.sha512 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-debug-sources.jar.sha512} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-sources.jar → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-sources.jar} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-sources.jar.md5 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-sources.jar.md5} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-sources.jar.sha1 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-sources.jar.sha1} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-sources.jar.sha256 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-sources.jar.sha256} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-3/hermes-engine-0.69.6-3-release-sources.jar.sha512 → 0.69.8-0rc/hermes-engine-0.69.8-0rc-release-sources.jar.sha512} +0 -0
|
@@ -81,8 +81,14 @@ public class ReactAndroidHWInputDeviceHelper {
|
|
|
81
81
|
*/
|
|
82
82
|
private int mLastFocusedViewId = View.NO_ID;
|
|
83
83
|
|
|
84
|
+
// Presses longer than this number of milliseconds are treated as long presses
|
|
85
|
+
// This seems to be roughly the time the emulator waits after the first key down event
|
|
86
|
+
// before sending a continuous stream of rapid key downs on a long press.
|
|
87
|
+
private long mLongPressedDelta = 300;
|
|
88
|
+
|
|
89
|
+
// These are used for long press detection
|
|
84
90
|
private long mLastKeyDownTime = 0;
|
|
85
|
-
private
|
|
91
|
+
private boolean longPressEventActive = false;
|
|
86
92
|
|
|
87
93
|
public ReactAndroidHWInputDeviceHelper() {}
|
|
88
94
|
|
|
@@ -101,6 +107,12 @@ public class ReactAndroidHWInputDeviceHelper {
|
|
|
101
107
|
eventKeyCode == KeyEvent.KEYCODE_DPAD_LEFT;
|
|
102
108
|
}
|
|
103
109
|
|
|
110
|
+
// True if we are in the long press state and we are more than
|
|
111
|
+
// mLongPressedDelta milliseconds since the last long press event was fired
|
|
112
|
+
private boolean isLongPressEventTime(long time) {
|
|
113
|
+
return mLastKeyDownTime != 0 && time - mLastKeyDownTime > mLongPressedDelta;
|
|
114
|
+
}
|
|
115
|
+
|
|
104
116
|
/** Called from {@link com.facebook.react.ReactRootView}. This is the main place the key events are handled. */
|
|
105
117
|
public void handleKeyEvent(KeyEvent ev, ReactContext context) {
|
|
106
118
|
int eventKeyCode = ev.getKeyCode();
|
|
@@ -108,30 +120,48 @@ public class ReactAndroidHWInputDeviceHelper {
|
|
|
108
120
|
long time = SystemClock.uptimeMillis();
|
|
109
121
|
boolean isSelectOrDPadEvent = isDPadEvent(eventKeyCode) || isSelectEvent(eventKeyCode);
|
|
110
122
|
|
|
111
|
-
// Simple implementation of long press detection
|
|
112
|
-
if ((eventKeyAction == KeyEvent.ACTION_DOWN)
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
// Simple implementation of long press detection for key down events
|
|
124
|
+
if ((eventKeyAction == KeyEvent.ACTION_DOWN) && isSelectOrDPadEvent) {
|
|
125
|
+
if (mLastKeyDownTime == 0) {
|
|
126
|
+
mLastKeyDownTime = time;
|
|
127
|
+
} else {
|
|
128
|
+
if (isLongPressEventTime(time)) {
|
|
129
|
+
// Activate long press state and don't reset until key up event arrives
|
|
130
|
+
longPressEventActive = true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
115
133
|
}
|
|
116
134
|
|
|
117
|
-
if (shouldDispatchEvent(eventKeyCode, eventKeyAction)) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
135
|
+
if (shouldDispatchEvent(eventKeyCode, eventKeyAction, time)) {
|
|
136
|
+
if(longPressEventActive) {
|
|
137
|
+
// If we are not sending key down events to JS, send the long press event as a key up to make sure it is received
|
|
138
|
+
dispatchEvent(
|
|
139
|
+
KEY_EVENTS_LONG_PRESS_ACTIONS.get(eventKeyCode),
|
|
140
|
+
mLastFocusedViewId,
|
|
141
|
+
ReactFeatureFlags.enableKeyDownEvents ? eventKeyAction : KeyEvent.ACTION_UP,
|
|
142
|
+
context
|
|
143
|
+
);
|
|
144
|
+
// Update the start time for detecting the next long press event
|
|
145
|
+
mLastKeyDownTime = time;
|
|
123
146
|
} else {
|
|
124
147
|
dispatchEvent(KEY_EVENTS_ACTIONS.get(eventKeyCode), mLastFocusedViewId, eventKeyAction, context);
|
|
125
148
|
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// If this is key up event, reset long press detector
|
|
152
|
+
if ((eventKeyAction == KeyEvent.ACTION_UP) && isSelectOrDPadEvent) {
|
|
126
153
|
mLastKeyDownTime = 0;
|
|
154
|
+
longPressEventActive = false;
|
|
127
155
|
}
|
|
156
|
+
|
|
128
157
|
}
|
|
129
158
|
|
|
130
|
-
// Android TV: Only send key up actions, unless key down events are enabled
|
|
131
|
-
private boolean shouldDispatchEvent(int eventKeyCode, int eventKeyAction) {
|
|
159
|
+
// Android TV: Only send key up actions, unless key down events are enabled or we need to send a long press event
|
|
160
|
+
private boolean shouldDispatchEvent(int eventKeyCode, int eventKeyAction, long time) {
|
|
132
161
|
return KEY_EVENTS_ACTIONS.containsKey(eventKeyCode) && (
|
|
133
162
|
(eventKeyAction == KeyEvent.ACTION_UP) ||
|
|
134
|
-
(eventKeyAction == KeyEvent.ACTION_DOWN && ReactFeatureFlags.enableKeyDownEvents)
|
|
163
|
+
(eventKeyAction == KeyEvent.ACTION_DOWN && !longPressEventActive && ReactFeatureFlags.enableKeyDownEvents) ||
|
|
164
|
+
(eventKeyAction == KeyEvent.ACTION_DOWN && longPressEventActive && isLongPressEventTime(time))
|
|
135
165
|
);
|
|
136
166
|
}
|
|
137
167
|
|
|
@@ -586,6 +586,10 @@ public class ReactEditText extends AppCompatEditText
|
|
|
586
586
|
new SpannableStringBuilder(reactTextUpdate.getText());
|
|
587
587
|
|
|
588
588
|
manageSpans(spannableStringBuilder, reactTextUpdate.mContainsMultipleFragments);
|
|
589
|
+
|
|
590
|
+
// Mitigation for https://github.com/facebook/react-native/issues/35936 (S318090)
|
|
591
|
+
stripAbsoluteSizeSpans(spannableStringBuilder);
|
|
592
|
+
|
|
589
593
|
mContainsImages = reactTextUpdate.containsImages();
|
|
590
594
|
|
|
591
595
|
// When we update text, we trigger onChangeText code that will
|
|
@@ -659,6 +663,27 @@ public class ReactEditText extends AppCompatEditText
|
|
|
659
663
|
}
|
|
660
664
|
}
|
|
661
665
|
|
|
666
|
+
private void stripAbsoluteSizeSpans(SpannableStringBuilder sb) {
|
|
667
|
+
// We have already set a font size on the EditText itself. We can safely remove sizing spans
|
|
668
|
+
// which are the same as the set font size, and not otherwise overlapped.
|
|
669
|
+
final int effectiveFontSize = mTextAttributes.getEffectiveFontSize();
|
|
670
|
+
ReactAbsoluteSizeSpan[] spans = sb.getSpans(0, sb.length(), ReactAbsoluteSizeSpan.class);
|
|
671
|
+
|
|
672
|
+
outerLoop:
|
|
673
|
+
for (ReactAbsoluteSizeSpan span : spans) {
|
|
674
|
+
ReactAbsoluteSizeSpan[] overlappingSpans =
|
|
675
|
+
sb.getSpans(sb.getSpanStart(span), sb.getSpanEnd(span), ReactAbsoluteSizeSpan.class);
|
|
676
|
+
|
|
677
|
+
for (ReactAbsoluteSizeSpan overlappingSpan : overlappingSpans) {
|
|
678
|
+
if (span.getSize() != effectiveFontSize) {
|
|
679
|
+
continue outerLoop;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
sb.removeSpan(span);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
|
|
662
687
|
private static boolean sameTextForSpan(
|
|
663
688
|
final Editable oldText,
|
|
664
689
|
final SpannableStringBuilder newText,
|
|
@@ -20,6 +20,7 @@ import android.graphics.RectF;
|
|
|
20
20
|
import android.graphics.drawable.Drawable;
|
|
21
21
|
import android.graphics.drawable.LayerDrawable;
|
|
22
22
|
import android.os.Build;
|
|
23
|
+
import android.view.FocusFinder;
|
|
23
24
|
import android.view.MotionEvent;
|
|
24
25
|
import android.view.View;
|
|
25
26
|
import android.view.ViewGroup;
|
|
@@ -86,6 +87,10 @@ public class ReactViewGroup extends ViewGroup
|
|
|
86
87
|
private boolean autoFocus = false;
|
|
87
88
|
private WeakReference<View> lastFocusedElement;
|
|
88
89
|
private boolean mRecoverFocus = false;
|
|
90
|
+
private boolean trapFocusUp = false;
|
|
91
|
+
private boolean trapFocusDown = false;
|
|
92
|
+
private boolean trapFocusLeft = false;
|
|
93
|
+
private boolean trapFocusRight = false;
|
|
89
94
|
|
|
90
95
|
/**
|
|
91
96
|
* This listener will be set for child views when removeClippedSubview property is enabled. When
|
|
@@ -1092,8 +1097,18 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1092
1097
|
return false;
|
|
1093
1098
|
}
|
|
1094
1099
|
|
|
1100
|
+
private boolean isFocusDestinationsSet() {
|
|
1101
|
+
return focusDestinations.length > 0;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1095
1104
|
private boolean isTVFocusGuide() {
|
|
1096
|
-
|
|
1105
|
+
/**
|
|
1106
|
+
* We don't count a view as `TVFocusGuide` if it has `trapFocus*` props enabled.
|
|
1107
|
+
* The reason is, it's a seperate functionality that has nothing to do with other
|
|
1108
|
+
* TVFocusGuide features that involves heavy focus management. So, the feature
|
|
1109
|
+
* is not directly tied to `TVFocusGuide`.
|
|
1110
|
+
*/
|
|
1111
|
+
return isFocusDestinationsSet() || autoFocus;
|
|
1097
1112
|
}
|
|
1098
1113
|
|
|
1099
1114
|
@Nullable
|
|
@@ -1182,6 +1197,14 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1182
1197
|
return super.requestFocus(direction, previouslyFocusedRect);
|
|
1183
1198
|
}
|
|
1184
1199
|
|
|
1200
|
+
if (isFocusDestinationsSet()) {
|
|
1201
|
+
View destination = findDestinationView();
|
|
1202
|
+
|
|
1203
|
+
if (destination != null && requestFocusViewOrAncestor(destination)) {
|
|
1204
|
+
return true;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1185
1208
|
if (this.autoFocus) {
|
|
1186
1209
|
View lastFocusedElem = lastFocusedElement.get();
|
|
1187
1210
|
|
|
@@ -1207,19 +1230,29 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1207
1230
|
}
|
|
1208
1231
|
}
|
|
1209
1232
|
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
if (destination != null && requestFocusViewOrAncestor(destination)) {
|
|
1213
|
-
return true;
|
|
1214
|
-
}
|
|
1233
|
+
return super.requestFocus(direction, previouslyFocusedRect);
|
|
1234
|
+
}
|
|
1215
1235
|
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1236
|
+
@Override
|
|
1237
|
+
public View focusSearch(View focused, int direction) {
|
|
1238
|
+
/**
|
|
1239
|
+
* FocusSearch recursively goes all the way up to the Root view
|
|
1240
|
+
* and runs `FocusFinder.findNextFocus()` to determine the next focusable.
|
|
1241
|
+
* It finds the next focusable by accounting *every* focusable elements on the screen.
|
|
1242
|
+
*
|
|
1243
|
+
* That is exactly the thing we want to prevent if the view has a `focusTrap` enabled
|
|
1244
|
+
* matching the `direction`. We interrupt `focusSearch` to make the `FocusFinder` run
|
|
1245
|
+
* the algorithm only accounting the children elements of the focus trap.
|
|
1246
|
+
* This ensures that focus will always stay inside the container until trap gets disabled.
|
|
1247
|
+
*/
|
|
1248
|
+
if ((trapFocusUp && direction == FOCUS_UP)
|
|
1249
|
+
|| (trapFocusDown && direction == FOCUS_DOWN)
|
|
1250
|
+
|| (trapFocusLeft && direction == FOCUS_LEFT)
|
|
1251
|
+
|| (trapFocusRight && direction == FOCUS_RIGHT)) {
|
|
1252
|
+
return FocusFinder.getInstance().findNextFocus(this, focused, direction);
|
|
1220
1253
|
}
|
|
1221
1254
|
|
|
1222
|
-
return
|
|
1255
|
+
return super.focusSearch(focused, direction);
|
|
1223
1256
|
}
|
|
1224
1257
|
|
|
1225
1258
|
public void setFocusDestinations(@NonNull int[] focusDestinations) {
|
|
@@ -1230,4 +1263,20 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1230
1263
|
this.autoFocus = autoFocus;
|
|
1231
1264
|
lastFocusedElement = new WeakReference<View>(null);
|
|
1232
1265
|
}
|
|
1266
|
+
|
|
1267
|
+
public void setTrapFocusUp(boolean enabled) {
|
|
1268
|
+
this.trapFocusUp = enabled;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
public void setTrapFocusDown(boolean enabled) {
|
|
1272
|
+
this.trapFocusDown = enabled;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
public void setTrapFocusLeft(boolean enabled) {
|
|
1276
|
+
this.trapFocusLeft = enabled;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
public void setTrapFocusRight(boolean enabled) {
|
|
1280
|
+
this.trapFocusRight = enabled;
|
|
1281
|
+
}
|
|
1233
1282
|
}
|
|
@@ -10,6 +10,7 @@ package com.facebook.react.views.view;
|
|
|
10
10
|
import android.annotation.TargetApi;
|
|
11
11
|
import android.graphics.Rect;
|
|
12
12
|
import android.os.Build;
|
|
13
|
+
import android.util.Log;
|
|
13
14
|
import android.view.View;
|
|
14
15
|
import androidx.annotation.NonNull;
|
|
15
16
|
import androidx.annotation.Nullable;
|
|
@@ -51,6 +52,7 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
51
52
|
};
|
|
52
53
|
private static final int CMD_HOTSPOT_UPDATE = 1;
|
|
53
54
|
private static final int CMD_SET_PRESSED = 2;
|
|
55
|
+
private static final int CMD_SET_DESTINATIONS = 3;
|
|
54
56
|
private static final String HOTSPOT_UPDATE_KEY = "hotspotUpdate";
|
|
55
57
|
|
|
56
58
|
@ReactProp(name = "accessible")
|
|
@@ -305,7 +307,7 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
305
307
|
|
|
306
308
|
@Override
|
|
307
309
|
public Map<String, Integer> getCommandsMap() {
|
|
308
|
-
return MapBuilder.of(HOTSPOT_UPDATE_KEY, CMD_HOTSPOT_UPDATE, "setPressed", CMD_SET_PRESSED);
|
|
310
|
+
return MapBuilder.of(HOTSPOT_UPDATE_KEY, CMD_HOTSPOT_UPDATE, "setPressed", CMD_SET_PRESSED, "setDestinations", CMD_SET_DESTINATIONS);
|
|
309
311
|
}
|
|
310
312
|
|
|
311
313
|
@Override
|
|
@@ -321,6 +323,11 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
321
323
|
handleSetPressed(root, args);
|
|
322
324
|
break;
|
|
323
325
|
}
|
|
326
|
+
case CMD_SET_DESTINATIONS:
|
|
327
|
+
{
|
|
328
|
+
handleSetDestinations(root, args);
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
324
331
|
}
|
|
325
332
|
}
|
|
326
333
|
|
|
@@ -337,6 +344,11 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
337
344
|
handleSetPressed(root, args);
|
|
338
345
|
break;
|
|
339
346
|
}
|
|
347
|
+
case "setDestinations":
|
|
348
|
+
{
|
|
349
|
+
handleSetDestinations(root, args);
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
340
352
|
}
|
|
341
353
|
}
|
|
342
354
|
|
|
@@ -359,14 +371,18 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
359
371
|
root.drawableHotspotChanged(x, y);
|
|
360
372
|
}
|
|
361
373
|
|
|
374
|
+
private void handleSetDestinations(ReactViewGroup root, @Nullable ReadableArray args) {
|
|
375
|
+
if (args == null || args.size() != 1) {
|
|
376
|
+
throw new JSApplicationIllegalArgumentException(
|
|
377
|
+
"Illegal number of arguments for 'setDestinations' command");
|
|
378
|
+
}
|
|
362
379
|
|
|
363
|
-
|
|
364
|
-
public void setDestinations(final ReactViewGroup view, final ReadableArray destinations) {
|
|
380
|
+
ReadableArray destinations = args.getArray(0);
|
|
365
381
|
int[] fd = new int[destinations.size()];
|
|
366
382
|
for (int i = 0; i < fd.length; i++) {
|
|
367
383
|
fd[i] = destinations.getInt(i);
|
|
368
384
|
}
|
|
369
|
-
|
|
385
|
+
root.setFocusDestinations(fd);
|
|
370
386
|
}
|
|
371
387
|
|
|
372
388
|
@ReactProp(name = "autoFocus")
|
|
@@ -374,4 +390,24 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
374
390
|
view.setAutoFocusTV(autoFocus);
|
|
375
391
|
}
|
|
376
392
|
|
|
393
|
+
@ReactProp(name = "trapFocusUp")
|
|
394
|
+
public void trapFocusUp(ReactViewGroup view, boolean enabled) {
|
|
395
|
+
view.setTrapFocusUp(enabled);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
@ReactProp(name = "trapFocusDown")
|
|
399
|
+
public void trapFocusDown(ReactViewGroup view, boolean enabled) {
|
|
400
|
+
view.setTrapFocusDown(enabled);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
@ReactProp(name = "trapFocusLeft")
|
|
404
|
+
public void trapFocusLeft(ReactViewGroup view, boolean enabled) {
|
|
405
|
+
view.setTrapFocusLeft(enabled);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
@ReactProp(name = "trapFocusRight")
|
|
409
|
+
public void trapFocusRight(ReactViewGroup view, boolean enabled) {
|
|
410
|
+
view.setTrapFocusRight(enabled);
|
|
411
|
+
}
|
|
412
|
+
|
|
377
413
|
}
|
|
@@ -17,8 +17,8 @@ namespace facebook::react {
|
|
|
17
17
|
constexpr struct {
|
|
18
18
|
int32_t Major = 0;
|
|
19
19
|
int32_t Minor = 69;
|
|
20
|
-
int32_t Patch =
|
|
21
|
-
std::string_view Prerelease = "
|
|
20
|
+
int32_t Patch = 8;
|
|
21
|
+
std::string_view Prerelease = "0rc";
|
|
22
22
|
} ReactNativeVersion;
|
|
23
23
|
|
|
24
24
|
} // namespace facebook::react
|
|
@@ -31,33 +31,73 @@ ViewProps::ViewProps(
|
|
|
31
31
|
rawProps,
|
|
32
32
|
"isTVSelectable",
|
|
33
33
|
sourceProps.isTVSelectable,
|
|
34
|
-
(Boolean)false)),
|
|
34
|
+
(Boolean) false)),
|
|
35
35
|
hasTVPreferredFocus(convertRawProp(
|
|
36
36
|
context,
|
|
37
37
|
rawProps,
|
|
38
38
|
"hasTVPreferredFocus",
|
|
39
39
|
sourceProps.hasTVPreferredFocus,
|
|
40
|
-
(Boolean)false)),
|
|
40
|
+
(Boolean) false)),
|
|
41
41
|
tvParallaxProperties(convertRawProp(
|
|
42
42
|
context,
|
|
43
43
|
rawProps,
|
|
44
44
|
"tvParallaxProperties",
|
|
45
45
|
sourceProps.tvParallaxProperties,
|
|
46
46
|
{})),
|
|
47
|
-
nextFocusUp(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
nextFocusUp(convertRawProp(
|
|
48
|
+
context,
|
|
49
|
+
rawProps,
|
|
50
|
+
"nextFocusUp",
|
|
51
|
+
sourceProps.nextFocusUp,
|
|
52
|
+
{})),
|
|
53
|
+
nextFocusDown(convertRawProp(
|
|
54
|
+
context,
|
|
55
|
+
rawProps,
|
|
56
|
+
"nextFocusDown",
|
|
57
|
+
sourceProps.nextFocusDown,
|
|
58
|
+
{})),
|
|
59
|
+
nextFocusLeft(convertRawProp(
|
|
60
|
+
context,
|
|
61
|
+
rawProps,
|
|
62
|
+
"nextFocusLeft",
|
|
63
|
+
sourceProps.nextFocusLeft,
|
|
64
|
+
{})),
|
|
65
|
+
nextFocusRight(convertRawProp(
|
|
66
|
+
context,
|
|
67
|
+
rawProps,
|
|
68
|
+
"nextFocusRight",
|
|
69
|
+
sourceProps.nextFocusRight,
|
|
70
|
+
{})),
|
|
55
71
|
autoFocus(convertRawProp(
|
|
56
72
|
context,
|
|
57
73
|
rawProps,
|
|
58
74
|
"autoFocus",
|
|
59
75
|
sourceProps.autoFocus,
|
|
60
76
|
(Boolean) false)),
|
|
77
|
+
trapFocusUp(convertRawProp(
|
|
78
|
+
context,
|
|
79
|
+
rawProps,
|
|
80
|
+
"trapFocusUp",
|
|
81
|
+
sourceProps.trapFocusUp,
|
|
82
|
+
false)),
|
|
83
|
+
trapFocusDown(convertRawProp(
|
|
84
|
+
context,
|
|
85
|
+
rawProps,
|
|
86
|
+
"trapFocusDown",
|
|
87
|
+
sourceProps.trapFocusDown,
|
|
88
|
+
false)),
|
|
89
|
+
trapFocusLeft(convertRawProp(
|
|
90
|
+
context,
|
|
91
|
+
rawProps,
|
|
92
|
+
"trapFocusLeft",
|
|
93
|
+
sourceProps.trapFocusLeft,
|
|
94
|
+
false)),
|
|
95
|
+
trapFocusRight(convertRawProp(
|
|
96
|
+
context,
|
|
97
|
+
rawProps,
|
|
98
|
+
"trapFocusRight",
|
|
99
|
+
sourceProps.trapFocusRight,
|
|
100
|
+
false)),
|
|
61
101
|
#endif
|
|
62
102
|
opacity(convertRawProp(
|
|
63
103
|
context,
|
|
@@ -217,12 +257,36 @@ ViewProps::ViewProps(
|
|
|
217
257
|
"renderToHardwareTextureAndroid",
|
|
218
258
|
sourceProps.renderToHardwareTextureAndroid,
|
|
219
259
|
{})),
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
260
|
+
autoFocus(convertRawProp(
|
|
261
|
+
context,
|
|
262
|
+
rawProps,
|
|
263
|
+
"autoFocus",
|
|
264
|
+
sourceProps.autoFocus,
|
|
265
|
+
false)),
|
|
266
|
+
trapFocusUp(convertRawProp(
|
|
267
|
+
context,
|
|
268
|
+
rawProps,
|
|
269
|
+
"trapFocusUp",
|
|
270
|
+
sourceProps.trapFocusUp,
|
|
271
|
+
false)),
|
|
272
|
+
trapFocusDown(convertRawProp(
|
|
273
|
+
context,
|
|
274
|
+
rawProps,
|
|
275
|
+
"trapFocusDown",
|
|
276
|
+
sourceProps.trapFocusDown,
|
|
277
|
+
false)),
|
|
278
|
+
trapFocusLeft(convertRawProp(
|
|
279
|
+
context,
|
|
280
|
+
rawProps,
|
|
281
|
+
"trapFocusLeft",
|
|
282
|
+
sourceProps.trapFocusLeft,
|
|
283
|
+
false)),
|
|
284
|
+
trapFocusRight(convertRawProp(
|
|
285
|
+
context,
|
|
286
|
+
rawProps,
|
|
287
|
+
"trapFocusRight",
|
|
288
|
+
sourceProps.trapFocusRight,
|
|
289
|
+
false))
|
|
226
290
|
#endif
|
|
227
291
|
{};
|
|
228
292
|
|
|
@@ -79,6 +79,10 @@ class ViewProps : public YogaStylableProps, public AccessibilityProps {
|
|
|
79
79
|
std::optional<int> nextFocusLeft;
|
|
80
80
|
std::optional<int> nextFocusRight;
|
|
81
81
|
bool autoFocus{false};
|
|
82
|
+
bool trapFocusUp{false};
|
|
83
|
+
bool trapFocusDown{false};
|
|
84
|
+
bool trapFocusLeft{false};
|
|
85
|
+
bool trapFocusRight{false};
|
|
82
86
|
#endif
|
|
83
87
|
|
|
84
88
|
Float elevation{}; /* Android-only */
|
|
@@ -93,6 +97,10 @@ class ViewProps : public YogaStylableProps, public AccessibilityProps {
|
|
|
93
97
|
bool needsOffscreenAlphaCompositing{false};
|
|
94
98
|
bool renderToHardwareTextureAndroid{false};
|
|
95
99
|
bool autoFocus{false};
|
|
100
|
+
bool trapFocusUp{false};
|
|
101
|
+
bool trapFocusDown{false};
|
|
102
|
+
bool trapFocusLeft{false};
|
|
103
|
+
bool trapFocusRight{false};
|
|
96
104
|
#endif
|
|
97
105
|
|
|
98
106
|
#pragma mark - Convenience Methods
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6201960e9347682bbc00ae9944a632c4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9e8b5eb666da9f08d0908808dd7d9c16aba4b1c2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c255a9cbbfc674bcc34776435b85dcf390bc56c2341329971951d556b6162907
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4927a35f8ef2836598e81608424fe18557522c9a0985b58596e15cc992c233992e9d568e391c28c3d74d997793123e32b764959867aaec66681f035df463dc24
|
package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar
ADDED
|
Binary file
|
package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8b30cc1e32b0ebb5f2af337204416078
|
package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-debug.aar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4b8c8be5bc8c00dfb4715cc8a11488ecf08c657a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3464ef617b14406c64d3c3cbf74f4ffeb897dcd2bde49ec919b00130cbb180c5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a72a2164acad5c06eec6eb6bce29e5640f8ae2eb5c2870545fd79f0a2f2c7b261885e106a6477bdd8d961a2fb17545273a7d44a4aaff57aa6751c43936d8bf18
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6201960e9347682bbc00ae9944a632c4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9e8b5eb666da9f08d0908808dd7d9c16aba4b1c2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c255a9cbbfc674bcc34776435b85dcf390bc56c2341329971951d556b6162907
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4927a35f8ef2836598e81608424fe18557522c9a0985b58596e15cc992c233992e9d568e391c28c3d74d997793123e32b764959867aaec66681f035df463dc24
|
package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar
ADDED
|
Binary file
|
package/android/com/facebook/react/hermes-engine/0.69.8-0rc/hermes-engine-0.69.8-0rc-release.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
32e211d7dd4d2b0378795c039f3cbda0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8eaec92f520a73dc46bd9d157b1bcc4461616d7a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fda0279686d0fe1fb30949a96cdf72146371049a87f7a83425e91ed53eece376
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5d53f0dcffd9099915e76d0018c4e08588d42facb49e9ff0bd0896db6609ae40cd57ee79ab7043f4412dbe3f672e9a66a5e10f52f755a510ad47fa66b99b8c60
|