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
package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java
CHANGED
|
@@ -30,11 +30,9 @@ import com.facebook.react.uimanager.events.EventDispatcher;
|
|
|
30
30
|
import com.facebook.react.uimanager.events.EventDispatcherListener;
|
|
31
31
|
import java.util.ArrayDeque;
|
|
32
32
|
import java.util.ArrayList;
|
|
33
|
-
import java.util.HashMap;
|
|
34
33
|
import java.util.LinkedList;
|
|
35
34
|
import java.util.List;
|
|
36
35
|
import java.util.ListIterator;
|
|
37
|
-
import java.util.Map;
|
|
38
36
|
import java.util.Queue;
|
|
39
37
|
|
|
40
38
|
/**
|
|
@@ -57,9 +55,9 @@ import java.util.Queue;
|
|
|
57
55
|
private final SparseArray<AnimatedNode> mAnimatedNodes = new SparseArray<>();
|
|
58
56
|
private final SparseArray<AnimationDriver> mActiveAnimations = new SparseArray<>();
|
|
59
57
|
private final SparseArray<AnimatedNode> mUpdatedNodes = new SparseArray<>();
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
private final
|
|
58
|
+
// List of event animation drivers for an event on view.
|
|
59
|
+
// There may be multiple drivers for the same event and view.
|
|
60
|
+
private final List<EventAnimationDriver> mEventDrivers = new ArrayList<>();
|
|
63
61
|
private final ReactApplicationContext mReactApplicationContext;
|
|
64
62
|
private int mAnimatedGraphBFSColor = 0;
|
|
65
63
|
// Used to avoid allocating a new array on every frame in `runUpdates` and `onEventDispatch`.
|
|
@@ -76,36 +74,27 @@ import java.util.Queue;
|
|
|
76
74
|
|
|
77
75
|
/**
|
|
78
76
|
* Initialize event listeners for Fabric UIManager or non-Fabric UIManager, exactly once. Once
|
|
79
|
-
* Fabric is the only UIManager, this logic can be simplified. This is
|
|
80
|
-
* thread.
|
|
77
|
+
* Fabric is the only UIManager, this logic can be simplified. This is expected to only be called
|
|
78
|
+
* from the native module thread.
|
|
81
79
|
*
|
|
82
80
|
* @param uiManagerType
|
|
83
81
|
*/
|
|
84
|
-
@UiThread
|
|
85
82
|
public void initializeEventListenerForUIManagerType(@UIManagerType final int uiManagerType) {
|
|
86
|
-
if (
|
|
87
|
-
|
|
83
|
+
if (uiManagerType == UIManagerType.FABRIC
|
|
84
|
+
? mEventListenerInitializedForFabric
|
|
85
|
+
: mEventListenerInitializedForNonFabric) {
|
|
88
86
|
return;
|
|
89
87
|
}
|
|
90
88
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (uiManagerType == UIManagerType.FABRIC) {
|
|
102
|
-
mEventListenerInitializedForFabric = true;
|
|
103
|
-
} else {
|
|
104
|
-
mEventListenerInitializedForNonFabric = true;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
});
|
|
89
|
+
UIManager uiManager = UIManagerHelper.getUIManager(mReactApplicationContext, uiManagerType);
|
|
90
|
+
if (uiManager != null) {
|
|
91
|
+
uiManager.<EventDispatcher>getEventDispatcher().addListener(this);
|
|
92
|
+
if (uiManagerType == UIManagerType.FABRIC) {
|
|
93
|
+
mEventListenerInitializedForFabric = true;
|
|
94
|
+
} else {
|
|
95
|
+
mEventListenerInitializedForNonFabric = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
109
98
|
}
|
|
110
99
|
|
|
111
100
|
/*package*/ @Nullable
|
|
@@ -471,7 +460,8 @@ import java.util.Queue;
|
|
|
471
460
|
}
|
|
472
461
|
|
|
473
462
|
@UiThread
|
|
474
|
-
public void addAnimatedEventToView(
|
|
463
|
+
public void addAnimatedEventToView(
|
|
464
|
+
int viewTag, String eventHandlerName, ReadableMap eventMapping) {
|
|
475
465
|
int nodeTag = eventMapping.getInt("animatedValueTag");
|
|
476
466
|
AnimatedNode node = mAnimatedNodes.get(nodeTag);
|
|
477
467
|
if (node == null) {
|
|
@@ -482,8 +472,8 @@ import java.util.Queue;
|
|
|
482
472
|
throw new JSApplicationIllegalArgumentException(
|
|
483
473
|
"addAnimatedEventToView: Animated node on view ["
|
|
484
474
|
+ viewTag
|
|
485
|
-
+ "] connected to event ("
|
|
486
|
-
+
|
|
475
|
+
+ "] connected to event handler ("
|
|
476
|
+
+ eventHandlerName
|
|
487
477
|
+ ") should be of type "
|
|
488
478
|
+ ValueAnimatedNode.class.getName());
|
|
489
479
|
}
|
|
@@ -494,37 +484,31 @@ import java.util.Queue;
|
|
|
494
484
|
pathList.add(path.getString(i));
|
|
495
485
|
}
|
|
496
486
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
List<EventAnimationDriver> drivers = new ArrayList<>(1);
|
|
503
|
-
drivers.add(event);
|
|
504
|
-
mEventDrivers.put(key, drivers);
|
|
505
|
-
}
|
|
487
|
+
String eventName = normalizeEventName(eventHandlerName);
|
|
488
|
+
|
|
489
|
+
EventAnimationDriver eventDriver =
|
|
490
|
+
new EventAnimationDriver(eventName, viewTag, pathList, (ValueAnimatedNode) node);
|
|
491
|
+
mEventDrivers.add(eventDriver);
|
|
506
492
|
}
|
|
507
493
|
|
|
508
494
|
@UiThread
|
|
509
|
-
public void removeAnimatedEventFromView(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
}
|
|
495
|
+
public void removeAnimatedEventFromView(
|
|
496
|
+
int viewTag, String eventHandlerName, int animatedValueTag) {
|
|
497
|
+
|
|
498
|
+
String eventName = normalizeEventName(eventHandlerName);
|
|
499
|
+
|
|
500
|
+
ListIterator<EventAnimationDriver> it = mEventDrivers.listIterator();
|
|
501
|
+
while (it.hasNext()) {
|
|
502
|
+
EventAnimationDriver driver = it.next();
|
|
503
|
+
if (eventName.equals(driver.mEventName)
|
|
504
|
+
&& viewTag == driver.mViewTag
|
|
505
|
+
&& animatedValueTag == driver.mValueNode.mTag) {
|
|
506
|
+
it.remove();
|
|
507
|
+
break;
|
|
523
508
|
}
|
|
524
509
|
}
|
|
525
510
|
}
|
|
526
511
|
|
|
527
|
-
@UiThread
|
|
528
512
|
@Override
|
|
529
513
|
public void onEventDispatch(final Event event) {
|
|
530
514
|
// Events can be dispatched from any thread so we have to make sure handleEvent is run from the
|
|
@@ -556,18 +540,19 @@ import java.util.Queue;
|
|
|
556
540
|
if (uiManager == null) {
|
|
557
541
|
return;
|
|
558
542
|
}
|
|
559
|
-
String eventName = uiManager.resolveCustomDirectEventName(event.getEventName());
|
|
560
|
-
if (eventName == null) {
|
|
561
|
-
eventName = "";
|
|
562
|
-
}
|
|
563
543
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
544
|
+
boolean foundAtLeastOneDriver = false;
|
|
545
|
+
Event.EventAnimationDriverMatchSpec matchSpec = event.getEventAnimationDriverMatchSpec();
|
|
546
|
+
for (EventAnimationDriver driver : mEventDrivers) {
|
|
547
|
+
if (matchSpec.match(driver.mViewTag, driver.mEventName)) {
|
|
548
|
+
foundAtLeastOneDriver = true;
|
|
567
549
|
stopAnimationsForNode(driver.mValueNode);
|
|
568
550
|
event.dispatch(driver);
|
|
569
551
|
mRunUpdateNodeList.add(driver.mValueNode);
|
|
570
552
|
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
if (foundAtLeastOneDriver) {
|
|
571
556
|
updateNodes(mRunUpdateNodeList);
|
|
572
557
|
mRunUpdateNodeList.clear();
|
|
573
558
|
}
|
|
@@ -782,4 +767,14 @@ import java.util.Queue;
|
|
|
782
767
|
mWarnedAboutGraphTraversal = false;
|
|
783
768
|
}
|
|
784
769
|
}
|
|
770
|
+
|
|
771
|
+
private String normalizeEventName(String eventHandlerName) {
|
|
772
|
+
// Fabric UIManager also makes this assumption
|
|
773
|
+
String eventName = eventHandlerName;
|
|
774
|
+
if (eventHandlerName.startsWith("on")) {
|
|
775
|
+
eventName = "top" + eventHandlerName.substring(2);
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
return eventName;
|
|
779
|
+
}
|
|
785
780
|
}
|
|
@@ -105,7 +105,13 @@ public class ReactFeatureFlags {
|
|
|
105
105
|
public static boolean enableDelayedViewStateDeletion = false;
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
|
-
* Send key down events as well as key up events
|
|
108
|
+
* Android TV: Send key down events as well as key up events.
|
|
109
|
+
* Enabling this flag will result in two 'select' TVRemoteEventHandler events
|
|
110
|
+
* (one with key action 0 and one with key action 1) for each press of the center
|
|
111
|
+
* DPad button. (Similarly for arrow keys.)
|
|
112
|
+
* Note: If you enable this flag, long presses of the select or center button will
|
|
113
|
+
* result in an initial 'select' with eventKeyAction = 0 (ACTION_DOWN), before
|
|
114
|
+
* the expected 'longSelect' events are fired. (Similarly for arrow keys.)
|
|
109
115
|
*/
|
|
110
116
|
public static boolean enableKeyDownEvents = false;
|
|
111
117
|
|
|
@@ -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
|
|
|
@@ -39,6 +39,7 @@ public abstract class Event<T extends Event> {
|
|
|
39
39
|
private int mViewTag;
|
|
40
40
|
private long mTimestampMs;
|
|
41
41
|
private int mUniqueID = sUniqueID++;
|
|
42
|
+
private @Nullable EventAnimationDriverMatchSpec mEventAnimationDriverMatchSpec;
|
|
42
43
|
|
|
43
44
|
protected Event() {}
|
|
44
45
|
|
|
@@ -156,6 +157,19 @@ public abstract class Event<T extends Event> {
|
|
|
156
157
|
/** @return the name of this event as registered in JS */
|
|
157
158
|
public abstract String getEventName();
|
|
158
159
|
|
|
160
|
+
public EventAnimationDriverMatchSpec getEventAnimationDriverMatchSpec() {
|
|
161
|
+
if (mEventAnimationDriverMatchSpec == null) {
|
|
162
|
+
mEventAnimationDriverMatchSpec =
|
|
163
|
+
new EventAnimationDriverMatchSpec() {
|
|
164
|
+
@Override
|
|
165
|
+
public boolean match(int viewTag, String eventName) {
|
|
166
|
+
return viewTag == getViewTag() && eventName.equals(getEventName());
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
return mEventAnimationDriverMatchSpec;
|
|
171
|
+
}
|
|
172
|
+
|
|
159
173
|
/**
|
|
160
174
|
* Dispatch this event to JS using the given event emitter. Compatible with old and new renderer.
|
|
161
175
|
* Instead of using this or dispatchModern, it is recommended that you simply override
|
|
@@ -216,4 +230,8 @@ public abstract class Event<T extends Event> {
|
|
|
216
230
|
}
|
|
217
231
|
dispatch(rctEventEmitter);
|
|
218
232
|
}
|
|
233
|
+
|
|
234
|
+
public interface EventAnimationDriverMatchSpec {
|
|
235
|
+
boolean match(int viewTag, String eventName);
|
|
236
|
+
}
|
|
219
237
|
}
|
|
@@ -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,
|