react-native-tvos 0.83.1-0 → 0.84.0-0rc0
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/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
- package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/RCTImagePlugins.h +1 -0
- package/Libraries/Image/RCTImagePlugins.mm +30 -17
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
- package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/RCTSettingsManager.mm +1 -1
- package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/README.md +56 -18
- package/React/Base/RCTAssert.m +2 -2
- package/React/Base/RCTBridge.h +0 -4
- package/React/Base/RCTBridge.mm +1 -12
- package/React/Base/RCTBundleManager.h +59 -7
- package/React/Base/RCTBundleManager.m +112 -1
- package/React/Base/RCTBundleURLProvider.h +24 -0
- package/React/Base/RCTBundleURLProvider.mm +49 -4
- package/React/Base/RCTConvert.mm +2 -0
- package/React/Base/RCTModuleData.mm +2 -2
- package/React/Base/RCTUtils.h +4 -0
- package/React/Base/RCTUtils.mm +60 -3
- package/React/Base/RCTVersion.m +3 -3
- package/React/CoreModules/CoreModulesPlugins.mm +97 -35
- package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
- package/React/CoreModules/RCTAppState.mm +1 -1
- package/React/CoreModules/RCTDevLoadingView.mm +116 -36
- package/React/CoreModules/RCTDevSettings.h +36 -1
- package/React/CoreModules/RCTDevSettings.mm +44 -8
- package/React/CoreModules/RCTExceptionsManager.mm +5 -2
- package/React/CoreModules/RCTPlatform.mm +3 -2
- package/React/CoreModules/RCTStatusBarManager.mm +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +1 -2
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/CxxModule/RCTCxxUtils.mm +2 -12
- package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
- package/React/DevSupport/RCTPackagerConnection.h +4 -2
- package/React/DevSupport/RCTPackagerConnection.mm +30 -33
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +40 -4
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
- package/React/Modules/RCTEventEmitter.m +1 -0
- package/React/Views/RCTModalHostView.h +2 -0
- package/React/Views/RCTTVView.m +2 -0
- package/ReactAndroid/api/ReactAndroid.api +14 -73
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
- package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
- package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
- package/ReactCommon/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
- package/ReactCommon/jsi/jsi/jsi.h +73 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
- package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
- package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
- package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
- package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
- package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
- package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
- package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
- package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
- package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
- package/ReactCommon/react/networking/React-networking.podspec +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
- package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
- package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
- package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +307 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +323 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +133 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +246 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +93 -94
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
- package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +23 -8
- package/ReactCommon/react/renderer/core/Props.h +6 -4
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
- package/ReactCommon/react/renderer/debug/flags.h +3 -2
- package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
- package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
- package/ReactCommon/react/runtime/ReactInstance.h +5 -1
- package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
- package/ReactCommon/react/runtime/TimerManager.h +7 -12
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
- package/ReactCommon/yoga/yoga/style/Style.h +8 -8
- package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
- package/flow/HermesInternalType.js +6 -6
- package/flow/bom.js.flow +35 -28
- package/flow/cssom.js.flow +3 -3
- package/flow/dom.js.flow +34 -33
- package/index.js +3 -0
- package/index.js.flow +8 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +12 -12
- package/react-native.config.js +0 -17
- package/scripts/cocoapods/new_architecture.rb +7 -1
- package/scripts/cocoapods/spm.rb +28 -10
- package/scripts/cocoapods/utils.rb +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +6 -1
- package/scripts/react_native_pods.rb +8 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +39 -31
- package/sdks/hermes-engine/hermes-utils.rb +7 -14
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -0
- package/React/CxxModule/RCTCxxModule.h +0 -29
- package/React/CxxModule/RCTCxxModule.mm +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -12,6 +12,7 @@ package com.facebook.react.runtime
|
|
|
12
12
|
import android.content.Context
|
|
13
13
|
import android.graphics.Point
|
|
14
14
|
import android.graphics.Rect
|
|
15
|
+
import android.view.KeyEvent
|
|
15
16
|
import android.view.MotionEvent
|
|
16
17
|
import android.view.View
|
|
17
18
|
import com.facebook.common.logging.FLog
|
|
@@ -20,7 +21,9 @@ import com.facebook.react.bridge.ReactContext
|
|
|
20
21
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
21
22
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
22
23
|
import com.facebook.react.config.ReactFeatureFlags
|
|
24
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
23
25
|
import com.facebook.react.uimanager.IllegalViewOperationException
|
|
26
|
+
import com.facebook.react.uimanager.JSKeyDispatcher
|
|
24
27
|
import com.facebook.react.uimanager.JSPointerDispatcher
|
|
25
28
|
import com.facebook.react.uimanager.JSTouchDispatcher
|
|
26
29
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
@@ -37,6 +40,7 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
37
40
|
ReactRootView(context) {
|
|
38
41
|
private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
|
|
39
42
|
private var jsPointerDispatcher: JSPointerDispatcher? = null
|
|
43
|
+
private var jsKeyDispatcher: JSKeyDispatcher? = null
|
|
40
44
|
private var wasMeasured = false
|
|
41
45
|
private var widthMeasureSpec = 0
|
|
42
46
|
private var heightMeasureSpec = 0
|
|
@@ -45,6 +49,9 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
45
49
|
if (ReactFeatureFlags.dispatchPointerEvents) {
|
|
46
50
|
jsPointerDispatcher = JSPointerDispatcher(this)
|
|
47
51
|
}
|
|
52
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
53
|
+
jsKeyDispatcher = JSKeyDispatcher()
|
|
54
|
+
}
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
|
|
@@ -188,6 +195,51 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
188
195
|
}
|
|
189
196
|
}
|
|
190
197
|
|
|
198
|
+
override fun dispatchJSKeyEvent(event: KeyEvent) {
|
|
199
|
+
if (jsKeyDispatcher == null) {
|
|
200
|
+
if (!ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
201
|
+
return
|
|
202
|
+
}
|
|
203
|
+
FLog.w(TAG, "Unable to dispatch key events to JS before the dispatcher is available")
|
|
204
|
+
return
|
|
205
|
+
}
|
|
206
|
+
val eventDispatcher = surface.eventDispatcher
|
|
207
|
+
if (eventDispatcher != null) {
|
|
208
|
+
jsKeyDispatcher?.handleKeyEvent(event, eventDispatcher, surface.surfaceID)
|
|
209
|
+
} else {
|
|
210
|
+
FLog.w(
|
|
211
|
+
TAG,
|
|
212
|
+
"Unable to dispatch key events to JS as the React instance has not been attached",
|
|
213
|
+
)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
override fun requestChildFocus(child: View?, focused: View?) {
|
|
218
|
+
super.requestChildFocus(child, focused)
|
|
219
|
+
|
|
220
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
221
|
+
val focusedViewTag = focused?.id
|
|
222
|
+
if (focusedViewTag != null) {
|
|
223
|
+
jsKeyDispatcher?.setFocusedView(focusedViewTag)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
override fun onFocusChanged(gainFocus: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
|
|
229
|
+
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect)
|
|
230
|
+
|
|
231
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
232
|
+
if (gainFocus) {
|
|
233
|
+
val focusedViewTag = focusedChild?.id
|
|
234
|
+
if (focusedViewTag != null) {
|
|
235
|
+
jsKeyDispatcher?.setFocusedView(focusedViewTag)
|
|
236
|
+
}
|
|
237
|
+
} else {
|
|
238
|
+
jsKeyDispatcher?.clearFocus()
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
191
243
|
override fun hasActiveReactContext(): Boolean =
|
|
192
244
|
surface.isAttached && surface.reactHost?.currentReactContext != null
|
|
193
245
|
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt
CHANGED
|
@@ -9,7 +9,10 @@ package com.facebook.react.uimanager
|
|
|
9
9
|
|
|
10
10
|
import android.graphics.Canvas
|
|
11
11
|
import android.graphics.Color
|
|
12
|
+
import android.graphics.Paint
|
|
12
13
|
import android.graphics.Path
|
|
14
|
+
import android.graphics.PorterDuff
|
|
15
|
+
import android.graphics.PorterDuffXfermode
|
|
13
16
|
import android.graphics.Rect
|
|
14
17
|
import android.graphics.RectF
|
|
15
18
|
import android.graphics.drawable.Drawable
|
|
@@ -19,6 +22,7 @@ import android.widget.ImageView
|
|
|
19
22
|
import androidx.annotation.ColorInt
|
|
20
23
|
import com.facebook.react.bridge.ReadableArray
|
|
21
24
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
25
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
22
26
|
import com.facebook.react.uimanager.PixelUtil.dpToPx
|
|
23
27
|
import com.facebook.react.uimanager.PixelUtil.pxToDp
|
|
24
28
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
@@ -467,7 +471,7 @@ public object BackgroundStyleApplicator {
|
|
|
467
471
|
*/
|
|
468
472
|
@JvmStatic
|
|
469
473
|
public fun setFeedbackUnderlay(view: View, drawable: Drawable?) {
|
|
470
|
-
ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
474
|
+
view.background = ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
471
475
|
}
|
|
472
476
|
|
|
473
477
|
/**
|
|
@@ -481,12 +485,36 @@ public object BackgroundStyleApplicator {
|
|
|
481
485
|
*/
|
|
482
486
|
@JvmStatic
|
|
483
487
|
public fun clipToPaddingBox(view: View, canvas: Canvas) {
|
|
488
|
+
clipToPaddingBoxWithAntiAliasing(view, canvas, null)
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Clips the canvas to the padding box of the view.
|
|
493
|
+
*
|
|
494
|
+
* The padding box is the area within the borders of the view, accounting for border radius if
|
|
495
|
+
* present.
|
|
496
|
+
*
|
|
497
|
+
* On Android 28 and below, when border radius is present, this uses an antialiased clipping
|
|
498
|
+
* approach with Porter-Duff compositing to avoid jagged edges. The drawContent lambda is invoked
|
|
499
|
+
* to draw the actual content after setting up the layer but before applying the mask.
|
|
500
|
+
*
|
|
501
|
+
* @param view The view whose padding box defines the clipping region
|
|
502
|
+
* @param canvas The canvas to clip
|
|
503
|
+
* @param drawContent Lambda that draws the content after clipping is set up
|
|
504
|
+
*/
|
|
505
|
+
@JvmStatic
|
|
506
|
+
public fun clipToPaddingBoxWithAntiAliasing(
|
|
507
|
+
view: View,
|
|
508
|
+
canvas: Canvas,
|
|
509
|
+
drawContent: (() -> Unit)?,
|
|
510
|
+
) {
|
|
484
511
|
val drawingRect = Rect()
|
|
485
512
|
view.getDrawingRect(drawingRect)
|
|
486
513
|
|
|
487
514
|
val composite = getCompositeBackgroundDrawable(view)
|
|
488
515
|
if (composite == null) {
|
|
489
516
|
canvas.clipRect(drawingRect)
|
|
517
|
+
drawContent?.invoke()
|
|
490
518
|
return
|
|
491
519
|
}
|
|
492
520
|
|
|
@@ -508,15 +536,76 @@ public object BackgroundStyleApplicator {
|
|
|
508
536
|
paddingBoxRect,
|
|
509
537
|
computedBorderInsets,
|
|
510
538
|
)
|
|
511
|
-
|
|
512
539
|
paddingBoxPath.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
|
|
513
|
-
|
|
540
|
+
|
|
541
|
+
// On Android 28 and below, use antialiased clipping with Porter-Duff compositing. On newer
|
|
542
|
+
// Android versions, use the standard clipPath.
|
|
543
|
+
if (
|
|
544
|
+
ReactNativeFeatureFlags.enableAndroidAntialiasedBorderRadiusClipping() &&
|
|
545
|
+
Build.VERSION.SDK_INT <= Build.VERSION_CODES.P &&
|
|
546
|
+
view.width > 0 &&
|
|
547
|
+
view.height > 0 &&
|
|
548
|
+
drawContent != null
|
|
549
|
+
) {
|
|
550
|
+
clipWithAntiAliasing(
|
|
551
|
+
view,
|
|
552
|
+
canvas,
|
|
553
|
+
paddingBoxPath,
|
|
554
|
+
drawContent,
|
|
555
|
+
)
|
|
556
|
+
} else {
|
|
557
|
+
canvas.clipPath(paddingBoxPath)
|
|
558
|
+
drawContent?.invoke()
|
|
559
|
+
}
|
|
514
560
|
} else {
|
|
515
561
|
paddingBoxRect.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
|
|
516
562
|
canvas.clipRect(paddingBoxRect)
|
|
563
|
+
drawContent?.invoke()
|
|
517
564
|
}
|
|
518
565
|
}
|
|
519
566
|
|
|
567
|
+
/**
|
|
568
|
+
* Applies antialiased clipping using Porter-Duff compositing for Android 28 and below. This draws
|
|
569
|
+
* content to a layer, then applies an antialiased mask to clip it.
|
|
570
|
+
*/
|
|
571
|
+
private fun clipWithAntiAliasing(
|
|
572
|
+
view: View,
|
|
573
|
+
canvas: Canvas,
|
|
574
|
+
paddingBoxPath: Path,
|
|
575
|
+
drawContent: () -> Unit,
|
|
576
|
+
) {
|
|
577
|
+
// Save the layer for Porter-Duff compositing
|
|
578
|
+
val saveCount = canvas.saveLayer(0f, 0f, view.width.toFloat(), view.height.toFloat(), null)
|
|
579
|
+
|
|
580
|
+
// Draw the content first
|
|
581
|
+
drawContent()
|
|
582
|
+
|
|
583
|
+
val maskPaint = Paint(Paint.ANTI_ALIAS_FLAG)
|
|
584
|
+
maskPaint.style = Paint.Style.FILL
|
|
585
|
+
|
|
586
|
+
// Transparent pixels with INVERSE_WINDING only works on API 28
|
|
587
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
588
|
+
maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
|
|
589
|
+
maskPaint.color = Color.TRANSPARENT
|
|
590
|
+
paddingBoxPath.setFillType(Path.FillType.INVERSE_WINDING)
|
|
591
|
+
canvas.drawPath(paddingBoxPath, maskPaint)
|
|
592
|
+
} else {
|
|
593
|
+
// Create an inverse path: outer rect minus the rounded rect (using even-odd fill rule)
|
|
594
|
+
val inversePath = Path()
|
|
595
|
+
inversePath.addRect(0f, 0f, view.width.toFloat(), view.height.toFloat(), Path.Direction.CW)
|
|
596
|
+
inversePath.addPath(paddingBoxPath)
|
|
597
|
+
inversePath.setFillType(Path.FillType.EVEN_ODD)
|
|
598
|
+
|
|
599
|
+
// Use DST_OUT to remove content where the mask is drawn (outside the rounded rect)
|
|
600
|
+
maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
|
|
601
|
+
maskPaint.color = Color.BLACK
|
|
602
|
+
canvas.drawPath(inversePath, maskPaint)
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Restore the layer
|
|
606
|
+
canvas.restoreToCount(saveCount)
|
|
607
|
+
}
|
|
608
|
+
|
|
520
609
|
/**
|
|
521
610
|
* Resets the background styling of the view to its original state.
|
|
522
611
|
*
|
|
@@ -16,6 +16,7 @@ import android.view.View.OnFocusChangeListener;
|
|
|
16
16
|
import android.view.ViewGroup;
|
|
17
17
|
import android.view.ViewParent;
|
|
18
18
|
import android.view.accessibility.AccessibilityEvent;
|
|
19
|
+
import android.widget.TextView;
|
|
19
20
|
import androidx.annotation.ColorInt;
|
|
20
21
|
import androidx.annotation.NonNull;
|
|
21
22
|
import androidx.annotation.Nullable;
|
|
@@ -30,6 +31,7 @@ import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
|
30
31
|
import com.facebook.react.bridge.ReadableType;
|
|
31
32
|
import com.facebook.react.common.MapBuilder;
|
|
32
33
|
import com.facebook.react.common.ReactConstants;
|
|
34
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
33
35
|
import com.facebook.react.uimanager.ReactAccessibilityDelegate.AccessibilityRole;
|
|
34
36
|
import com.facebook.react.uimanager.ReactAccessibilityDelegate.Role;
|
|
35
37
|
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
@@ -147,7 +149,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
147
149
|
// are the default view flags in View.java:
|
|
148
150
|
// https://android.googlesource.com/platform/frameworks/base/+/a175a5b/core/java/android/view/View.java#2712
|
|
149
151
|
// `mViewFlags = SOUND_EFFECTS_ENABLED | HAPTIC_FEEDBACK_ENABLED | LAYOUT_DIRECTION_INHERIT`
|
|
150
|
-
|
|
152
|
+
|
|
153
|
+
// NOTE: setClickable MUST be called AFTER setOnClickListener because
|
|
154
|
+
// the latter has the side effect of setting isClickable=true on some views!
|
|
155
|
+
if (ReactNativeFeatureFlags.shouldResetOnClickListenerWhenRecyclingView()) {
|
|
156
|
+
view.setOnClickListener(null);
|
|
157
|
+
}
|
|
158
|
+
if (ReactNativeFeatureFlags.shouldResetClickableWhenRecyclingView()) {
|
|
159
|
+
view.setClickable(
|
|
160
|
+
ReactNativeFeatureFlags.shouldSetIsClickableByDefault() && !(view instanceof TextView));
|
|
161
|
+
}
|
|
151
162
|
view.setFocusable(false);
|
|
152
163
|
view.setFocusableInTouchMode(false);
|
|
153
164
|
|
|
@@ -385,8 +396,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
385
396
|
view.setSelected(false);
|
|
386
397
|
}
|
|
387
398
|
view.setTag(R.id.accessibility_state, accessibilityState);
|
|
388
|
-
if (accessibilityState.hasKey("disabled")
|
|
389
|
-
|
|
399
|
+
if (accessibilityState.hasKey("disabled")) {
|
|
400
|
+
if (ReactNativeFeatureFlags.shouldSetEnabledBasedOnAccessibilityState()) {
|
|
401
|
+
// New behavior: properly set enabled state for both true and false
|
|
402
|
+
view.setEnabled(!accessibilityState.getBoolean("disabled"));
|
|
403
|
+
} else {
|
|
404
|
+
// Old behavior: only set enabled(true) when disabled=false
|
|
405
|
+
if (!accessibilityState.getBoolean("disabled")) {
|
|
406
|
+
view.setEnabled(true);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
390
409
|
}
|
|
391
410
|
|
|
392
411
|
// For states which don't have corresponding methods in
|
|
@@ -474,14 +493,13 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
474
493
|
public void setImportantForAccessibility(
|
|
475
494
|
@NonNull T view, @Nullable String importantForAccessibility) {
|
|
476
495
|
if (importantForAccessibility == null || importantForAccessibility.equals("auto")) {
|
|
477
|
-
|
|
496
|
+
view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
|
|
478
497
|
} else if (importantForAccessibility.equals("yes")) {
|
|
479
|
-
|
|
498
|
+
view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
|
|
480
499
|
} else if (importantForAccessibility.equals("no")) {
|
|
481
|
-
|
|
500
|
+
view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
|
482
501
|
} else if (importantForAccessibility.equals("no-hide-descendants")) {
|
|
483
|
-
|
|
484
|
-
view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
|
|
502
|
+
view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
|
|
485
503
|
}
|
|
486
504
|
}
|
|
487
505
|
|
|
@@ -670,6 +688,7 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
670
688
|
@Override
|
|
671
689
|
protected void onAfterUpdateTransaction(@NonNull T view) {
|
|
672
690
|
super.onAfterUpdateTransaction(view);
|
|
691
|
+
configureClickableState(view);
|
|
673
692
|
updateViewAccessibility(view);
|
|
674
693
|
|
|
675
694
|
Boolean invalidateTransform = (Boolean) view.getTag(R.id.invalidate_transform);
|
|
@@ -762,6 +781,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
762
781
|
MapBuilder.of(
|
|
763
782
|
"phasedRegistrationNames",
|
|
764
783
|
MapBuilder.of("bubbled", "onFocus", "captured", "onFocusCapture")))
|
|
784
|
+
.put(
|
|
785
|
+
"topKeyDown",
|
|
786
|
+
MapBuilder.of(
|
|
787
|
+
"phasedRegistrationNames",
|
|
788
|
+
MapBuilder.of("bubbled", "onKeyDown", "captured", "onKeyDownCapture")))
|
|
789
|
+
.put(
|
|
790
|
+
"topKeyUp",
|
|
791
|
+
MapBuilder.of(
|
|
792
|
+
"phasedRegistrationNames",
|
|
793
|
+
MapBuilder.of("bubbled", "onKeyUp", "captured", "onKeyUpCapture")))
|
|
765
794
|
.build());
|
|
766
795
|
return eventTypeConstants;
|
|
767
796
|
}
|
|
@@ -999,6 +1028,31 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
|
|
999
1028
|
|
|
1000
1029
|
// Please add new props to BaseViewManagerDelegate as well!
|
|
1001
1030
|
|
|
1031
|
+
private static <T extends View> void configureClickableState(@NonNull T view) {
|
|
1032
|
+
if (!ReactNativeFeatureFlags.shouldSetIsClickableByDefault()) {
|
|
1033
|
+
return;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
boolean shouldBeClickable;
|
|
1037
|
+
if (view instanceof ReactPointerEventsView) {
|
|
1038
|
+
shouldBeClickable =
|
|
1039
|
+
PointerEvents.canBeTouchTarget(((ReactPointerEventsView) view).getPointerEvents());
|
|
1040
|
+
} else if (view instanceof TextView) {
|
|
1041
|
+
shouldBeClickable = view.hasOnClickListeners();
|
|
1042
|
+
} else {
|
|
1043
|
+
shouldBeClickable = true;
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
// NOTE: In Android O+, setClickable(true) has the side effect of setting focusable=true.
|
|
1047
|
+
// We need to preserve the original focusable state to respect the focusable prop.
|
|
1048
|
+
boolean wasFocusable = view.isFocusable();
|
|
1049
|
+
boolean wasFocusableInTouchMode = view.isFocusableInTouchMode();
|
|
1050
|
+
|
|
1051
|
+
view.setClickable(shouldBeClickable);
|
|
1052
|
+
view.setFocusable(wasFocusable);
|
|
1053
|
+
view.setFocusableInTouchMode(wasFocusableInTouchMode);
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1002
1056
|
/**
|
|
1003
1057
|
* A helper class to keep track of the original focus change listener if one is set. This is
|
|
1004
1058
|
* especially helpful for views that are recycled so we can retain and restore the original
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
|
9
|
+
|
|
10
|
+
import android.view.KeyEvent as AndroidKeyEvent
|
|
11
|
+
import android.view.View
|
|
12
|
+
import com.facebook.react.uimanager.events.EventDispatcher
|
|
13
|
+
import com.facebook.react.uimanager.events.KeyDownEvent
|
|
14
|
+
import com.facebook.react.uimanager.events.KeyUpEvent
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* JSKeyDispatcher handles dispatching keyboard events to JS from RootViews. It sends keydown and
|
|
18
|
+
* keyup events according to the W3C KeyboardEvent specification, supporting both capture and bubble
|
|
19
|
+
* phases.
|
|
20
|
+
*
|
|
21
|
+
* The keydown and keyup events provide a code indicating which key is pressed. The event target is
|
|
22
|
+
* derived from the currently focused Android view.
|
|
23
|
+
*/
|
|
24
|
+
internal class JSKeyDispatcher {
|
|
25
|
+
private var focusedViewTag: Int = View.NO_ID
|
|
26
|
+
|
|
27
|
+
fun handleKeyEvent(
|
|
28
|
+
keyEvent: AndroidKeyEvent,
|
|
29
|
+
eventDispatcher: EventDispatcher,
|
|
30
|
+
surfaceId: Int,
|
|
31
|
+
) {
|
|
32
|
+
if (focusedViewTag == View.NO_ID) {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
when (keyEvent.action) {
|
|
37
|
+
AndroidKeyEvent.ACTION_DOWN -> {
|
|
38
|
+
eventDispatcher.dispatchEvent(
|
|
39
|
+
KeyDownEvent(
|
|
40
|
+
surfaceId,
|
|
41
|
+
focusedViewTag,
|
|
42
|
+
keyEvent,
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
AndroidKeyEvent.ACTION_UP -> {
|
|
47
|
+
eventDispatcher.dispatchEvent(
|
|
48
|
+
KeyUpEvent(
|
|
49
|
+
surfaceId,
|
|
50
|
+
focusedViewTag,
|
|
51
|
+
keyEvent,
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
fun setFocusedView(viewTag: Int) {
|
|
59
|
+
focusedViewTag = viewTag
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
fun clearFocus() {
|
|
63
|
+
focusedViewTag = View.NO_ID
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -15,6 +15,7 @@ import androidx.annotation.Nullable;
|
|
|
15
15
|
import com.facebook.common.logging.FLog;
|
|
16
16
|
import com.facebook.infer.annotation.Assertions;
|
|
17
17
|
import com.facebook.react.common.ReactConstants;
|
|
18
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
18
19
|
import com.facebook.react.uimanager.TouchTargetHelper.ViewTarget;
|
|
19
20
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
20
21
|
import com.facebook.react.uimanager.events.PointerEvent;
|
|
@@ -133,9 +134,17 @@ public class JSPointerDispatcher {
|
|
|
133
134
|
boolean listeningForUp =
|
|
134
135
|
isAnyoneListeningForBubblingEvent(activeHitPath, EVENT.UP, EVENT.UP_CAPTURE);
|
|
135
136
|
if (listeningForUp) {
|
|
137
|
+
List<Integer> activeHitPathViewIds =
|
|
138
|
+
ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
|
|
139
|
+
? eventState.getHitPathViewIdsForActivePointer()
|
|
140
|
+
: null;
|
|
136
141
|
eventDispatcher.dispatchEvent(
|
|
137
142
|
PointerEvent.obtain(
|
|
138
|
-
PointerEventHelper.POINTER_UP,
|
|
143
|
+
PointerEventHelper.POINTER_UP,
|
|
144
|
+
activeTargetTag,
|
|
145
|
+
eventState,
|
|
146
|
+
motionEvent,
|
|
147
|
+
activeHitPathViewIds));
|
|
139
148
|
}
|
|
140
149
|
|
|
141
150
|
boolean supportsHover = mHoveringPointerIds.contains(activePointerId);
|
|
@@ -230,9 +239,17 @@ public class JSPointerDispatcher {
|
|
|
230
239
|
boolean listeningForDown =
|
|
231
240
|
isAnyoneListeningForBubblingEvent(activeHitPath, EVENT.DOWN, EVENT.DOWN_CAPTURE);
|
|
232
241
|
if (listeningForDown) {
|
|
242
|
+
List<Integer> activeHitPathViewIds =
|
|
243
|
+
ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
|
|
244
|
+
? eventState.getHitPathViewIdsForActivePointer()
|
|
245
|
+
: null;
|
|
233
246
|
eventDispatcher.dispatchEvent(
|
|
234
247
|
PointerEvent.obtain(
|
|
235
|
-
PointerEventHelper.POINTER_DOWN,
|
|
248
|
+
PointerEventHelper.POINTER_DOWN,
|
|
249
|
+
activeTargetTag,
|
|
250
|
+
eventState,
|
|
251
|
+
motionEvent,
|
|
252
|
+
activeHitPathViewIds));
|
|
236
253
|
}
|
|
237
254
|
}
|
|
238
255
|
|
|
@@ -14,7 +14,6 @@ import com.facebook.infer.annotation.Assertions
|
|
|
14
14
|
import com.facebook.react.bridge.ReactContext
|
|
15
15
|
import com.facebook.react.common.ReactConstants
|
|
16
16
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
17
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
18
17
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
19
18
|
import com.facebook.react.uimanager.events.EventDispatcher
|
|
20
19
|
import com.facebook.react.uimanager.events.TouchEvent
|
|
@@ -59,7 +58,7 @@ public class JSTouchDispatcher(private val viewGroup: ViewGroup) {
|
|
|
59
58
|
dispatchCancelEvent(androidEvent, eventDispatcher)
|
|
60
59
|
childIsHandlingNativeGesture = true
|
|
61
60
|
|
|
62
|
-
if (targetTag != -1
|
|
61
|
+
if (targetTag != -1) {
|
|
63
62
|
val surfaceId = UIManagerHelper.getSurfaceId(viewGroup)
|
|
64
63
|
sweepActiveTouchForTag(surfaceId, targetTag, reactContext)
|
|
65
64
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java
CHANGED
|
@@ -31,8 +31,6 @@ import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
|
|
|
31
31
|
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
|
|
32
32
|
import com.facebook.react.common.build.ReactBuildConfig;
|
|
33
33
|
import com.facebook.react.touch.JSResponderHandler;
|
|
34
|
-
import com.facebook.react.uimanager.layoutanimation.LayoutAnimationController;
|
|
35
|
-
import com.facebook.react.uimanager.layoutanimation.LayoutAnimationListener;
|
|
36
34
|
import com.facebook.systrace.Systrace;
|
|
37
35
|
import com.facebook.systrace.SystraceMessage;
|
|
38
36
|
import com.facebook.yoga.YogaDirection;
|
|
@@ -86,7 +84,6 @@ public class NativeViewHierarchyManager {
|
|
|
86
84
|
private final ViewManagerRegistry mViewManagers;
|
|
87
85
|
private final JSResponderHandler mJSResponderHandler = new JSResponderHandler();
|
|
88
86
|
private final RootViewManager mRootViewManager;
|
|
89
|
-
private final LayoutAnimationController mLayoutAnimator = new LayoutAnimationController();
|
|
90
87
|
private final RectF mBoundingBox = new RectF();
|
|
91
88
|
|
|
92
89
|
private volatile boolean mLayoutAnimationEnabled;
|
|
@@ -265,9 +262,7 @@ public class NativeViewHierarchyManager {
|
|
|
265
262
|
}
|
|
266
263
|
|
|
267
264
|
private void updateLayout(View viewToUpdate, int x, int y, int width, int height) {
|
|
268
|
-
if (mLayoutAnimationEnabled
|
|
269
|
-
mLayoutAnimator.applyLayoutUpdate(viewToUpdate, x, y, width, height);
|
|
270
|
-
} else {
|
|
265
|
+
if (!mLayoutAnimationEnabled) {
|
|
271
266
|
viewToUpdate.layout(x, y, x + width, y + height);
|
|
272
267
|
}
|
|
273
268
|
}
|
|
@@ -464,14 +459,7 @@ public class NativeViewHierarchyManager {
|
|
|
464
459
|
viewToManage, viewManager, indicesToRemove, viewsToAdd, tagsToDelete));
|
|
465
460
|
}
|
|
466
461
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if (mLayoutAnimationEnabled
|
|
470
|
-
&& mLayoutAnimator.shouldAnimateLayout(viewToRemove)
|
|
471
|
-
&& arrayContains(tagsToDelete, viewToRemove.getId())) {
|
|
472
|
-
// The view will be removed and dropped by the 'delete' layout animation
|
|
473
|
-
// instead, so do nothing
|
|
474
|
-
} else {
|
|
462
|
+
if (!mLayoutAnimationEnabled) {
|
|
475
463
|
viewManager.removeViewAt(viewToManage, indexToRemove);
|
|
476
464
|
}
|
|
477
465
|
|
|
@@ -492,26 +480,7 @@ public class NativeViewHierarchyManager {
|
|
|
492
480
|
viewToManage, viewManager, indicesToRemove, viewsToAdd, tagsToDelete));
|
|
493
481
|
}
|
|
494
482
|
|
|
495
|
-
if (mLayoutAnimationEnabled
|
|
496
|
-
pendingDeletionTags.add(tagToDelete);
|
|
497
|
-
mLayoutAnimator.deleteView(
|
|
498
|
-
viewToDestroy,
|
|
499
|
-
new LayoutAnimationListener() {
|
|
500
|
-
@Override
|
|
501
|
-
public void onAnimationEnd() {
|
|
502
|
-
// This should be called only on the UI thread, because
|
|
503
|
-
// onAnimationEnd is called (indirectly) by Android View Animation.
|
|
504
|
-
UiThreadUtil.assertOnUiThread();
|
|
505
|
-
|
|
506
|
-
viewManager.removeView(viewToManage, viewToDestroy);
|
|
507
|
-
dropView(viewToDestroy);
|
|
508
|
-
pendingDeletionTags.remove(viewToDestroy.getId());
|
|
509
|
-
if (pendingDeletionTags.isEmpty()) {
|
|
510
|
-
mPendingDeletionsForTag.remove(tag);
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
});
|
|
514
|
-
} else {
|
|
483
|
+
if (!mLayoutAnimationEnabled) {
|
|
515
484
|
dropView(viewToDestroy);
|
|
516
485
|
}
|
|
517
486
|
}
|
|
@@ -828,11 +797,11 @@ public class NativeViewHierarchyManager {
|
|
|
828
797
|
|
|
829
798
|
synchronized void configureLayoutAnimation(
|
|
830
799
|
final ReadableMap config, final Callback onAnimationComplete) {
|
|
831
|
-
|
|
800
|
+
// no-op
|
|
832
801
|
}
|
|
833
802
|
|
|
834
803
|
synchronized void clearLayoutAnimation() {
|
|
835
|
-
|
|
804
|
+
// no-op
|
|
836
805
|
}
|
|
837
806
|
|
|
838
807
|
@Deprecated
|