react-native-tvos 0.77.0-0rc5 → 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/TV/TVFocusGuideView.js +0 -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 +8 -7
- package/Libraries/Components/View/ViewPropTypes.js +0 -9
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -16
- package/Libraries/Core/setUpDeveloperTools.js +2 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
- package/Libraries/Image/AssetSourceResolver.js +11 -0
- package/Libraries/Image/RCTImageLoader.mm +9 -1
- 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/Pressability/Pressability.js +2 -2
- 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 +26 -1
- 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/Libraries/Utilities/HMRClient.js +0 -28
- package/Libraries/Utilities/HMRClientProdShim.js +0 -1
- package/README-core.md +2 -2
- package/React/Base/RCTConvert.mm +3 -1
- 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 +107 -34
- 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 +12 -4
- 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/RCTTVView.m +5 -2
- package/React/Views/RCTView.m +6 -2
- package/React/Views/RCTViewManager.m +0 -7
- package/React/Views/ScrollView/RCTScrollView.m +109 -45
- package/React-Core.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +123 -227
- package/ReactAndroid/build.gradle.kts +8 -13
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
- package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
- package/ReactAndroid/gradle.properties +3 -3
- 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/ReactActivity.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
- 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/BaseJavaModule.java +1 -1
- 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 +39 -8
- 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/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 +56 -3
- 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/TextAttributeProps.java +16 -2
- 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 +91 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +14 -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/RCTInteropTurboModule.mm +13 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
- 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 +85 -29
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
- package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
- 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/components/text/BaseTextProps.cpp +12 -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/TextMeasureCache.h +2 -3
- 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 +11 -5
- 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 +17 -15
- 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/hermes-utils.rb +2 -2
- 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 +32 -26
- 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
|
@@ -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
|
|
@@ -0,0 +1,77 @@
|
|
|
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.util.SparseIntArray
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Utility for determining coalescing keys for TouchEvents. To preserve proper ordering of events,
|
|
14
|
+
* move events should only be coalesced if there has been no up/down event between them (this
|
|
15
|
+
* basically only applies to multitouch since for single touches an up would signal the end of the
|
|
16
|
+
* gesture). To illustrate to kind of coalescing we want, imagine we are coalescing the following
|
|
17
|
+
* touch stream:
|
|
18
|
+
*
|
|
19
|
+
* (U = finger up, D = finger down, M = move) D MMMMM D MMMMMMMMMMMMMM U MMMMM D MMMMMM U U
|
|
20
|
+
*
|
|
21
|
+
* We want to make sure to coalesce this as
|
|
22
|
+
*
|
|
23
|
+
* D M D M U M D U U
|
|
24
|
+
*
|
|
25
|
+
* and *not*
|
|
26
|
+
*
|
|
27
|
+
* D D U M D U U
|
|
28
|
+
*
|
|
29
|
+
* To accomplish this, this class provides a way to initialize a coalescing key for a gesture and
|
|
30
|
+
* then increment it for every pointer up/down that occurs during that single gesture.
|
|
31
|
+
*
|
|
32
|
+
* We identify a single gesture based on [android.view.MotionEvent.getDownTime] which will stay
|
|
33
|
+
* constant for a given set of related touches on a single view.
|
|
34
|
+
*
|
|
35
|
+
* NB: even though down time is a long, we cast as an int using the least significant bits as the
|
|
36
|
+
* identifier. In practice, we will not be coalescing over a time range where the most significant
|
|
37
|
+
* bits of that time range matter. This would require a gesture that lasts Integer.MAX_VALUE * 2 ms,
|
|
38
|
+
* or ~48 days.
|
|
39
|
+
*
|
|
40
|
+
* NB: we assume two gestures cannot begin at the same time.
|
|
41
|
+
*
|
|
42
|
+
* NB: this class should only be used from the UI thread.
|
|
43
|
+
*/
|
|
44
|
+
public class TouchEventCoalescingKeyHelper {
|
|
45
|
+
private val downTimeToCoalescingKey = SparseIntArray()
|
|
46
|
+
|
|
47
|
+
/** Starts tracking a new coalescing key corresponding to the gesture with this down time. */
|
|
48
|
+
public fun addCoalescingKey(downTime: Long) {
|
|
49
|
+
downTimeToCoalescingKey.put(downTime.toInt(), 0)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Increments the coalescing key corresponding to the gesture with this down time. */
|
|
53
|
+
public fun incrementCoalescingKey(downTime: Long) {
|
|
54
|
+
val currentValue = downTimeToCoalescingKey[downTime.toInt(), -1]
|
|
55
|
+
if (currentValue == -1) {
|
|
56
|
+
throw RuntimeException("Tried to increment non-existent cookie")
|
|
57
|
+
}
|
|
58
|
+
downTimeToCoalescingKey.put(downTime.toInt(), currentValue + 1)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Gets the coalescing key corresponding to the gesture with this down time. */
|
|
62
|
+
public fun getCoalescingKey(downTime: Long): Short {
|
|
63
|
+
val currentValue = downTimeToCoalescingKey[downTime.toInt(), -1]
|
|
64
|
+
if (currentValue == -1) {
|
|
65
|
+
throw RuntimeException("Tried to get non-existent cookie")
|
|
66
|
+
}
|
|
67
|
+
return ((0xffff and currentValue).toShort())
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Stops tracking a new coalescing key corresponding to the gesture with this down time. */
|
|
71
|
+
public fun removeCoalescingKey(downTime: Long) {
|
|
72
|
+
downTimeToCoalescingKey.delete(downTime.toInt())
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public fun hasCoalescingKey(downTime: Long): Boolean =
|
|
76
|
+
downTimeToCoalescingKey[downTime.toInt(), -1] != -1
|
|
77
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
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.Arguments
|
|
11
|
+
import com.facebook.react.bridge.WritableArray
|
|
12
|
+
import com.facebook.react.bridge.WritableMap
|
|
13
|
+
import com.facebook.react.uimanager.PixelUtil.pxToDp
|
|
14
|
+
import com.facebook.react.uimanager.events.TouchEventType.Companion.getJSEventName
|
|
15
|
+
import com.facebook.systrace.Systrace
|
|
16
|
+
|
|
17
|
+
/** Class responsible for generating catalyst touch events based on android [MotionEvent]. */
|
|
18
|
+
public object TouchesHelper {
|
|
19
|
+
@JvmField @Deprecated("Not used in New Architecture") public val TARGET_KEY: String = "target"
|
|
20
|
+
|
|
21
|
+
private const val TARGET_SURFACE_KEY = "targetSurface"
|
|
22
|
+
private const val CHANGED_TOUCHES_KEY = "changedTouches"
|
|
23
|
+
private const val TOUCHES_KEY = "touches"
|
|
24
|
+
private const val PAGE_X_KEY = "pageX"
|
|
25
|
+
private const val PAGE_Y_KEY = "pageY"
|
|
26
|
+
private const val TIMESTAMP_KEY = "timestamp"
|
|
27
|
+
private const val POINTER_IDENTIFIER_KEY = "identifier"
|
|
28
|
+
|
|
29
|
+
private const val LOCATION_X_KEY = "locationX"
|
|
30
|
+
private const val LOCATION_Y_KEY = "locationY"
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Creates catalyst pointers array in format that is expected by RCTEventEmitter JS module from
|
|
34
|
+
* given {@param event} instance. This method use {@param reactTarget} parameter to set as a
|
|
35
|
+
* target view id associated with current gesture.
|
|
36
|
+
*/
|
|
37
|
+
private fun createPointersArray(event: TouchEvent): Array<WritableMap?> {
|
|
38
|
+
val motionEvent = event.getMotionEvent()
|
|
39
|
+
val touches = arrayOfNulls<WritableMap>(motionEvent.pointerCount)
|
|
40
|
+
|
|
41
|
+
// Calculate the coordinates for the target view.
|
|
42
|
+
// The MotionEvent contains the X,Y of the touch in the coordinate space of the root view
|
|
43
|
+
// The TouchEvent contains the X,Y of the touch in the coordinate space of the target view
|
|
44
|
+
// Subtracting them allows us to get the coordinates of the target view's top left corner
|
|
45
|
+
// We then use this when computing the view specific touches below
|
|
46
|
+
// Since only one view is actually handling even multiple touches, the values are all relative
|
|
47
|
+
// to this one target view.
|
|
48
|
+
val targetViewCoordinateX = motionEvent.x - event.viewX
|
|
49
|
+
val targetViewCoordinateY = motionEvent.y - event.viewY
|
|
50
|
+
|
|
51
|
+
for (index in 0 until motionEvent.pointerCount) {
|
|
52
|
+
val touch = Arguments.createMap()
|
|
53
|
+
|
|
54
|
+
// pageX,Y values are relative to the RootReactView
|
|
55
|
+
// the motionEvent already contains coordinates in that view
|
|
56
|
+
touch.putDouble(PAGE_X_KEY, motionEvent.getX(index).pxToDp().toDouble())
|
|
57
|
+
touch.putDouble(PAGE_Y_KEY, motionEvent.getY(index).pxToDp().toDouble())
|
|
58
|
+
|
|
59
|
+
// locationX,Y values are relative to the target view
|
|
60
|
+
// To compute the values for the view, we subtract that views location from the event X,Y
|
|
61
|
+
val locationX = motionEvent.getX(index) - targetViewCoordinateX
|
|
62
|
+
val locationY = motionEvent.getY(index) - targetViewCoordinateY
|
|
63
|
+
touch.putDouble(LOCATION_X_KEY, locationX.pxToDp().toDouble())
|
|
64
|
+
touch.putDouble(LOCATION_Y_KEY, locationY.pxToDp().toDouble())
|
|
65
|
+
|
|
66
|
+
touch.putInt(TARGET_SURFACE_KEY, event.surfaceId)
|
|
67
|
+
@Suppress("DEPRECATION") touch.putInt(TARGET_KEY, event.viewTag)
|
|
68
|
+
touch.putDouble(TIMESTAMP_KEY, event.timestampMs.toDouble())
|
|
69
|
+
touch.putDouble(POINTER_IDENTIFIER_KEY, motionEvent.getPointerId(index).toDouble())
|
|
70
|
+
|
|
71
|
+
touches[index] = touch
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return touches
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Generate and send touch event to RCTEventEmitter JS module associated with the given {@param *
|
|
79
|
+
* context} for legacy renderer. Touch event can encode multiple concurrent touches (pointers).
|
|
80
|
+
*
|
|
81
|
+
* @param rctEventEmitter Event emitter used to execute JS module call
|
|
82
|
+
* @param touchEvent native touch event to read pointers count and coordinates from
|
|
83
|
+
*/
|
|
84
|
+
@Suppress("DEPRECATION")
|
|
85
|
+
@JvmStatic
|
|
86
|
+
public fun sendTouchesLegacy(rctEventEmitter: RCTEventEmitter, touchEvent: TouchEvent) {
|
|
87
|
+
val type = touchEvent.getTouchEventType()
|
|
88
|
+
|
|
89
|
+
val pointers = getWritableArray(/* copyObjects */ false, createPointersArray(touchEvent))
|
|
90
|
+
val motionEvent = touchEvent.getMotionEvent()
|
|
91
|
+
|
|
92
|
+
// For START and END events send only index of the pointer that is associated with that event
|
|
93
|
+
// For MOVE and CANCEL events 'changedIndices' array should contain all the pointers indices
|
|
94
|
+
val changedIndices = Arguments.createArray()
|
|
95
|
+
if (type == TouchEventType.MOVE || type == TouchEventType.CANCEL) {
|
|
96
|
+
for (i in 0 until motionEvent.pointerCount) {
|
|
97
|
+
changedIndices.pushInt(i)
|
|
98
|
+
}
|
|
99
|
+
} else if (type == TouchEventType.START || type == TouchEventType.END) {
|
|
100
|
+
changedIndices.pushInt(motionEvent.actionIndex)
|
|
101
|
+
} else {
|
|
102
|
+
throw RuntimeException("Unknown touch type: $type")
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@Suppress("DEPRECATION")
|
|
106
|
+
rctEventEmitter.receiveTouches(getJSEventName(type), pointers, changedIndices)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Generate touch event data to match JS expectations. Combines logic in [sendTouchEvent] and
|
|
111
|
+
* [FabricEventEmitter] to create the same data structure in a more efficient manner.
|
|
112
|
+
*
|
|
113
|
+
* Touches have to be dispatched as separate events for each changed pointer to make JS process
|
|
114
|
+
* them correctly. To avoid allocations, we preprocess touch events in Java world and then convert
|
|
115
|
+
* them to native before dispatch.
|
|
116
|
+
*
|
|
117
|
+
* @param eventEmitter emitter to dispatch event to
|
|
118
|
+
* @param event the touch event to extract data from
|
|
119
|
+
*/
|
|
120
|
+
@JvmStatic
|
|
121
|
+
public fun sendTouchEvent(eventEmitter: RCTModernEventEmitter, event: TouchEvent) {
|
|
122
|
+
Systrace.beginSection(
|
|
123
|
+
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE,
|
|
124
|
+
"TouchesHelper.sentTouchEventModern(" + event.eventName + ")")
|
|
125
|
+
try {
|
|
126
|
+
val type = event.getTouchEventType()
|
|
127
|
+
val motionEvent = event.getMotionEvent()
|
|
128
|
+
var touches = createPointersArray(event)
|
|
129
|
+
var changedTouches: Array<WritableMap?>? = null
|
|
130
|
+
|
|
131
|
+
when (type) {
|
|
132
|
+
TouchEventType.START -> {
|
|
133
|
+
val newPointerIndex = motionEvent.actionIndex
|
|
134
|
+
|
|
135
|
+
changedTouches = arrayOf(touches[newPointerIndex]?.copy())
|
|
136
|
+
}
|
|
137
|
+
TouchEventType.END -> {
|
|
138
|
+
val finishedPointerIndex = motionEvent.actionIndex
|
|
139
|
+
/*
|
|
140
|
+
* Clear finished pointer index for compatibility with W3C touch "end" events, where the
|
|
141
|
+
* active touches don't include the set that has just been "ended".
|
|
142
|
+
*/
|
|
143
|
+
val finishedPointer = touches[finishedPointerIndex]
|
|
144
|
+
touches[finishedPointerIndex] = null
|
|
145
|
+
|
|
146
|
+
changedTouches = arrayOf(finishedPointer)
|
|
147
|
+
}
|
|
148
|
+
TouchEventType.MOVE -> {
|
|
149
|
+
changedTouches = arrayOfNulls(touches.size)
|
|
150
|
+
var i = 0
|
|
151
|
+
while (i < touches.size) {
|
|
152
|
+
changedTouches[i] = touches[i]?.copy()
|
|
153
|
+
i++
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
TouchEventType.CANCEL -> {
|
|
157
|
+
changedTouches = touches
|
|
158
|
+
touches = arrayOfNulls(0)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
for (touchData in changedTouches) {
|
|
163
|
+
val eventData =
|
|
164
|
+
touchData?.let { td ->
|
|
165
|
+
val ed = td.copy()
|
|
166
|
+
val changedTouchesArray = getWritableArray(/* copyObjects */ true, changedTouches)
|
|
167
|
+
val touchesArray = getWritableArray(/* copyObjects */ true, touches)
|
|
168
|
+
ed.putArray(CHANGED_TOUCHES_KEY, changedTouchesArray)
|
|
169
|
+
ed.putArray(TOUCHES_KEY, touchesArray)
|
|
170
|
+
ed
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
eventEmitter.receiveEvent(
|
|
174
|
+
event.surfaceId,
|
|
175
|
+
event.viewTag,
|
|
176
|
+
event.eventName,
|
|
177
|
+
event.canCoalesce(),
|
|
178
|
+
0,
|
|
179
|
+
eventData,
|
|
180
|
+
event.eventCategory)
|
|
181
|
+
}
|
|
182
|
+
} finally {
|
|
183
|
+
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE)
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
private fun getWritableArray(copyObjects: Boolean, objects: Array<WritableMap?>): WritableArray {
|
|
188
|
+
val result = Arguments.createArray()
|
|
189
|
+
for (obj in objects) {
|
|
190
|
+
if (obj != null) {
|
|
191
|
+
result.pushMap(if (copyObjects) obj.copy() else obj)
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return result
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -178,33 +178,32 @@ public data class BorderRadiusStyle(
|
|
|
178
178
|
width: Float,
|
|
179
179
|
height: Float
|
|
180
180
|
): ComputedBorderRadius {
|
|
181
|
-
val
|
|
182
|
-
val
|
|
183
|
-
val
|
|
184
|
-
val
|
|
181
|
+
val leftEdgeRadii = topLeft.vertical + bottomLeft.vertical
|
|
182
|
+
val topEdgeRadii = topLeft.horizontal + topRight.horizontal
|
|
183
|
+
val rightEdgeRadii = topRight.vertical + bottomRight.vertical
|
|
184
|
+
val bottomEdgeRadii = bottomLeft.horizontal + bottomRight.horizontal
|
|
185
185
|
|
|
186
|
-
val
|
|
187
|
-
val
|
|
188
|
-
val
|
|
189
|
-
val
|
|
186
|
+
val leftEdgeRadiiScale = if (leftEdgeRadii > 0) minOf(height / leftEdgeRadii, 1f) else 0f
|
|
187
|
+
val topEdgeRadiiScale = if (topEdgeRadii > 0) minOf(width / topEdgeRadii, 1f) else 0f
|
|
188
|
+
val rightEdgeRadiiScale = if (rightEdgeRadii > 0) minOf(height / rightEdgeRadii, 1f) else 0f
|
|
189
|
+
val bottomEdgeRadiiScale = if (bottomEdgeRadii > 0) minOf(width / bottomEdgeRadii, 1f) else 0f
|
|
190
190
|
|
|
191
191
|
return ComputedBorderRadius(
|
|
192
192
|
topLeft =
|
|
193
193
|
CornerRadii(
|
|
194
|
-
topLeft.horizontal * minOf(
|
|
195
|
-
topLeft.vertical * minOf(
|
|
194
|
+
topLeft.horizontal * minOf(topEdgeRadiiScale, leftEdgeRadiiScale),
|
|
195
|
+
topLeft.vertical * minOf(topEdgeRadiiScale, leftEdgeRadiiScale)),
|
|
196
196
|
topRight =
|
|
197
197
|
CornerRadii(
|
|
198
|
-
topRight.horizontal * minOf(
|
|
199
|
-
topRight.vertical * minOf(
|
|
198
|
+
topRight.horizontal * minOf(rightEdgeRadiiScale, topEdgeRadiiScale),
|
|
199
|
+
topRight.vertical * minOf(rightEdgeRadiiScale, topEdgeRadiiScale)),
|
|
200
200
|
bottomLeft =
|
|
201
201
|
CornerRadii(
|
|
202
|
-
bottomLeft.horizontal * minOf(
|
|
203
|
-
bottomLeft.vertical * minOf(
|
|
202
|
+
bottomLeft.horizontal * minOf(bottomEdgeRadiiScale, leftEdgeRadiiScale),
|
|
203
|
+
bottomLeft.vertical * minOf(bottomEdgeRadiiScale, leftEdgeRadiiScale)),
|
|
204
204
|
bottomRight =
|
|
205
205
|
CornerRadii(
|
|
206
|
-
bottomRight.horizontal * minOf(
|
|
207
|
-
bottomRight.vertical * minOf(
|
|
208
|
-
)
|
|
206
|
+
bottomRight.horizontal * minOf(bottomEdgeRadiiScale, rightEdgeRadiiScale),
|
|
207
|
+
bottomRight.vertical * minOf(bottomEdgeRadiiScale, rightEdgeRadiiScale)))
|
|
209
208
|
}
|
|
210
209
|
}
|
|
@@ -93,6 +93,11 @@ public class ReactModalHostManager :
|
|
|
93
93
|
@ReactProp(name = "identifier")
|
|
94
94
|
public override fun setIdentifier(view: ReactModalHostView, value: Int): Unit = Unit
|
|
95
95
|
|
|
96
|
+
public override fun setTestId(view: ReactModalHostView, value: String?) {
|
|
97
|
+
super.setTestId(view, value)
|
|
98
|
+
view.setDialogRootViewGroupTestId(value)
|
|
99
|
+
}
|
|
100
|
+
|
|
96
101
|
protected override fun addEventEmitters(
|
|
97
102
|
reactContext: ThemedReactContext,
|
|
98
103
|
view: ReactModalHostView
|
|
@@ -25,10 +25,12 @@ import android.view.Window
|
|
|
25
25
|
import android.view.WindowInsetsController
|
|
26
26
|
import android.view.WindowManager
|
|
27
27
|
import android.view.accessibility.AccessibilityEvent
|
|
28
|
+
import android.view.accessibility.AccessibilityNodeInfo
|
|
28
29
|
import android.widget.FrameLayout
|
|
29
30
|
import androidx.annotation.UiThread
|
|
30
31
|
import com.facebook.common.logging.FLog
|
|
31
32
|
import com.facebook.react.R
|
|
33
|
+
import com.facebook.react.ReactActivity
|
|
32
34
|
import com.facebook.react.bridge.GuardedRunnable
|
|
33
35
|
import com.facebook.react.bridge.LifecycleEventListener
|
|
34
36
|
import com.facebook.react.bridge.ReactContext
|
|
@@ -213,6 +215,15 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
213
215
|
|
|
214
216
|
private fun getCurrentActivity(): Activity? = (context as ThemedReactContext).currentActivity
|
|
215
217
|
|
|
218
|
+
private fun isFlagSecureSet(activity: Activity?): Boolean {
|
|
219
|
+
if (activity == null) {
|
|
220
|
+
return false
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
val flags = activity.window.attributes.flags
|
|
224
|
+
return (flags and WindowManager.LayoutParams.FLAG_SECURE) != 0
|
|
225
|
+
}
|
|
226
|
+
|
|
216
227
|
/**
|
|
217
228
|
* showOrUpdate will display the Dialog. It is called by the manager once all properties are set
|
|
218
229
|
* because we need to know all of them before creating the Dialog. It is also smart during updates
|
|
@@ -275,12 +286,31 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
275
286
|
// activity expects to receive those events and react to them, ie. in the case of
|
|
276
287
|
// the dev menu
|
|
277
288
|
val innerCurrentActivity =
|
|
278
|
-
(this@ReactModalHostView.context as ReactContext).currentActivity
|
|
289
|
+
(this@ReactModalHostView.context as ReactContext).currentActivity as? ReactActivity
|
|
279
290
|
if (innerCurrentActivity != null) {
|
|
280
|
-
return innerCurrentActivity.
|
|
291
|
+
return innerCurrentActivity.onDialogKeyUp(keyCode, event)
|
|
281
292
|
}
|
|
282
293
|
}
|
|
283
294
|
}
|
|
295
|
+
|
|
296
|
+
// @see https://github.com/react-native-tvos/react-native-tvos/issues/829
|
|
297
|
+
if (event.action == KeyEvent.ACTION_DOWN) {
|
|
298
|
+
// Allow BACK and ESCAPE keys to propagate to the dialog's activity.
|
|
299
|
+
// Returning false ensures these keys are not consumed here, so they
|
|
300
|
+
// can be processed during the ACTION_UP event where their functionality
|
|
301
|
+
// is handled by JavaScript.
|
|
302
|
+
if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_ESCAPE) {
|
|
303
|
+
return false
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Redirect all other key down events to the current activity.
|
|
307
|
+
val innerCurrentActivity =
|
|
308
|
+
(this@ReactModalHostView.context as ReactContext).currentActivity as? ReactActivity
|
|
309
|
+
if (innerCurrentActivity != null) {
|
|
310
|
+
return innerCurrentActivity.onDialogKeyDown(keyCode, event)
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
284
314
|
return false
|
|
285
315
|
}
|
|
286
316
|
})
|
|
@@ -289,6 +319,11 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
289
319
|
if (hardwareAccelerated) {
|
|
290
320
|
newDialog.window?.addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED)
|
|
291
321
|
}
|
|
322
|
+
val flagSecureSet = isFlagSecureSet(currentActivity)
|
|
323
|
+
if (flagSecureSet) {
|
|
324
|
+
newDialog.window?.setFlags(
|
|
325
|
+
WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
|
|
326
|
+
}
|
|
292
327
|
if (currentActivity?.isFinishing == false) {
|
|
293
328
|
newDialog.show()
|
|
294
329
|
updateSystemAppearance()
|
|
@@ -377,6 +412,15 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
377
412
|
}
|
|
378
413
|
}
|
|
379
414
|
|
|
415
|
+
/**
|
|
416
|
+
* Sets the testID on the DialogRootViewGroup. Since the accessibility events are not triggered on
|
|
417
|
+
* the on the ReactModalHostView, the testID is forwarded to the DialogRootViewGroup to set the
|
|
418
|
+
* resource-id.
|
|
419
|
+
*/
|
|
420
|
+
public fun setDialogRootViewGroupTestId(testId: String?) {
|
|
421
|
+
dialogRootViewGroup.setTag(R.id.react_test_id, testId)
|
|
422
|
+
}
|
|
423
|
+
|
|
380
424
|
// This listener is called when the user presses KeyEvent.KEYCODE_BACK
|
|
381
425
|
// An event is then passed to JS which can either close or not close the Modal by setting the
|
|
382
426
|
// visible property
|
|
@@ -417,6 +461,15 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
417
461
|
}
|
|
418
462
|
}
|
|
419
463
|
|
|
464
|
+
override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
|
|
465
|
+
super.onInitializeAccessibilityNodeInfo(info)
|
|
466
|
+
|
|
467
|
+
val testId = getTag(R.id.react_test_id) as String?
|
|
468
|
+
if (testId != null) {
|
|
469
|
+
info.viewIdResourceName = testId
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
420
473
|
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
|
421
474
|
super.onSizeChanged(w, h, oldw, oldh)
|
|
422
475
|
viewWidth = w
|
|
@@ -521,7 +574,7 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
521
574
|
return super.onHoverEvent(event)
|
|
522
575
|
}
|
|
523
576
|
|
|
524
|
-
override fun onChildStartedNativeGesture(childView: View
|
|
577
|
+
override fun onChildStartedNativeGesture(childView: View?, ev: MotionEvent) {
|
|
525
578
|
eventDispatcher?.let { eventDispatcher ->
|
|
526
579
|
jSTouchDispatcher.onChildStartedNativeGesture(ev, eventDispatcher)
|
|
527
580
|
jSPointerDispatcher?.onChildStartedNativeGesture(childView, ev, eventDispatcher)
|
package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt
CHANGED
|
@@ -10,8 +10,10 @@ package com.facebook.react.views.progressbar
|
|
|
10
10
|
import android.content.Context
|
|
11
11
|
import android.graphics.PorterDuff
|
|
12
12
|
import android.view.ViewGroup
|
|
13
|
+
import android.view.accessibility.AccessibilityNodeInfo
|
|
13
14
|
import android.widget.FrameLayout
|
|
14
15
|
import android.widget.ProgressBar
|
|
16
|
+
import com.facebook.react.R
|
|
15
17
|
import com.facebook.react.bridge.JSApplicationIllegalArgumentException
|
|
16
18
|
|
|
17
19
|
/**
|
|
@@ -27,6 +29,15 @@ internal class ProgressBarContainerView(context: Context) : FrameLayout(context)
|
|
|
27
29
|
|
|
28
30
|
private var progressBar: ProgressBar? = null
|
|
29
31
|
|
|
32
|
+
override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
|
|
33
|
+
super.onInitializeAccessibilityNodeInfo(info)
|
|
34
|
+
|
|
35
|
+
val testId = getTag(R.id.react_test_id) as String?
|
|
36
|
+
if (testId != null) {
|
|
37
|
+
info.viewIdResourceName = testId
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
30
41
|
internal fun apply() {
|
|
31
42
|
this.progressBar?.let { progressBar ->
|
|
32
43
|
progressBar.isIndeterminate = indeterminate
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
package com.facebook.react.views.scroll
|
|
8
|
+
package com.facebook.react.views.scroll
|
|
9
9
|
|
|
10
10
|
public interface FpsListener {
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ public interface FpsListener {
|
|
|
14
14
|
*
|
|
15
15
|
* @param tag
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
public fun enable(tag: String)
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Clients should call this method when they want the listener to stop recording data. The
|
|
@@ -24,8 +24,8 @@ public interface FpsListener {
|
|
|
24
24
|
*
|
|
25
25
|
* @param tag
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
public fun disable(tag: String)
|
|
28
28
|
|
|
29
29
|
/** Reports whether this listener is recording data. */
|
|
30
|
-
|
|
30
|
+
public fun isEnabled(): Boolean
|
|
31
31
|
}
|