react-native-tvos 0.69.6-2 → 0.69.8-0
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/Pressable/Pressable.js +11 -2
- package/Libraries/Components/ScrollView/ScrollView.js +1 -0
- package/Libraries/Components/TV/TVEventHandler.js +4 -2
- package/Libraries/Components/TV/TVFocusEventHandler.js +4 -2
- package/Libraries/Components/TV/TVFocusGuideView.js +77 -47
- package/Libraries/Components/TV/TVViewPropTypes.js +7 -0
- package/Libraries/Components/TV/useTVEventHandler.js +2 -1
- package/Libraries/Components/TextInput/TextInput.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +5 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +7 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +7 -0
- package/Libraries/Components/View/View.js +36 -2
- package/Libraries/Components/View/ViewNativeComponent.js +9 -3
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Lists/VirtualizedList.js +25 -10
- package/Libraries/LogBox/UI/LogBoxButton.js +16 -12
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -20
- package/Libraries/StyleSheet/StyleSheetTypes.js +1 -0
- package/Libraries/Types/CoreEventTypes.js +9 -0
- package/README.md +3 -1
- package/React/Base/RCTRootView.m +6 -0
- package/React/Base/RCTRootViewInternal.h +1 -0
- package/React/Base/RCTVersion.m +2 -2
- package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +111 -8
- package/React/Views/RCTTVView.h +13 -1
- package/React/Views/RCTTVView.m +91 -0
- package/React/Views/RCTViewManager.m +14 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.java +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +57 -62
- 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/uimanager/events/Event.java +18 -0
- 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 +247 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +50 -4
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/react/renderer/components/view/ViewProps.cpp +87 -11
- package/ReactCommon/react/renderer/components/view/ViewProps.h +10 -1
- package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-javadoc.jar → 0.69.8-0/hermes-engine-0.69.8-0-debug-javadoc.jar} +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-javadoc.jar → 0.69.8-0/hermes-engine-0.69.8-0-release-javadoc.jar} +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2.module → 0.69.8-0/hermes-engine-0.69.8-0.module} +47 -47
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.module.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.module.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.module.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.module.sha512 +1 -0
- package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2.pom → 0.69.8-0/hermes-engine-0.69.8-0.pom} +1 -1
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.pom.md5 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.pom.sha1 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.pom.sha256 +1 -0
- package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0.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-2/react-native-0.69.6-2-release-javadoc.jar → 0.69.8-0/react-native-0.69.8-0-debug-javadoc.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2-debug-sources.jar → 0.69.8-0/react-native-0.69.8-0-debug-sources.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-sources.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-sources.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-sources.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug-sources.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2-debug.aar → 0.69.8-0/react-native-0.69.8-0-debug.aar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-debug.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2-debug-javadoc.jar → 0.69.8-0/react-native-0.69.8-0-release-javadoc.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-javadoc.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-javadoc.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-javadoc.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-javadoc.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2-release-sources.jar → 0.69.8-0/react-native-0.69.8-0-release-sources.jar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-sources.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-sources.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-sources.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release-sources.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2-release.aar → 0.69.8-0/react-native-0.69.8-0-release.aar} +0 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0-release.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2.module → 0.69.8-0/react-native-0.69.8-0.module} +57 -57
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.69.6-2/react-native-0.69.6-2.pom → 0.69.8-0/react-native-0.69.8-0.pom} +1 -1
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.69.8-0/react-native-0.69.8-0.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/index.js +1 -7
- 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 +41 -5
- package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug.aar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug.aar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug.aar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-debug.aar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release.aar +0 -0
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release.aar.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release.aar.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release.aar.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2-release.aar.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.module.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.module.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.module.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.module.sha512 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.pom.md5 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.pom.sha1 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.pom.sha256 +0 -1
- package/android/com/facebook/react/hermes-engine/0.69.6-2/hermes-engine-0.69.6-2.pom.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-sources.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-sources.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-sources.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug-sources.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-debug.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-javadoc.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-javadoc.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-javadoc.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-javadoc.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-sources.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-sources.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-sources.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release-sources.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2-release.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.69.6-2/react-native-0.69.6-2.pom.sha512 +0 -1
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-sources.jar → 0.69.8-0/hermes-engine-0.69.8-0-debug-sources.jar} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-sources.jar.md5 → 0.69.8-0/hermes-engine-0.69.8-0-debug-sources.jar.md5} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-sources.jar.sha1 → 0.69.8-0/hermes-engine-0.69.8-0-debug-sources.jar.sha1} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-sources.jar.sha256 → 0.69.8-0/hermes-engine-0.69.8-0-debug-sources.jar.sha256} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-debug-sources.jar.sha512 → 0.69.8-0/hermes-engine-0.69.8-0-debug-sources.jar.sha512} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-sources.jar → 0.69.8-0/hermes-engine-0.69.8-0-release-sources.jar} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-sources.jar.md5 → 0.69.8-0/hermes-engine-0.69.8-0-release-sources.jar.md5} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-sources.jar.sha1 → 0.69.8-0/hermes-engine-0.69.8-0-release-sources.jar.sha1} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-sources.jar.sha256 → 0.69.8-0/hermes-engine-0.69.8-0-release-sources.jar.sha256} +0 -0
- /package/android/com/facebook/react/hermes-engine/{0.69.6-2/hermes-engine-0.69.6-2-release-sources.jar.sha512 → 0.69.8-0/hermes-engine-0.69.8-0-release-sources.jar.sha512} +0 -0
|
@@ -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;
|
|
@@ -60,6 +61,9 @@ import com.facebook.react.uimanager.common.UIManagerType;
|
|
|
60
61
|
import com.facebook.react.uimanager.common.ViewUtil;
|
|
61
62
|
import com.facebook.yoga.YogaConstants;
|
|
62
63
|
|
|
64
|
+
import java.lang.ref.WeakReference;
|
|
65
|
+
import java.util.ArrayList;
|
|
66
|
+
|
|
63
67
|
/**
|
|
64
68
|
* Backing for a React View. Has support for borders, but since borders aren't common, lazy
|
|
65
69
|
* initializes most of the storage needed for them.
|
|
@@ -80,6 +84,13 @@ public class ReactViewGroup extends ViewGroup
|
|
|
80
84
|
/* should only be used in {@link #updateClippingToRect} */
|
|
81
85
|
private static final Rect sHelperRect = new Rect();
|
|
82
86
|
private @NonNull int[] focusDestinations = new int[0];
|
|
87
|
+
private boolean autoFocus = false;
|
|
88
|
+
private WeakReference<View> lastFocusedElement;
|
|
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;
|
|
83
94
|
|
|
84
95
|
/**
|
|
85
96
|
* This listener will be set for child views when removeClippedSubview property is enabled. When
|
|
@@ -385,6 +396,8 @@ public class ReactViewGroup extends ViewGroup
|
|
|
385
396
|
Animation animation = child.getAnimation();
|
|
386
397
|
boolean isAnimating = animation != null && !animation.hasEnded();
|
|
387
398
|
if (!intersects && child.getParent() != null && !isAnimating) {
|
|
399
|
+
recoverFocus(child);
|
|
400
|
+
|
|
388
401
|
// We can try saving on invalidate call here as the view that we remove is out of visible area
|
|
389
402
|
// therefore invalidation is not necessary.
|
|
390
403
|
super.removeViewsInLayout(idx - clippedSoFar, 1);
|
|
@@ -440,6 +453,71 @@ public class ReactViewGroup extends ViewGroup
|
|
|
440
453
|
}
|
|
441
454
|
}
|
|
442
455
|
|
|
456
|
+
boolean moveFocusToFirstFocusable(ReactViewGroup viewGroup) {
|
|
457
|
+
ArrayList<View> focusables = new ArrayList<View>(0);
|
|
458
|
+
/**
|
|
459
|
+
* `addFocusables` is the method used by `FocusFinder` to determine
|
|
460
|
+
* which elements are `focusable` within the given view.
|
|
461
|
+
* Here we use it for the exact purpose. It mutates/populates the `focusables` array list.
|
|
462
|
+
* Focus direction (FOCUS_DOWN) doesn't matter at all because
|
|
463
|
+
* it's not being used by the underlying implementation.
|
|
464
|
+
*/
|
|
465
|
+
viewGroup.addFocusables(focusables, FOCUS_DOWN, FOCUSABLES_ALL);
|
|
466
|
+
/**
|
|
467
|
+
* Depending on ViewGroup's `descendantFocusability` property,
|
|
468
|
+
* the first element can be the ViewGroup itself.
|
|
469
|
+
* The other ones on the list can be non-focusable as well.
|
|
470
|
+
* So, we run a loop till finding the first real focusable element.
|
|
471
|
+
*/
|
|
472
|
+
if (focusables.size() <= 0) return false;
|
|
473
|
+
|
|
474
|
+
View firstFocusableElement = null;
|
|
475
|
+
Integer index = 0;
|
|
476
|
+
while (firstFocusableElement == null && index < focusables.size()) {
|
|
477
|
+
View elem = focusables.get(index);
|
|
478
|
+
if (elem.isFocusable() && elem != viewGroup) {
|
|
479
|
+
firstFocusableElement = elem;
|
|
480
|
+
break;
|
|
481
|
+
}
|
|
482
|
+
index++;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
if (firstFocusableElement != null) return firstFocusableElement.requestFocus();
|
|
486
|
+
|
|
487
|
+
return false;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
void recoverFocus(View view) {
|
|
491
|
+
if (!view.hasFocus() || !(view instanceof ReactViewGroup)) return;
|
|
492
|
+
|
|
493
|
+
ReactViewGroup parentFocusGuide = findParentFocusGuide(view);
|
|
494
|
+
if (parentFocusGuide == null) return;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Making `parentFocusGuide` focusable for a brief time to
|
|
498
|
+
* temporarily move the focus to it. We do this to prevent
|
|
499
|
+
* Android from moving the focus to top-left-most element of the screen.
|
|
500
|
+
*/
|
|
501
|
+
parentFocusGuide.mRecoverFocus = true;
|
|
502
|
+
parentFocusGuide.setFocusable(true);
|
|
503
|
+
parentFocusGuide.requestFocus();
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* We set a Runnable to wait and make sure every layout related action gets completed
|
|
507
|
+
* before trying to find a new focus candidate inside the `parentFocusGuide`.
|
|
508
|
+
*/
|
|
509
|
+
UiThreadUtil.runOnUiThread(
|
|
510
|
+
new Runnable() {
|
|
511
|
+
@Override
|
|
512
|
+
public void run() {
|
|
513
|
+
moveFocusToFirstFocusable(parentFocusGuide);
|
|
514
|
+
|
|
515
|
+
parentFocusGuide.setFocusable(false);
|
|
516
|
+
parentFocusGuide.mRecoverFocus = false;
|
|
517
|
+
}
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
|
|
443
521
|
@Override
|
|
444
522
|
public boolean getChildVisibleRect(View child, Rect r, android.graphics.Point offset) {
|
|
445
523
|
return super.getChildVisibleRect(child, r, offset);
|
|
@@ -494,6 +572,8 @@ public class ReactViewGroup extends ViewGroup
|
|
|
494
572
|
setChildrenDrawingOrderEnabled(false);
|
|
495
573
|
}
|
|
496
574
|
|
|
575
|
+
recoverFocus(view);
|
|
576
|
+
|
|
497
577
|
super.removeView(view);
|
|
498
578
|
}
|
|
499
579
|
|
|
@@ -508,6 +588,8 @@ public class ReactViewGroup extends ViewGroup
|
|
|
508
588
|
setChildrenDrawingOrderEnabled(false);
|
|
509
589
|
}
|
|
510
590
|
|
|
591
|
+
recoverFocus(getChildAt(index));
|
|
592
|
+
|
|
511
593
|
super.removeViewAt(index);
|
|
512
594
|
}
|
|
513
595
|
|
|
@@ -1017,28 +1099,186 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1017
1099
|
return false;
|
|
1018
1100
|
}
|
|
1019
1101
|
|
|
1102
|
+
private boolean isFocusDestinationsSet() {
|
|
1103
|
+
return focusDestinations.length > 0;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
private boolean isTVFocusGuide() {
|
|
1107
|
+
/**
|
|
1108
|
+
* We don't count a view as `TVFocusGuide` if it has `trapFocus*` props enabled.
|
|
1109
|
+
* The reason is, it's a seperate functionality that has nothing to do with other
|
|
1110
|
+
* TVFocusGuide features that involves heavy focus management. So, the feature
|
|
1111
|
+
* is not directly tied to `TVFocusGuide`.
|
|
1112
|
+
*/
|
|
1113
|
+
return isFocusDestinationsSet() || autoFocus;
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
@Nullable
|
|
1117
|
+
private ReactViewGroup findParentFocusGuide(View view) {
|
|
1118
|
+
ViewParent parent = view.getParent();
|
|
1119
|
+
|
|
1120
|
+
while (parent != null) {
|
|
1121
|
+
if (parent instanceof ReactViewGroup) {
|
|
1122
|
+
ReactViewGroup elem = (ReactViewGroup) parent;
|
|
1123
|
+
if (elem.isTVFocusGuide()) return elem;
|
|
1124
|
+
}
|
|
1125
|
+
parent = parent.getParent();
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
return null;
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
/***
|
|
1132
|
+
* This is meant to be used only for TVFocusGuide.
|
|
1133
|
+
* @return View | null
|
|
1134
|
+
*/
|
|
1135
|
+
@Nullable
|
|
1136
|
+
private View getFocusedChildOfFocusGuide() {
|
|
1137
|
+
if (!isTVFocusGuide()) return null;
|
|
1138
|
+
|
|
1139
|
+
/*
|
|
1140
|
+
* We can have nested `TVFocusGuide`s, this is a typical scenario.
|
|
1141
|
+
* The problem is, returned element from `getFocusedChild` can be
|
|
1142
|
+
* either a direct `child` of the `TVFocusGuide` or a `descendant` of it.
|
|
1143
|
+
* Let's say if we run `getFocusedChild` for the Root element, it will always
|
|
1144
|
+
* give us an element even though the Root element is not the direct parent
|
|
1145
|
+
* of the focused element.
|
|
1146
|
+
* So, we need to find the closest `TVFocusGuide` to the focused child
|
|
1147
|
+
* to make sure the focused element's closest `TVFocusGuide` is "this" one.
|
|
1148
|
+
*/
|
|
1149
|
+
View focusedChild = this.getFocusedChild();
|
|
1150
|
+
if (focusedChild == null) return null;
|
|
1151
|
+
|
|
1152
|
+
ReactViewGroup parentFocusGuide = findParentFocusGuide(focusedChild);
|
|
1153
|
+
if (parentFocusGuide == this) return focusedChild;
|
|
1154
|
+
|
|
1155
|
+
return null;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
@Override
|
|
1159
|
+
public void addFocusables(ArrayList<View> views, int direction, int focusableMode) {
|
|
1160
|
+
/**
|
|
1161
|
+
* TVFocusGuides should reveral their children when `mRecoverFocus` is set.
|
|
1162
|
+
* `mRecoverFocus` flag indicates a temporary focus recovery mode it's in which
|
|
1163
|
+
* requires full access to children focusable elements.
|
|
1164
|
+
*/
|
|
1165
|
+
if (isTVFocusGuide() && !mRecoverFocus) {
|
|
1166
|
+
View focusedChild = getFocusedChildOfFocusGuide();
|
|
1167
|
+
|
|
1168
|
+
/*
|
|
1169
|
+
* We only include the view's (TVFocusGuide) itself if it doesn't have a child that currently has the focus.
|
|
1170
|
+
* Otherwise, it means focus is already in the `TVFocusGuide` and all of it's descendants should be included
|
|
1171
|
+
* for focus calculations.
|
|
1172
|
+
*/
|
|
1173
|
+
if (focusedChild == null) {
|
|
1174
|
+
views.add(this);
|
|
1175
|
+
return;
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
super.addFocusables(views, direction, focusableMode);
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
@Override
|
|
1183
|
+
public void requestChildFocus(View child, View focused) {
|
|
1184
|
+
super.requestChildFocus(child, focused);
|
|
1185
|
+
|
|
1186
|
+
if (autoFocus) {
|
|
1187
|
+
lastFocusedElement = new WeakReference<View>(focused);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
@Override
|
|
1192
|
+
protected void onFocusChanged(boolean gainFocus, int direction, @Nullable Rect previouslyFocusedRect) {
|
|
1193
|
+
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1020
1196
|
@Override
|
|
1021
1197
|
public boolean requestFocus(int direction, Rect previouslyFocusedRect) {
|
|
1022
|
-
if (
|
|
1198
|
+
if (!isTVFocusGuide() || mRecoverFocus) {
|
|
1023
1199
|
return super.requestFocus(direction, previouslyFocusedRect);
|
|
1024
1200
|
}
|
|
1025
1201
|
|
|
1026
|
-
|
|
1202
|
+
if (isFocusDestinationsSet()) {
|
|
1203
|
+
View destination = findDestinationView();
|
|
1027
1204
|
|
|
1028
|
-
|
|
1029
|
-
|
|
1205
|
+
if (destination != null && requestFocusViewOrAncestor(destination)) {
|
|
1206
|
+
return true;
|
|
1207
|
+
}
|
|
1030
1208
|
}
|
|
1031
1209
|
|
|
1032
|
-
|
|
1033
|
-
|
|
1210
|
+
if (this.autoFocus) {
|
|
1211
|
+
View lastFocusedElem = lastFocusedElement.get();
|
|
1212
|
+
|
|
1213
|
+
if (lastFocusedElem != null) {
|
|
1214
|
+
|
|
1215
|
+
if (lastFocusedElem.isAttachedToWindow()) {
|
|
1216
|
+
lastFocusedElem.requestFocus();
|
|
1217
|
+
return true;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
/**
|
|
1221
|
+
* `lastFocusedElem` can get detached based on application logic.
|
|
1222
|
+
* If the code reaches here, that means we're dealing with that case.
|
|
1223
|
+
* We should set `lastFocusedElem` to null and let the focus determination
|
|
1224
|
+
* logic below to do its magic and redirect focus to the first element.
|
|
1225
|
+
*/
|
|
1226
|
+
lastFocusedElement = new WeakReference<View>(null);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
// Try moving the focus to the first focusable element otherwise.
|
|
1230
|
+
if (moveFocusToFirstFocusable(this)) {
|
|
1034
1231
|
return true;
|
|
1035
1232
|
}
|
|
1036
1233
|
}
|
|
1037
1234
|
|
|
1038
|
-
return
|
|
1235
|
+
return super.requestFocus(direction, previouslyFocusedRect);
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
@Override
|
|
1239
|
+
public View focusSearch(View focused, int direction) {
|
|
1240
|
+
/**
|
|
1241
|
+
* FocusSearch recursively goes all the way up to the Root view
|
|
1242
|
+
* and runs `FocusFinder.findNextFocus()` to determine the next focusable.
|
|
1243
|
+
* It finds the next focusable by accounting *every* focusable elements on the screen.
|
|
1244
|
+
*
|
|
1245
|
+
* That is exactly the thing we want to prevent if the view has a `focusTrap` enabled
|
|
1246
|
+
* matching the `direction`. We interrupt `focusSearch` to make the `FocusFinder` run
|
|
1247
|
+
* the algorithm only accounting the children elements of the focus trap.
|
|
1248
|
+
* This ensures that focus will always stay inside the container until trap gets disabled.
|
|
1249
|
+
*/
|
|
1250
|
+
if ((trapFocusUp && direction == FOCUS_UP)
|
|
1251
|
+
|| (trapFocusDown && direction == FOCUS_DOWN)
|
|
1252
|
+
|| (trapFocusLeft && direction == FOCUS_LEFT)
|
|
1253
|
+
|| (trapFocusRight && direction == FOCUS_RIGHT)) {
|
|
1254
|
+
return FocusFinder.getInstance().findNextFocus(this, focused, direction);
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
return super.focusSearch(focused, direction);
|
|
1039
1258
|
}
|
|
1040
1259
|
|
|
1041
1260
|
public void setFocusDestinations(@NonNull int[] focusDestinations) {
|
|
1042
1261
|
this.focusDestinations = focusDestinations;
|
|
1043
1262
|
}
|
|
1263
|
+
|
|
1264
|
+
public void setAutoFocusTV(boolean autoFocus) {
|
|
1265
|
+
this.autoFocus = autoFocus;
|
|
1266
|
+
lastFocusedElement = new WeakReference<View>(null);
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
public void setTrapFocusUp(boolean enabled) {
|
|
1270
|
+
this.trapFocusUp = enabled;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
public void setTrapFocusDown(boolean enabled) {
|
|
1274
|
+
this.trapFocusDown = enabled;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
public void setTrapFocusLeft(boolean enabled) {
|
|
1278
|
+
this.trapFocusLeft = enabled;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
public void setTrapFocusRight(boolean enabled) {
|
|
1282
|
+
this.trapFocusRight = enabled;
|
|
1283
|
+
}
|
|
1044
1284
|
}
|
|
@@ -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,16 @@ 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
|
+
}
|
|
352
|
+
case "requestTVFocus":
|
|
353
|
+
{
|
|
354
|
+
root.requestFocus();
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
340
357
|
}
|
|
341
358
|
}
|
|
342
359
|
|
|
@@ -359,14 +376,43 @@ public class ReactViewManager extends ReactClippingViewManager<ReactViewGroup> {
|
|
|
359
376
|
root.drawableHotspotChanged(x, y);
|
|
360
377
|
}
|
|
361
378
|
|
|
379
|
+
private void handleSetDestinations(ReactViewGroup root, @Nullable ReadableArray args) {
|
|
380
|
+
if (args == null || args.size() != 1) {
|
|
381
|
+
throw new JSApplicationIllegalArgumentException(
|
|
382
|
+
"Illegal number of arguments for 'setDestinations' command");
|
|
383
|
+
}
|
|
362
384
|
|
|
363
|
-
|
|
364
|
-
public void setDestinations(final ReactViewGroup view, final ReadableArray destinations) {
|
|
385
|
+
ReadableArray destinations = args.getArray(0);
|
|
365
386
|
int[] fd = new int[destinations.size()];
|
|
366
387
|
for (int i = 0; i < fd.length; i++) {
|
|
367
388
|
fd[i] = destinations.getInt(i);
|
|
368
389
|
}
|
|
369
|
-
|
|
390
|
+
root.setFocusDestinations(fd);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
@ReactProp(name = "autoFocus")
|
|
394
|
+
public void setAutoFocusTV(ReactViewGroup view, boolean autoFocus) {
|
|
395
|
+
view.setAutoFocusTV(autoFocus);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
@ReactProp(name = "trapFocusUp")
|
|
399
|
+
public void trapFocusUp(ReactViewGroup view, boolean enabled) {
|
|
400
|
+
view.setTrapFocusUp(enabled);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
@ReactProp(name = "trapFocusDown")
|
|
404
|
+
public void trapFocusDown(ReactViewGroup view, boolean enabled) {
|
|
405
|
+
view.setTrapFocusDown(enabled);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
@ReactProp(name = "trapFocusLeft")
|
|
409
|
+
public void trapFocusLeft(ReactViewGroup view, boolean enabled) {
|
|
410
|
+
view.setTrapFocusLeft(enabled);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
@ReactProp(name = "trapFocusRight")
|
|
414
|
+
public void trapFocusRight(ReactViewGroup view, boolean enabled) {
|
|
415
|
+
view.setTrapFocusRight(enabled);
|
|
370
416
|
}
|
|
371
417
|
|
|
372
418
|
}
|
|
@@ -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 = "0";
|
|
22
22
|
} ReactNativeVersion;
|
|
23
23
|
|
|
24
24
|
} // namespace facebook::react
|
|
@@ -31,27 +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
|
+
{})),
|
|
71
|
+
autoFocus(convertRawProp(
|
|
72
|
+
context,
|
|
73
|
+
rawProps,
|
|
74
|
+
"autoFocus",
|
|
75
|
+
sourceProps.autoFocus,
|
|
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)),
|
|
55
101
|
#endif
|
|
56
102
|
opacity(convertRawProp(
|
|
57
103
|
context,
|
|
@@ -210,7 +256,37 @@ ViewProps::ViewProps(
|
|
|
210
256
|
rawProps,
|
|
211
257
|
"renderToHardwareTextureAndroid",
|
|
212
258
|
sourceProps.renderToHardwareTextureAndroid,
|
|
213
|
-
{}))
|
|
259
|
+
{})),
|
|
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))
|
|
214
290
|
#endif
|
|
215
291
|
{};
|
|
216
292
|
|
|
@@ -78,6 +78,11 @@ class ViewProps : public YogaStylableProps, public AccessibilityProps {
|
|
|
78
78
|
std::optional<int> nextFocusDown;
|
|
79
79
|
std::optional<int> nextFocusLeft;
|
|
80
80
|
std::optional<int> nextFocusRight;
|
|
81
|
+
bool autoFocus{false};
|
|
82
|
+
bool trapFocusUp{false};
|
|
83
|
+
bool trapFocusDown{false};
|
|
84
|
+
bool trapFocusLeft{false};
|
|
85
|
+
bool trapFocusRight{false};
|
|
81
86
|
#endif
|
|
82
87
|
|
|
83
88
|
Float elevation{}; /* Android-only */
|
|
@@ -91,7 +96,11 @@ class ViewProps : public YogaStylableProps, public AccessibilityProps {
|
|
|
91
96
|
bool hasTVPreferredFocus{false};
|
|
92
97
|
bool needsOffscreenAlphaCompositing{false};
|
|
93
98
|
bool renderToHardwareTextureAndroid{false};
|
|
94
|
-
|
|
99
|
+
bool autoFocus{false};
|
|
100
|
+
bool trapFocusUp{false};
|
|
101
|
+
bool trapFocusDown{false};
|
|
102
|
+
bool trapFocusLeft{false};
|
|
103
|
+
bool trapFocusRight{false};
|
|
95
104
|
#endif
|
|
96
105
|
|
|
97
106
|
#pragma mark - Convenience Methods
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
997d5856e0278a47950534c7b7abd0b0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c2ea17c3e281e3d9b0e6d26fda7dff8209a147d3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
71ca84c5b8dd1922e17dabf3996c7c0c97e173bae4735fb8fee0e5bac5c3cc07
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
297e3655c67f9408915cb689609c9e5628bf7e47f1c95021e177a944ab5fdedfb7dd485e993ea0c3ef4dcfda0b77cfd454d1a7bb123a395b925e585efa8fa4df
|
|
Binary file
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ee2b2730343b8716d190c80803c6ce5d
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c3ff9590abdb134bcfa1c2bb3bb1e3522fef468f
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
53a6ba2595a81699797a95e0af6def3baffc8f6ff12230da5593db9bd5df93d7
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-debug.aar.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a1b3bfa6e56cc856991c6cdc0e048224555d8762662a85e31282b6f6759044bbdf6fdb1420809a59bad1781fc53744c6fd780f61aafdefd8f251ea7000ed607c
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
997d5856e0278a47950534c7b7abd0b0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c2ea17c3e281e3d9b0e6d26fda7dff8209a147d3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
71ca84c5b8dd1922e17dabf3996c7c0c97e173bae4735fb8fee0e5bac5c3cc07
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
297e3655c67f9408915cb689609c9e5628bf7e47f1c95021e177a944ab5fdedfb7dd485e993ea0c3ef4dcfda0b77cfd454d1a7bb123a395b925e585efa8fa4df
|
|
Binary file
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
64b7555285628d425f07e904320b0845
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fee8ee3dfc5b2e97ab62407c1780a72d0e3f4c2d
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
72b9bcf2ae5c81a1df3aa5d1cf4bb86015d932a22b040515d64094f4989d7265
|
package/android/com/facebook/react/hermes-engine/0.69.8-0/hermes-engine-0.69.8-0-release.aar.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fbb7aa8c30cd3697c2153140dd36deb1095bb418405d50fb0141ad92b80091b391018db23ad15fa19b74869cfcc133a6fa751a903f540e915de1d875073a360c
|