react-native-tvos 0.77.1-0 → 0.78.0-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/Animated/animations/Animation.js +22 -1
- package/Libraries/Animated/animations/DecayAnimation.js +1 -0
- package/Libraries/Animated/animations/SpringAnimation.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +1 -0
- package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
- package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
- package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
- package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
- package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
- package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
- package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
- package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/Animated/useAnimatedProps.js +14 -56
- package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
- package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
- package/Libraries/Components/TextInput/TextInput.js +6 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +4 -5
- package/Libraries/Components/View/ViewPropTypes.js +0 -9
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -16
- package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
- package/Libraries/Image/AssetSourceResolver.js +11 -0
- package/Libraries/Image/RCTImageView.mm +3 -3
- package/Libraries/Inspector/BorderBox.js +26 -14
- package/Libraries/Inspector/BoxInspector.js +60 -42
- package/Libraries/Inspector/ElementBox.js +55 -48
- package/Libraries/Inspector/StyleInspector.js +36 -30
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Lists/FlatList.d.ts +1 -1
- package/Libraries/Modal/Modal.js +2 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
- package/Libraries/Network/RCTNetworking.android.js +24 -16
- package/Libraries/Network/RCTNetworking.ios.js +1 -46
- package/Libraries/Network/RCTNetworking.js.flow +1 -46
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
- package/Libraries/ReactNative/UIManagerProperties.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
- package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
- package/Libraries/StyleSheet/processTransform.js +6 -0
- package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
- package/Libraries/Text/Text.d.ts +6 -1
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +25 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
- package/Libraries/Text/TextProps.js +2 -2
- package/Libraries/Utilities/BackHandler.android.js +5 -4
- package/Libraries/Utilities/BackHandler.ios.js +3 -4
- package/README-core.md +2 -2
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTDevSettings.h +0 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -0
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
- package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +22 -3
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +7 -2
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
- package/React/Fabric/RCTScheduler.mm +1 -1
- package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -2
- package/React/React-RCTFBReactNativeSpec.podspec +1 -0
- package/React/React-RCTFabric.podspec +3 -2
- package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
- package/React/Views/RCTComponentData.mm +1 -5
- package/React/Views/RCTLayout.m +3 -0
- package/React/Views/RCTShadowView.h +3 -3
- package/React/Views/RCTShadowView.m +52 -20
- package/React/Views/RCTView.m +6 -2
- package/React/Views/RCTViewManager.m +0 -7
- package/React/Views/ScrollView/RCTScrollView.m +46 -19
- package/React-Core.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +120 -227
- package/ReactAndroid/build.gradle.kts +8 -13
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
- package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
- package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
- package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +8 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
- package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
- package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
- package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
- package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
- package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
- package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
- package/ReactCommon/React-Fabric.podspec +8 -0
- package/ReactCommon/React-FabricComponents.podspec +2 -2
- package/ReactCommon/React-FabricImage.podspec +4 -1
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
- package/ReactCommon/cxxreact/Instance.cpp +6 -6
- package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
- package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
- package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
- package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/cxxreact/SystraceSection.h +8 -141
- package/ReactCommon/cxxreact/TraceSection.h +181 -0
- package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
- package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
- package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
- package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
- package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
- package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
- package/ReactCommon/jsi/jsi/decorator.h +61 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
- package/ReactCommon/jsi/jsi/jsi.h +81 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
- package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
- package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
- package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
- package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
- package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -23
- package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
- package/ReactCommon/react/renderer/animations/primitives.h +1 -1
- package/ReactCommon/react/renderer/animations/utils.h +3 -4
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +81 -31
- package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
- package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
- package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
- package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
- package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
- package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
- package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
- package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
- package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
- package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +16 -5
- package/ReactCommon/react/renderer/core/Props.h +11 -4
- package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
- package/ReactCommon/react/renderer/core/RawProps.h +10 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
- package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
- package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/RawValue.h +315 -22
- package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
- package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
- package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
- package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
- package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
- package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
- package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
- package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
- package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
- package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
- package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
- package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
- package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
- package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
- package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
- package/ReactCommon/yoga/yoga/YGValue.h +3 -0
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
- package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
- package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
- package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
- package/ReactCommon/yoga/yoga/node/Node.h +5 -5
- package/ReactCommon/yoga/yoga/style/Style.h +14 -12
- package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
- package/gradle/libs.versions.toml +6 -2
- package/index.js +5 -0
- package/package.json +12 -13
- package/react-native.config.js +6 -0
- package/scripts/cocoapods/codegen_utils.rb +4 -4
- package/scripts/cocoapods/new_architecture.rb +3 -3
- package/scripts/cocoapods/utils.rb +4 -3
- package/scripts/codegen/generate-artifacts-executor.js +8 -4
- package/scripts/generate-codegen-artifacts.js +6 -1
- package/scripts/react-native-xcode.sh +1 -1
- package/scripts/react_native_pods.rb +3 -3
- package/scripts/xcode/ccache-clang++.sh +1 -1
- package/scripts/xcode/ccache-clang.sh +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/featureflags/README.md +5 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +33 -27
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
- package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
- package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
- package/src/private/specs/modules/NativeFantom.js +37 -0
- package/src/private/utilities/ensureInstance.js +21 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/performance/Performance.js +0 -12
- package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
- package/types/index.d.ts +1 -0
- package/types/public/ReactNativeTVTypes.d.ts +49 -51
- package/Libraries/HeapCapture/HeapCapture.js +0 -29
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
- package/Libraries/Performance/SamplingProfiler.js +0 -39
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
- package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
- package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
- package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
- package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
- package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
- package/ReactCommon/React-nativeconfig.podspec +0 -36
- package/ReactCommon/cxxreact/tests/main.cpp +0 -15
- package/ReactCommon/react/config/CMakeLists.txt +0 -20
- package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
- package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
- package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
- package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
/** Interface used to intercept events dispatched by [EventDispatcher] */
|
|
11
|
+
public fun interface EventDispatcherListener {
|
|
12
|
+
/**
|
|
13
|
+
* Called on every time an event is dispatched using [EventDispatcher.dispatchEvent]. Will be
|
|
14
|
+
* called from the same thread that the event is being dispatched from.
|
|
15
|
+
*
|
|
16
|
+
* @param event Event that was dispatched
|
|
17
|
+
*/
|
|
18
|
+
public fun onEventDispatch(event: Event<*>)
|
|
19
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An interface that can be implemented by a [com.facebook.react.bridge.ReactContext] to provide a
|
|
12
|
+
* first-class API for accessing the [EventDispatcher] from the
|
|
13
|
+
* [com.facebook.react.bridge.UIManager].
|
|
14
|
+
*/
|
|
15
|
+
public fun interface EventDispatcherProvider {
|
|
16
|
+
/**
|
|
17
|
+
* This should always return an [EventDispatcher], even if the instance doesn't exist; in that
|
|
18
|
+
* case it should return the empty [BlackHoleEventDispatcher].
|
|
19
|
+
*
|
|
20
|
+
* @return An [EventDispatcher] to emit events to JS.
|
|
21
|
+
*/
|
|
22
|
+
public fun getEventDispatcher(): EventDispatcher
|
|
23
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
import android.os.Handler
|
|
11
|
+
import android.view.Choreographer
|
|
12
|
+
import com.facebook.react.bridge.LifecycleEventListener
|
|
13
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
14
|
+
import com.facebook.react.bridge.ReactNoCrashSoftException
|
|
15
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger
|
|
16
|
+
import com.facebook.react.bridge.UIManager
|
|
17
|
+
import com.facebook.react.bridge.UiThreadUtil
|
|
18
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
19
|
+
import com.facebook.react.modules.core.ReactChoreographer
|
|
20
|
+
import com.facebook.react.uimanager.UIManagerHelper
|
|
21
|
+
import com.facebook.react.uimanager.common.UIManagerType
|
|
22
|
+
import com.facebook.systrace.Systrace
|
|
23
|
+
import java.util.concurrent.CopyOnWriteArrayList
|
|
24
|
+
import kotlin.concurrent.Volatile
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A singleton class that overrides [EventDispatcher] with no-op methods, to be used by callers that
|
|
28
|
+
* expect an EventDispatcher when the instance doesn't exist.
|
|
29
|
+
*/
|
|
30
|
+
public open class FabricEventDispatcher(reactContext: ReactApplicationContext) :
|
|
31
|
+
EventDispatcher, LifecycleEventListener {
|
|
32
|
+
private val reactEventEmitter: ReactEventEmitter
|
|
33
|
+
private val reactContext: ReactApplicationContext = reactContext
|
|
34
|
+
private val listeners = CopyOnWriteArrayList<EventDispatcherListener>()
|
|
35
|
+
private val postEventDispatchListeners = CopyOnWriteArrayList<BatchEventDispatchedListener>()
|
|
36
|
+
private val currentFrameCallback: ScheduleDispatchFrameCallback = ScheduleDispatchFrameCallback()
|
|
37
|
+
|
|
38
|
+
private var isDispatchScheduled = false
|
|
39
|
+
private val dispatchEventsRunnable = Runnable {
|
|
40
|
+
isDispatchScheduled = false
|
|
41
|
+
Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "BatchEventDispatchedListeners")
|
|
42
|
+
try {
|
|
43
|
+
for (listener in postEventDispatchListeners) {
|
|
44
|
+
listener.onBatchEventDispatched()
|
|
45
|
+
}
|
|
46
|
+
} finally {
|
|
47
|
+
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
init {
|
|
52
|
+
this.reactContext.addLifecycleEventListener(this)
|
|
53
|
+
reactEventEmitter = ReactEventEmitter(this.reactContext)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public override fun dispatchEvent(event: Event<*>) {
|
|
57
|
+
for (listener in listeners) {
|
|
58
|
+
listener.onEventDispatch(event)
|
|
59
|
+
}
|
|
60
|
+
if (event.experimental_isSynchronous()) {
|
|
61
|
+
dispatchSynchronous(event)
|
|
62
|
+
} else {
|
|
63
|
+
event.dispatchModern(reactEventEmitter)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
event.dispose()
|
|
67
|
+
scheduleDispatchOfBatchedEvents()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
private fun dispatchSynchronous(event: Event<*>) {
|
|
71
|
+
Systrace.beginSection(
|
|
72
|
+
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE,
|
|
73
|
+
"FabricEventDispatcher.dispatchSynchronous('" + event.eventName + "')")
|
|
74
|
+
try {
|
|
75
|
+
val fabricUIManager: UIManager? =
|
|
76
|
+
UIManagerHelper.getUIManager(reactContext, UIManagerType.FABRIC)
|
|
77
|
+
@Suppress("DEPRECATION")
|
|
78
|
+
if (fabricUIManager is SynchronousEventReceiver) {
|
|
79
|
+
@Suppress("DEPRECATION")
|
|
80
|
+
(fabricUIManager as SynchronousEventReceiver).receiveEvent(
|
|
81
|
+
event.surfaceId,
|
|
82
|
+
event.viewTag,
|
|
83
|
+
event.eventName,
|
|
84
|
+
event.canCoalesce(),
|
|
85
|
+
event.eventData,
|
|
86
|
+
event.eventCategory,
|
|
87
|
+
true)
|
|
88
|
+
} else {
|
|
89
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
90
|
+
"FabricEventDispatcher",
|
|
91
|
+
ReactNoCrashSoftException(
|
|
92
|
+
"Fabric UIManager expected to implement SynchronousEventReceiver."))
|
|
93
|
+
}
|
|
94
|
+
} finally {
|
|
95
|
+
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public override fun dispatchAllEvents() {
|
|
100
|
+
scheduleDispatchOfBatchedEvents()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private fun scheduleDispatchOfBatchedEvents() {
|
|
104
|
+
if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
|
|
105
|
+
if (!isDispatchScheduled) {
|
|
106
|
+
isDispatchScheduled = true
|
|
107
|
+
uiThreadHandler.postAtFrontOfQueue(dispatchEventsRunnable)
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
currentFrameCallback.maybeScheduleDispatchOfBatchedEvents()
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** Add a listener to this EventDispatcher. */
|
|
115
|
+
public override fun addListener(listener: EventDispatcherListener) {
|
|
116
|
+
listeners.add(listener)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** Remove a listener from this EventDispatcher. */
|
|
120
|
+
public override fun removeListener(listener: EventDispatcherListener) {
|
|
121
|
+
listeners.remove(listener)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
public override fun addBatchEventDispatchedListener(listener: BatchEventDispatchedListener) {
|
|
125
|
+
postEventDispatchListeners.add(listener)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
public override fun removeBatchEventDispatchedListener(listener: BatchEventDispatchedListener) {
|
|
129
|
+
postEventDispatchListeners.remove(listener)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
public override fun onHostResume() {
|
|
133
|
+
scheduleDispatchOfBatchedEvents()
|
|
134
|
+
if (!ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
|
|
135
|
+
currentFrameCallback.resume()
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
public override fun onHostPause() {
|
|
140
|
+
cancelDispatchOfBatchedEvents()
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
public override fun onHostDestroy() {
|
|
144
|
+
cancelDispatchOfBatchedEvents()
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
public override fun onCatalystInstanceDestroyed() {
|
|
148
|
+
UiThreadUtil.runOnUiThread(Runnable { cancelDispatchOfBatchedEvents() })
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private fun cancelDispatchOfBatchedEvents() {
|
|
152
|
+
UiThreadUtil.assertOnUiThread()
|
|
153
|
+
if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
|
|
154
|
+
isDispatchScheduled = false
|
|
155
|
+
uiThreadHandler.removeCallbacks(dispatchEventsRunnable)
|
|
156
|
+
} else {
|
|
157
|
+
currentFrameCallback.stop()
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@Deprecated("Use the modern version with RCTModernEventEmitter")
|
|
162
|
+
@Suppress("DEPRECATION")
|
|
163
|
+
public override fun registerEventEmitter(
|
|
164
|
+
@UIManagerType uiManagerType: Int,
|
|
165
|
+
eventEmitter: RCTEventEmitter
|
|
166
|
+
) {
|
|
167
|
+
reactEventEmitter.register(uiManagerType, eventEmitter)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
public override fun registerEventEmitter(
|
|
171
|
+
@UIManagerType uiManagerType: Int,
|
|
172
|
+
eventEmitter: RCTModernEventEmitter
|
|
173
|
+
) {
|
|
174
|
+
reactEventEmitter.register(uiManagerType, eventEmitter)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
public override fun unregisterEventEmitter(@UIManagerType uiManagerType: Int) {
|
|
178
|
+
reactEventEmitter.unregister(uiManagerType)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
private inner class ScheduleDispatchFrameCallback : Choreographer.FrameCallback {
|
|
182
|
+
@Volatile private var isFrameCallbackDispatchScheduled = false
|
|
183
|
+
private var shouldStop = false
|
|
184
|
+
|
|
185
|
+
override fun doFrame(frameTimeNanos: Long) {
|
|
186
|
+
UiThreadUtil.assertOnUiThread()
|
|
187
|
+
|
|
188
|
+
if (shouldStop) {
|
|
189
|
+
isFrameCallbackDispatchScheduled = false
|
|
190
|
+
} else {
|
|
191
|
+
dispatchBatchedEvents()
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "BatchEventDispatchedListeners")
|
|
195
|
+
try {
|
|
196
|
+
for (listener in postEventDispatchListeners) {
|
|
197
|
+
listener.onBatchEventDispatched()
|
|
198
|
+
}
|
|
199
|
+
} finally {
|
|
200
|
+
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
public fun stop() {
|
|
205
|
+
shouldStop = true
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
public fun resume() {
|
|
209
|
+
shouldStop = false
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public fun maybeDispatchBatchedEvents() {
|
|
213
|
+
if (!isFrameCallbackDispatchScheduled) {
|
|
214
|
+
isFrameCallbackDispatchScheduled = true
|
|
215
|
+
dispatchBatchedEvents()
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
private fun dispatchBatchedEvents() {
|
|
220
|
+
ReactChoreographer.getInstance()
|
|
221
|
+
.postFrameCallback(ReactChoreographer.CallbackType.TIMERS_EVENTS, currentFrameCallback)
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
public fun maybeScheduleDispatchOfBatchedEvents() {
|
|
225
|
+
if (isFrameCallbackDispatchScheduled) {
|
|
226
|
+
return
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// We should only hit this slow path when we receive events while the host activity is paused.
|
|
230
|
+
if (reactContext.isOnUiQueueThread()) {
|
|
231
|
+
maybeDispatchBatchedEvents()
|
|
232
|
+
} else {
|
|
233
|
+
reactContext.runOnUiQueueThread(Runnable { maybeDispatchBatchedEvents() })
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
private companion object {
|
|
239
|
+
private val uiThreadHandler: Handler = UiThreadUtil.getUiThreadHandler()
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
import android.view.InputDevice
|
|
11
|
+
import android.view.MotionEvent
|
|
12
|
+
import android.view.View
|
|
13
|
+
import com.facebook.react.R
|
|
14
|
+
|
|
15
|
+
/** Class responsible for generating catalyst touch events based on android [MotionEvent]. */
|
|
16
|
+
public object PointerEventHelper {
|
|
17
|
+
public const val POINTER_TYPE_TOUCH: String = "touch"
|
|
18
|
+
public const val POINTER_TYPE_PEN: String = "pen"
|
|
19
|
+
public const val POINTER_TYPE_MOUSE: String = "mouse"
|
|
20
|
+
public const val POINTER_TYPE_UNKNOWN: String = ""
|
|
21
|
+
internal const val X_FLAG_SUPPORTS_HOVER = 0x01000000
|
|
22
|
+
|
|
23
|
+
public const val POINTER_CANCEL: String = "topPointerCancel"
|
|
24
|
+
public const val POINTER_DOWN: String = "topPointerDown"
|
|
25
|
+
public const val POINTER_ENTER: String = "topPointerEnter"
|
|
26
|
+
public const val POINTER_LEAVE: String = "topPointerLeave"
|
|
27
|
+
public const val POINTER_MOVE: String = "topPointerMove"
|
|
28
|
+
public const val POINTER_UP: String = "topPointerUp"
|
|
29
|
+
public const val POINTER_OVER: String = "topPointerOver"
|
|
30
|
+
public const val POINTER_OUT: String = "topPointerOut"
|
|
31
|
+
public const val CLICK: String = "topClick"
|
|
32
|
+
|
|
33
|
+
public enum class EVENT {
|
|
34
|
+
CANCEL,
|
|
35
|
+
CANCEL_CAPTURE,
|
|
36
|
+
CLICK,
|
|
37
|
+
CLICK_CAPTURE,
|
|
38
|
+
DOWN,
|
|
39
|
+
DOWN_CAPTURE,
|
|
40
|
+
ENTER,
|
|
41
|
+
ENTER_CAPTURE,
|
|
42
|
+
LEAVE,
|
|
43
|
+
LEAVE_CAPTURE,
|
|
44
|
+
MOVE,
|
|
45
|
+
MOVE_CAPTURE,
|
|
46
|
+
UP,
|
|
47
|
+
UP_CAPTURE,
|
|
48
|
+
OUT,
|
|
49
|
+
OUT_CAPTURE,
|
|
50
|
+
OVER,
|
|
51
|
+
OVER_CAPTURE,
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// https://w3c.github.io/pointerevents/#the-buttons-property
|
|
55
|
+
@JvmStatic
|
|
56
|
+
public fun getButtons(eventName: String?, pointerType: String, buttonState: Int): Int {
|
|
57
|
+
if (isExitEvent(eventName)) {
|
|
58
|
+
return 0
|
|
59
|
+
}
|
|
60
|
+
if (POINTER_TYPE_TOUCH == pointerType) {
|
|
61
|
+
return 1
|
|
62
|
+
}
|
|
63
|
+
return buttonState
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// https://w3c.github.io/pointerevents/#the-button-property
|
|
67
|
+
@JvmStatic
|
|
68
|
+
public fun getButtonChange(
|
|
69
|
+
pointerType: String,
|
|
70
|
+
lastButtonState: Int,
|
|
71
|
+
currentButtonState: Int
|
|
72
|
+
): Int {
|
|
73
|
+
// Always return 0 for touch
|
|
74
|
+
if (POINTER_TYPE_TOUCH == pointerType) {
|
|
75
|
+
return 0
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
val changedMask = currentButtonState xor lastButtonState
|
|
79
|
+
if (changedMask == 0) {
|
|
80
|
+
return -1
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return when (changedMask) {
|
|
84
|
+
MotionEvent.BUTTON_PRIMARY -> 0
|
|
85
|
+
MotionEvent.BUTTON_TERTIARY -> 1
|
|
86
|
+
MotionEvent.BUTTON_SECONDARY -> 2
|
|
87
|
+
MotionEvent.BUTTON_BACK -> 3
|
|
88
|
+
MotionEvent.BUTTON_FORWARD -> 4
|
|
89
|
+
else -> -1
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@JvmStatic
|
|
94
|
+
public fun getW3CPointerType(toolType: Int): String {
|
|
95
|
+
// https://www.w3.org/TR/pointerevents3/#dom-pointerevent-pointertype
|
|
96
|
+
return when (toolType) {
|
|
97
|
+
MotionEvent.TOOL_TYPE_FINGER -> POINTER_TYPE_TOUCH
|
|
98
|
+
MotionEvent.TOOL_TYPE_STYLUS -> POINTER_TYPE_PEN
|
|
99
|
+
MotionEvent.TOOL_TYPE_MOUSE -> POINTER_TYPE_MOUSE
|
|
100
|
+
else -> POINTER_TYPE_UNKNOWN
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@JvmStatic
|
|
105
|
+
public fun isListening(view: View?, event: EVENT): Boolean {
|
|
106
|
+
if (view == null) {
|
|
107
|
+
return true
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return when (event) {
|
|
111
|
+
EVENT.DOWN,
|
|
112
|
+
EVENT.DOWN_CAPTURE,
|
|
113
|
+
EVENT.UP,
|
|
114
|
+
EVENT.UP_CAPTURE,
|
|
115
|
+
EVENT.CANCEL,
|
|
116
|
+
EVENT.CANCEL_CAPTURE,
|
|
117
|
+
EVENT.CLICK,
|
|
118
|
+
EVENT.CLICK_CAPTURE -> true
|
|
119
|
+
else -> {
|
|
120
|
+
val pointerEvents = view.getTag(R.id.pointer_events) as? Int
|
|
121
|
+
(pointerEvents != null) && (pointerEvents and (1 shl event.ordinal)) != 0
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@JvmStatic
|
|
127
|
+
public fun getEventCategory(pointerEventType: String?): Int {
|
|
128
|
+
if (pointerEventType == null) {
|
|
129
|
+
return EventCategoryDef.UNSPECIFIED
|
|
130
|
+
}
|
|
131
|
+
return when (pointerEventType) {
|
|
132
|
+
POINTER_DOWN,
|
|
133
|
+
POINTER_CANCEL,
|
|
134
|
+
POINTER_UP -> EventCategoryDef.DISCRETE
|
|
135
|
+
POINTER_MOVE,
|
|
136
|
+
POINTER_ENTER,
|
|
137
|
+
POINTER_LEAVE,
|
|
138
|
+
POINTER_OVER,
|
|
139
|
+
POINTER_OUT -> EventCategoryDef.CONTINUOUS
|
|
140
|
+
else -> EventCategoryDef.UNSPECIFIED
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
public fun supportsHover(motionEvent: MotionEvent): Boolean {
|
|
145
|
+
// A flag has been set on the MotionEvent to indicate it supports hover
|
|
146
|
+
// See D36958947 on justifications for this.
|
|
147
|
+
// TODO(luwe): Leverage previous events to determine if MotionEvent
|
|
148
|
+
// is from an input device that supports hover
|
|
149
|
+
val supportsHoverFlag = (motionEvent.flags and X_FLAG_SUPPORTS_HOVER) != 0
|
|
150
|
+
if (supportsHoverFlag) {
|
|
151
|
+
return true
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return motionEvent.isFromSource(InputDevice.SOURCE_MOUSE)
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
public fun isExitEvent(eventName: String?): Boolean {
|
|
158
|
+
return when (eventName) {
|
|
159
|
+
POINTER_UP,
|
|
160
|
+
POINTER_LEAVE,
|
|
161
|
+
POINTER_OUT -> true
|
|
162
|
+
else -> false
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// https://w3c.github.io/pointerevents/#dom-pointerevent-pressure
|
|
167
|
+
@JvmStatic
|
|
168
|
+
public fun getPressure(buttonState: Int, eventName: String?): Double {
|
|
169
|
+
if (isExitEvent(eventName)) {
|
|
170
|
+
return 0.0
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Assume we don't support pressure on our platform for now
|
|
174
|
+
// For hardware and platforms that do not support pressure,
|
|
175
|
+
// the value MUST be 0.5 when in the active buttons state
|
|
176
|
+
// and 0 otherwise.
|
|
177
|
+
val inActiveButtonState = buttonState != 0
|
|
178
|
+
return if (inActiveButtonState) 0.5 else 0.0
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@JvmStatic
|
|
182
|
+
public fun isBubblingEvent(eventName: String?): Boolean {
|
|
183
|
+
return when (eventName) {
|
|
184
|
+
POINTER_UP,
|
|
185
|
+
POINTER_DOWN,
|
|
186
|
+
POINTER_OVER,
|
|
187
|
+
POINTER_OUT,
|
|
188
|
+
POINTER_MOVE,
|
|
189
|
+
POINTER_CANCEL -> true
|
|
190
|
+
else -> false
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
import com.facebook.proguard.annotations.DoNotStripAny
|
|
11
|
+
import com.facebook.react.bridge.JavaScriptModule
|
|
12
|
+
import com.facebook.react.bridge.WritableArray
|
|
13
|
+
import com.facebook.react.bridge.WritableMap
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Paper JS interface to emit events from native to JS.
|
|
17
|
+
*
|
|
18
|
+
* Deprecated in favor of [RCTModernEventEmitter], which works with both the old and new renderer.
|
|
19
|
+
*/
|
|
20
|
+
@DoNotStripAny
|
|
21
|
+
@Deprecated("Use [RCTModernEventEmitter] instead")
|
|
22
|
+
public interface RCTEventEmitter : JavaScriptModule {
|
|
23
|
+
/**
|
|
24
|
+
* @param targetTag react tag of the view that receives the event
|
|
25
|
+
* @param eventName name of event
|
|
26
|
+
* @param params event params
|
|
27
|
+
*/
|
|
28
|
+
@Deprecated("Use [RCTModernEventEmitter.receiveEvent] instead")
|
|
29
|
+
public fun receiveEvent(targetTag: Int, eventName: String, params: WritableMap?)
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Receive and process touches
|
|
33
|
+
*
|
|
34
|
+
* @param eventName JS event name
|
|
35
|
+
* @param touches active pointers data
|
|
36
|
+
* @param changedIndices indices of changed pointers
|
|
37
|
+
*/
|
|
38
|
+
@Deprecated("Dispatch the TouchEvent using [EventDispatcher] instead")
|
|
39
|
+
public fun receiveTouches(
|
|
40
|
+
eventName: String,
|
|
41
|
+
touches: WritableArray,
|
|
42
|
+
changedIndices: WritableArray
|
|
43
|
+
)
|
|
44
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events
|
|
9
|
+
|
|
10
|
+
import com.facebook.react.bridge.WritableMap
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This is a transitional replacement for [RCTEventEmitter] that works with Fabric and non-Fabric
|
|
14
|
+
* renderers. [RCTEventEmitter] works with Fabric as well, but there are negative perf implications
|
|
15
|
+
* and it should be avoided.
|
|
16
|
+
*
|
|
17
|
+
* This interface will *also* be deleted in the distant future and be replaced with a new interface
|
|
18
|
+
* that doesn't need the old `receiveEvent` method at all. But for the foreseeable future, this is
|
|
19
|
+
* the recommended interface to use for EventEmitters.
|
|
20
|
+
*/
|
|
21
|
+
@Suppress("DEPRECATION")
|
|
22
|
+
public interface RCTModernEventEmitter : RCTEventEmitter {
|
|
23
|
+
public fun receiveEvent(surfaceId: Int, targetTag: Int, eventName: String, params: WritableMap?)
|
|
24
|
+
|
|
25
|
+
public fun receiveEvent(
|
|
26
|
+
surfaceId: Int,
|
|
27
|
+
targetTag: Int,
|
|
28
|
+
eventName: String,
|
|
29
|
+
canCoalesceEvent: Boolean,
|
|
30
|
+
customCoalesceKey: Int,
|
|
31
|
+
params: WritableMap?,
|
|
32
|
+
@EventCategoryDef category: Int
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
@Deprecated("Dispatch the TouchEvent using [EventDispatcher] instead")
|
|
36
|
+
public fun receiveTouches(event: TouchEvent)
|
|
37
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// RCTEventEmitter usage throughout:
|
|
9
|
+
@file:Suppress("DEPRECATION")
|
|
10
|
+
|
|
11
|
+
package com.facebook.react.uimanager.events
|
|
12
|
+
|
|
13
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
14
|
+
import com.facebook.react.bridge.ReactNoCrashSoftException
|
|
15
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger.logSoftException
|
|
16
|
+
import com.facebook.react.bridge.WritableArray
|
|
17
|
+
import com.facebook.react.bridge.WritableMap
|
|
18
|
+
import com.facebook.react.uimanager.common.UIManagerType
|
|
19
|
+
import com.facebook.react.uimanager.common.ViewUtil.getUIManagerType
|
|
20
|
+
|
|
21
|
+
internal class ReactEventEmitter(private val reactContext: ReactApplicationContext) :
|
|
22
|
+
RCTModernEventEmitter {
|
|
23
|
+
/** Corresponds to [com.facebook.react.fabric.events.FabricEventEmitter] */
|
|
24
|
+
private var fabricEventEmitter: RCTModernEventEmitter? = null
|
|
25
|
+
|
|
26
|
+
/** Corresponds to (Paper) EventEmitter, which is a JS interface */
|
|
27
|
+
private var defaultEventEmitter: RCTEventEmitter? = null
|
|
28
|
+
|
|
29
|
+
fun register(@UIManagerType uiManagerType: Int, eventEmitter: RCTModernEventEmitter?) {
|
|
30
|
+
check(uiManagerType == UIManagerType.FABRIC)
|
|
31
|
+
fabricEventEmitter = eventEmitter
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fun register(@UIManagerType uiManagerType: Int, eventEmitter: RCTEventEmitter?) {
|
|
35
|
+
check(uiManagerType == UIManagerType.DEFAULT)
|
|
36
|
+
defaultEventEmitter = eventEmitter
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
fun unregister(@UIManagerType uiManagerType: Int) {
|
|
40
|
+
if (uiManagerType == UIManagerType.DEFAULT) {
|
|
41
|
+
defaultEventEmitter = null
|
|
42
|
+
} else {
|
|
43
|
+
fabricEventEmitter = null
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Deprecated("Please use RCTModernEventEmitter")
|
|
48
|
+
override fun receiveEvent(targetTag: Int, eventName: String, params: WritableMap?) {
|
|
49
|
+
receiveEvent(-1, targetTag, eventName, params)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
override fun receiveEvent(
|
|
53
|
+
surfaceId: Int,
|
|
54
|
+
targetTag: Int,
|
|
55
|
+
eventName: String,
|
|
56
|
+
params: WritableMap?
|
|
57
|
+
) {
|
|
58
|
+
// We assume this event can't be coalesced. `customCoalesceKey` has no meaning in Fabric.
|
|
59
|
+
receiveEvent(surfaceId, targetTag, eventName, false, 0, params, EventCategoryDef.UNSPECIFIED)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Deprecated("Please use RCTModernEventEmitter")
|
|
63
|
+
override fun receiveTouches(
|
|
64
|
+
eventName: String,
|
|
65
|
+
touches: WritableArray,
|
|
66
|
+
changedIndices: WritableArray
|
|
67
|
+
) {
|
|
68
|
+
/*
|
|
69
|
+
* This method should be unused by default processing pipeline, but leaving it here to make sure
|
|
70
|
+
* that any custom code using it in legacy renderer is compatible
|
|
71
|
+
*/
|
|
72
|
+
check(touches.size() > 0)
|
|
73
|
+
|
|
74
|
+
val reactTag = touches.getMap(0)?.getInt(TouchesHelper.TARGET_KEY) ?: 0
|
|
75
|
+
@UIManagerType val uiManagerType = getUIManagerType(reactTag)
|
|
76
|
+
if (uiManagerType == UIManagerType.DEFAULT) {
|
|
77
|
+
ensureDefaultEventEmitter()?.receiveTouches(eventName, touches, changedIndices)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@Deprecated("Please use RCTModernEventEmitter")
|
|
82
|
+
override fun receiveTouches(event: TouchEvent) {
|
|
83
|
+
@UIManagerType val uiManagerType = getUIManagerType(event.viewTag, event.surfaceId)
|
|
84
|
+
if (uiManagerType == UIManagerType.FABRIC) {
|
|
85
|
+
fabricEventEmitter?.let { TouchesHelper.sendTouchEvent(it, event) }
|
|
86
|
+
} else if (uiManagerType == UIManagerType.DEFAULT) {
|
|
87
|
+
ensureDefaultEventEmitter()?.let { TouchesHelper.sendTouchesLegacy(it, event) }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Get default/Paper event emitter. Callers should have verified that this is not an event for a
|
|
93
|
+
* View managed by Fabric
|
|
94
|
+
*/
|
|
95
|
+
private fun ensureDefaultEventEmitter(): RCTEventEmitter? {
|
|
96
|
+
if (defaultEventEmitter == null) {
|
|
97
|
+
if (reactContext.hasActiveReactInstance()) {
|
|
98
|
+
defaultEventEmitter = reactContext.getJSModule(RCTEventEmitter::class.java)
|
|
99
|
+
} else {
|
|
100
|
+
logSoftException(
|
|
101
|
+
TAG,
|
|
102
|
+
ReactNoCrashSoftException(
|
|
103
|
+
"Cannot get RCTEventEmitter from Context, no active Catalyst instance!"))
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return defaultEventEmitter
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
override fun receiveEvent(
|
|
110
|
+
surfaceId: Int,
|
|
111
|
+
targetTag: Int,
|
|
112
|
+
eventName: String,
|
|
113
|
+
canCoalesceEvent: Boolean,
|
|
114
|
+
customCoalesceKey: Int,
|
|
115
|
+
params: WritableMap?,
|
|
116
|
+
@EventCategoryDef category: Int
|
|
117
|
+
) {
|
|
118
|
+
@UIManagerType val uiManagerType = getUIManagerType(targetTag, surfaceId)
|
|
119
|
+
if (uiManagerType == UIManagerType.FABRIC) {
|
|
120
|
+
fabricEventEmitter?.receiveEvent(
|
|
121
|
+
surfaceId, targetTag, eventName, canCoalesceEvent, customCoalesceKey, params, category)
|
|
122
|
+
} else if (uiManagerType == UIManagerType.DEFAULT) {
|
|
123
|
+
ensureDefaultEventEmitter()?.receiveEvent(targetTag, eventName, params)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
companion object {
|
|
128
|
+
private const val TAG = "ReactEventEmitter"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -126,7 +126,7 @@ public class TouchEvent private constructor() : Event<TouchEvent>() {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
public override fun getEventCategory(): Int {
|
|
130
130
|
val type = touchEventType ?: return EventCategoryDef.UNSPECIFIED
|
|
131
131
|
return when (type) {
|
|
132
132
|
TouchEventType.START -> EventCategoryDef.CONTINUOUS_START
|