react-native-tvos 0.83.2-0 → 0.84.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/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 +2 -2
- 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 +2 -2
- 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 +39 -2
- 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 +97 -29
- 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/network/NetworkingModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- 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 +11 -1
- 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/hermes/reactexecutor/CMakeLists.txt +0 -4
- 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/hermes/jni/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +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/cmake-utils/react-native-flags.cmake +3 -0
- 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 +4 -4
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -0
- package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
- 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 +715 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +298 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +90 -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/CMakeLists.txt +0 -4
- 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/hermes/CMakeLists.txt +0 -4
- 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 +11 -11
- 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/generateRCTThirdPartyComponents.js +5 -5
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +24 -1
- package/scripts/react_native_pods.rb +13 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +53 -36
- package/sdks/hermes-engine/hermes-utils.rb +8 -15
- package/sdks/hermes-engine/version.properties +1 -1
- 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/third-party-podspecs/glog.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/tvosCommands.js +0 -51
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -28,6 +28,7 @@ import android.view.KeyEvent;
|
|
|
28
28
|
import android.view.MotionEvent;
|
|
29
29
|
import android.view.View;
|
|
30
30
|
import android.view.ViewGroup;
|
|
31
|
+
import android.view.ViewParent;
|
|
31
32
|
import android.view.accessibility.AccessibilityNodeInfo;
|
|
32
33
|
import android.widget.HorizontalScrollView;
|
|
33
34
|
import android.widget.OverScroller;
|
|
@@ -134,6 +135,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
134
135
|
private @Nullable MaintainVisibleScrollPositionHelper mMaintainVisibleContentPositionHelper;
|
|
135
136
|
private int mFadingEdgeLengthStart = 0;
|
|
136
137
|
private int mFadingEdgeLengthEnd = 0;
|
|
138
|
+
private boolean mEmittedOverScrollSinceScrollBegin = false;
|
|
137
139
|
|
|
138
140
|
public ReactHorizontalScrollView(Context context) {
|
|
139
141
|
this(context, null);
|
|
@@ -298,6 +300,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
298
300
|
|
|
299
301
|
@Override
|
|
300
302
|
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
|
|
303
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
301
307
|
if (removeClippedSubviews && mClippingRect == null) {
|
|
302
308
|
mClippingRect = new Rect();
|
|
303
309
|
}
|
|
@@ -733,6 +739,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
733
739
|
}
|
|
734
740
|
ReactScrollViewHelper.emitScrollBeginDragEvent(this);
|
|
735
741
|
mDragging = true;
|
|
742
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
736
743
|
enableFpsListener();
|
|
737
744
|
getFlingAnimator().cancel();
|
|
738
745
|
}
|
|
@@ -748,6 +755,20 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
748
755
|
return handled;
|
|
749
756
|
}
|
|
750
757
|
|
|
758
|
+
private boolean isDescendantOf(View parent, View view) {
|
|
759
|
+
if (view == null || parent == null) {
|
|
760
|
+
return false;
|
|
761
|
+
}
|
|
762
|
+
ViewParent p = view.getParent();
|
|
763
|
+
while (p != null && p.getParent() != null) {
|
|
764
|
+
if (p == parent) {
|
|
765
|
+
return true;
|
|
766
|
+
}
|
|
767
|
+
p = p.getParent();
|
|
768
|
+
}
|
|
769
|
+
return false;
|
|
770
|
+
}
|
|
771
|
+
|
|
751
772
|
@Override
|
|
752
773
|
public boolean arrowScroll(int direction) {
|
|
753
774
|
boolean handled = false;
|
|
@@ -759,7 +780,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
759
780
|
View currentFocused = findFocus();
|
|
760
781
|
View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, direction);
|
|
761
782
|
View rootChild = getContentView();
|
|
762
|
-
if (rootChild
|
|
783
|
+
if (isDescendantOf(rootChild, nextFocused)) {
|
|
763
784
|
if (!isScrolledInView(nextFocused) && !isMostlyScrolledInView(nextFocused)) {
|
|
764
785
|
smoothScrollToNextPage(direction);
|
|
765
786
|
}
|
|
@@ -842,8 +863,13 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
842
863
|
@Override
|
|
843
864
|
public void run() {
|
|
844
865
|
mPostTouchRunnable = null;
|
|
845
|
-
//
|
|
846
|
-
|
|
866
|
+
// +1/-1 velocity if scrolling right or left. This is to ensure that the
|
|
867
|
+
// next/previous page is picked rather than sliding backwards to the current page
|
|
868
|
+
int velocityX = (int) Math.signum(hScroll);
|
|
869
|
+
if (mDisableIntervalMomentum) {
|
|
870
|
+
velocityX = 0;
|
|
871
|
+
}
|
|
872
|
+
flingAndSnap(velocityX);
|
|
847
873
|
}
|
|
848
874
|
};
|
|
849
875
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
@@ -1060,6 +1086,13 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1060
1086
|
// END FB SCROLLVIEW CHANGE
|
|
1061
1087
|
}
|
|
1062
1088
|
|
|
1089
|
+
if (ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()
|
|
1090
|
+
&& clampedX
|
|
1091
|
+
&& mEmittedOverScrollSinceScrollBegin == false) {
|
|
1092
|
+
ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f);
|
|
1093
|
+
mEmittedOverScrollSinceScrollBegin = true;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1063
1096
|
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
|
|
1064
1097
|
}
|
|
1065
1098
|
|
|
@@ -132,6 +132,7 @@ public class ReactScrollView extends ScrollView
|
|
|
132
132
|
private @Nullable MaintainVisibleScrollPositionHelper mMaintainVisibleContentPositionHelper;
|
|
133
133
|
private int mFadingEdgeLengthStart;
|
|
134
134
|
private int mFadingEdgeLengthEnd;
|
|
135
|
+
private boolean mEmittedOverScrollSinceScrollBegin;
|
|
135
136
|
|
|
136
137
|
public ReactScrollView(Context context) {
|
|
137
138
|
this(context, null);
|
|
@@ -194,6 +195,7 @@ public class ReactScrollView extends ScrollView
|
|
|
194
195
|
mMaintainVisibleContentPositionHelper = null;
|
|
195
196
|
mFadingEdgeLengthStart = 0;
|
|
196
197
|
mFadingEdgeLengthEnd = 0;
|
|
198
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
/* package */ void recycleView() {
|
|
@@ -629,6 +631,7 @@ public class ReactScrollView extends ScrollView
|
|
|
629
631
|
}
|
|
630
632
|
ReactScrollViewHelper.emitScrollBeginDragEvent(this);
|
|
631
633
|
mDragging = true;
|
|
634
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
632
635
|
enableFpsListener();
|
|
633
636
|
getFlingAnimator().cancel();
|
|
634
637
|
}
|
|
@@ -696,8 +699,13 @@ public class ReactScrollView extends ScrollView
|
|
|
696
699
|
@Override
|
|
697
700
|
public void run() {
|
|
698
701
|
mPostTouchRunnable = null;
|
|
699
|
-
//
|
|
700
|
-
|
|
702
|
+
// +1/-1 velocity if scrolling down or up. This is to ensure that the
|
|
703
|
+
// next/previous page is picked rather than sliding backwards to the current page
|
|
704
|
+
int velocityY = (int) -Math.signum(vScroll);
|
|
705
|
+
if (mDisableIntervalMomentum) {
|
|
706
|
+
velocityY = 0;
|
|
707
|
+
}
|
|
708
|
+
flingAndSnap(velocityY);
|
|
701
709
|
}
|
|
702
710
|
};
|
|
703
711
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
@@ -722,6 +730,10 @@ public class ReactScrollView extends ScrollView
|
|
|
722
730
|
|
|
723
731
|
@Override
|
|
724
732
|
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
|
|
733
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
|
|
725
737
|
if (removeClippedSubviews && mClippingRect == null) {
|
|
726
738
|
mClippingRect = new Rect();
|
|
727
739
|
}
|
|
@@ -776,8 +788,6 @@ public class ReactScrollView extends ScrollView
|
|
|
776
788
|
if (mPagingEnabled) {
|
|
777
789
|
flingAndSnap(correctedVelocityY);
|
|
778
790
|
} else if (mScroller != null) {
|
|
779
|
-
// FB SCROLLVIEW CHANGE
|
|
780
|
-
|
|
781
791
|
// We provide our own version of fling that uses a different call to the standard OverScroller
|
|
782
792
|
// which takes into account the possibility of adding new content while the ScrollView is
|
|
783
793
|
// animating. Because we give essentially no max Y for the fling, the fling will continue as
|
|
@@ -802,8 +812,6 @@ public class ReactScrollView extends ScrollView
|
|
|
802
812
|
);
|
|
803
813
|
|
|
804
814
|
ViewCompat.postInvalidateOnAnimation(this);
|
|
805
|
-
|
|
806
|
-
// END FB SCROLLVIEW CHANGE
|
|
807
815
|
} else {
|
|
808
816
|
super.fling(correctedVelocityY);
|
|
809
817
|
}
|
|
@@ -1262,11 +1270,8 @@ public class ReactScrollView extends ScrollView
|
|
|
1262
1270
|
@Override
|
|
1263
1271
|
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
|
|
1264
1272
|
if (mScroller != null && mContentView != null) {
|
|
1265
|
-
// FB SCROLLVIEW CHANGE
|
|
1266
|
-
|
|
1267
1273
|
// This is part two of the reimplementation of fling to fix the bounce-back bug. See #fling()
|
|
1268
|
-
// for
|
|
1269
|
-
// more information.
|
|
1274
|
+
// for more information.
|
|
1270
1275
|
|
|
1271
1276
|
if (!mScroller.isFinished() && mScroller.getCurrY() != mScroller.getFinalY()) {
|
|
1272
1277
|
int scrollRange = getMaxScrollY();
|
|
@@ -1275,8 +1280,13 @@ public class ReactScrollView extends ScrollView
|
|
|
1275
1280
|
scrollY = scrollRange;
|
|
1276
1281
|
}
|
|
1277
1282
|
}
|
|
1283
|
+
}
|
|
1278
1284
|
|
|
1279
|
-
|
|
1285
|
+
if (ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()
|
|
1286
|
+
&& clampedY
|
|
1287
|
+
&& mEmittedOverScrollSinceScrollBegin == false) {
|
|
1288
|
+
ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f);
|
|
1289
|
+
mEmittedOverScrollSinceScrollBegin = true;
|
|
1280
1290
|
}
|
|
1281
1291
|
|
|
1282
1292
|
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
|
|
@@ -49,6 +49,13 @@ internal class VirtualViewContainerStateExperimental(scrollView: ViewGroup) :
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
override fun remove(virtualView: VirtualView) {
|
|
53
|
+
super.remove(virtualView)
|
|
54
|
+
HPV.remove(virtualView.virtualViewID)
|
|
55
|
+
P.remove(virtualView.virtualViewID)
|
|
56
|
+
V.remove(virtualView.virtualViewID)
|
|
57
|
+
}
|
|
58
|
+
|
|
52
59
|
/**
|
|
53
60
|
* Perform mode update check on a single VirtualView. Does not check other VirtualViews in the
|
|
54
61
|
* collection. Use carefully
|
|
@@ -219,6 +219,7 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
219
219
|
node.contentDescription = accessibleTextSpan.description
|
|
220
220
|
node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK)
|
|
221
221
|
node.setBoundsInParent(bounds)
|
|
222
|
+
node.setClickable(true)
|
|
222
223
|
node.roleDescription = hostView.resources.getString(R.string.link_description)
|
|
223
224
|
node.className = AccessibilityRole.getValue(AccessibilityRole.BUTTON)
|
|
224
225
|
}
|
|
@@ -290,22 +291,26 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
290
291
|
init {
|
|
291
292
|
val accessibleLinks = mutableListOf<AccessibleLink>()
|
|
292
293
|
val spans = text.getSpans(0, text.length, ClickableSpan::class.java)
|
|
293
|
-
spans.sortBy { text.getSpanStart(it) }
|
|
294
|
-
for (i in spans.indices) {
|
|
295
|
-
val span = spans[i]
|
|
296
|
-
val start = text.getSpanStart(span)
|
|
297
|
-
val end = text.getSpanEnd(span)
|
|
298
|
-
// zero length spans, and out of range spans should not be included.
|
|
299
|
-
if (start == end || start < 0 || end < 0 || start > text.length || end > text.length) {
|
|
300
|
-
continue
|
|
301
|
-
}
|
|
302
294
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
295
|
+
// Do not generate virtual views if whole text is a single link
|
|
296
|
+
if (!isWholeTextSingleLink(text, spans)) {
|
|
297
|
+
spans.sortBy { text.getSpanStart(it) }
|
|
298
|
+
for (i in spans.indices) {
|
|
299
|
+
val span = spans[i]
|
|
300
|
+
val start = text.getSpanStart(span)
|
|
301
|
+
val end = text.getSpanEnd(span)
|
|
302
|
+
// zero length spans, and out of range spans should not be included.
|
|
303
|
+
if (start == end || start < 0 || end < 0 || start > text.length || end > text.length) {
|
|
304
|
+
continue
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
val link = AccessibleLink()
|
|
308
|
+
link.description = text.subSequence(start, end).toString()
|
|
309
|
+
link.start = start
|
|
310
|
+
link.end = end
|
|
311
|
+
link.id = i
|
|
312
|
+
accessibleLinks.add(link)
|
|
313
|
+
}
|
|
309
314
|
}
|
|
310
315
|
links = accessibleLinks
|
|
311
316
|
}
|
|
@@ -342,3 +347,14 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
342
347
|
}
|
|
343
348
|
}
|
|
344
349
|
}
|
|
350
|
+
|
|
351
|
+
private fun isWholeTextSingleLink(text: Spanned, spans: Array<ClickableSpan>): Boolean {
|
|
352
|
+
if (spans.size != 1) {
|
|
353
|
+
return false
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
val span = spans[0]
|
|
357
|
+
val start = text.getSpanStart(span)
|
|
358
|
+
val end = text.getSpanEnd(span)
|
|
359
|
+
return start == 0 && end == text.length
|
|
360
|
+
}
|
|
@@ -620,15 +620,89 @@ internal object TextLayoutManager {
|
|
|
620
620
|
)
|
|
621
621
|
}
|
|
622
622
|
|
|
623
|
-
|
|
623
|
+
// Pre-Android 15: Use existing advance-based logic
|
|
624
|
+
if (
|
|
625
|
+
Build.VERSION.SDK_INT < Build.VERSION_CODES.VANILLA_ICE_CREAM ||
|
|
626
|
+
!ReactNativeFeatureFlags.fixTextClippingAndroid15useBoundsForWidth()
|
|
627
|
+
) {
|
|
628
|
+
val desiredWidth = ceil(Layout.getDesiredWidth(text, paint)).toInt()
|
|
629
|
+
|
|
630
|
+
val layoutWidth =
|
|
631
|
+
when (widthYogaMeasureMode) {
|
|
632
|
+
YogaMeasureMode.EXACTLY -> floor(width).toInt()
|
|
633
|
+
YogaMeasureMode.AT_MOST -> min(desiredWidth, floor(width).toInt())
|
|
634
|
+
else -> desiredWidth
|
|
635
|
+
}
|
|
636
|
+
return buildLayout(
|
|
637
|
+
text,
|
|
638
|
+
layoutWidth,
|
|
639
|
+
includeFontPadding,
|
|
640
|
+
textBreakStrategy,
|
|
641
|
+
hyphenationFrequency,
|
|
642
|
+
alignment,
|
|
643
|
+
justificationMode,
|
|
644
|
+
ellipsizeMode,
|
|
645
|
+
maxNumberOfLines,
|
|
646
|
+
paint,
|
|
647
|
+
)
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// Android 15+: Need to account for visual bounds
|
|
651
|
+
// Step 1: Create unconstrained layout to get visual bounds width
|
|
652
|
+
val unconstrainedLayout =
|
|
653
|
+
buildLayout(
|
|
654
|
+
text,
|
|
655
|
+
Int.MAX_VALUE / 2,
|
|
656
|
+
includeFontPadding,
|
|
657
|
+
textBreakStrategy,
|
|
658
|
+
hyphenationFrequency,
|
|
659
|
+
alignment,
|
|
660
|
+
justificationMode,
|
|
661
|
+
null,
|
|
662
|
+
ReactConstants.UNSET,
|
|
663
|
+
paint,
|
|
664
|
+
)
|
|
665
|
+
|
|
666
|
+
// Calculate visual bounds width from unconstrained layout
|
|
667
|
+
var desiredVisualWidth = 0f
|
|
668
|
+
for (i in 0 until unconstrainedLayout.lineCount) {
|
|
669
|
+
val lineWidth = unconstrainedLayout.getLineRight(i) - unconstrainedLayout.getLineLeft(i)
|
|
670
|
+
desiredVisualWidth = max(desiredVisualWidth, lineWidth)
|
|
671
|
+
}
|
|
624
672
|
|
|
625
673
|
val layoutWidth =
|
|
626
674
|
when (widthYogaMeasureMode) {
|
|
627
|
-
YogaMeasureMode.
|
|
628
|
-
|
|
629
|
-
else -> desiredWidth
|
|
675
|
+
YogaMeasureMode.AT_MOST -> min(ceil(desiredVisualWidth).toInt(), floor(width).toInt())
|
|
676
|
+
else -> ceil(desiredVisualWidth).toInt()
|
|
630
677
|
}
|
|
631
678
|
|
|
679
|
+
// Step 2: Create final layout with correct width
|
|
680
|
+
return buildLayout(
|
|
681
|
+
text,
|
|
682
|
+
layoutWidth,
|
|
683
|
+
includeFontPadding,
|
|
684
|
+
textBreakStrategy,
|
|
685
|
+
hyphenationFrequency,
|
|
686
|
+
alignment,
|
|
687
|
+
justificationMode,
|
|
688
|
+
ellipsizeMode,
|
|
689
|
+
maxNumberOfLines,
|
|
690
|
+
paint,
|
|
691
|
+
)
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
private fun buildLayout(
|
|
695
|
+
text: Spannable,
|
|
696
|
+
layoutWidth: Int,
|
|
697
|
+
includeFontPadding: Boolean,
|
|
698
|
+
textBreakStrategy: Int,
|
|
699
|
+
hyphenationFrequency: Int,
|
|
700
|
+
alignment: Layout.Alignment,
|
|
701
|
+
justificationMode: Int,
|
|
702
|
+
ellipsizeMode: TextUtils.TruncateAt?,
|
|
703
|
+
maxNumberOfLines: Int,
|
|
704
|
+
paint: TextPaint,
|
|
705
|
+
): Layout {
|
|
632
706
|
val builder =
|
|
633
707
|
StaticLayout.Builder.obtain(text, 0, text.length, paint, layoutWidth)
|
|
634
708
|
.setAlignment(alignment)
|
|
@@ -649,6 +723,13 @@ internal object TextLayoutManager {
|
|
|
649
723
|
builder.setUseLineSpacingFromFallbacks(true)
|
|
650
724
|
}
|
|
651
725
|
|
|
726
|
+
if (
|
|
727
|
+
Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM &&
|
|
728
|
+
ReactNativeFeatureFlags.fixTextClippingAndroid15useBoundsForWidth()
|
|
729
|
+
) {
|
|
730
|
+
builder.setUseBoundsForWidth(true)
|
|
731
|
+
}
|
|
732
|
+
|
|
652
733
|
return builder.build()
|
|
653
734
|
}
|
|
654
735
|
|
|
@@ -902,21 +983,7 @@ internal object TextLayoutManager {
|
|
|
902
983
|
paint: TextPaint,
|
|
903
984
|
): Unit {
|
|
904
985
|
var boring = isBoring(text, paint)
|
|
905
|
-
var layout
|
|
906
|
-
createLayout(
|
|
907
|
-
text,
|
|
908
|
-
boring,
|
|
909
|
-
width,
|
|
910
|
-
widthYogaMeasureMode,
|
|
911
|
-
includeFontPadding,
|
|
912
|
-
textBreakStrategy,
|
|
913
|
-
hyphenationFrequency,
|
|
914
|
-
alignment,
|
|
915
|
-
justificationMode,
|
|
916
|
-
null,
|
|
917
|
-
ReactConstants.UNSET,
|
|
918
|
-
paint,
|
|
919
|
-
)
|
|
986
|
+
var layout: Layout
|
|
920
987
|
|
|
921
988
|
// Minimum font size is 4pts to match the iOS implementation.
|
|
922
989
|
val minimumFontSize =
|
|
@@ -929,20 +996,20 @@ internal object TextLayoutManager {
|
|
|
929
996
|
currentFontSize = max(currentFontSize, span.size).toInt()
|
|
930
997
|
}
|
|
931
998
|
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
//
|
|
942
|
-
//
|
|
943
|
-
currentFontSize
|
|
999
|
+
var intervalStart = minimumFontSize
|
|
1000
|
+
var intervalEnd = currentFontSize
|
|
1001
|
+
var previousFontSize = currentFontSize
|
|
1002
|
+
|
|
1003
|
+
// `true` instead of `intervalStart != intervalEnd` so that the last iteration where both are at
|
|
1004
|
+
// the same size goes through and updates all relevant objects with the final font size
|
|
1005
|
+
while (true) {
|
|
1006
|
+
// Always use the point closer to the end of the interval, this way at the end when
|
|
1007
|
+
// end - start == 1, we land at current = end instead of current = start. In the first case
|
|
1008
|
+
// one measurement may be enough if intervalEnd is small enough to fit. In the second case
|
|
1009
|
+
// we always end up doing two measurements to check whether intervalEnd would fit.
|
|
1010
|
+
val currentFontSize = (intervalStart + intervalEnd + 1) / 2
|
|
944
1011
|
|
|
945
|
-
val ratio = currentFontSize.toFloat() /
|
|
1012
|
+
val ratio = currentFontSize.toFloat() / previousFontSize.toFloat()
|
|
946
1013
|
paint.textSize = max((paint.textSize * ratio).toInt(), minimumFontSize).toFloat()
|
|
947
1014
|
|
|
948
1015
|
val sizeSpans = text.getSpans(0, text.length, ReactAbsoluteSizeSpan::class.java)
|
|
@@ -973,6 +1040,34 @@ internal object TextLayoutManager {
|
|
|
973
1040
|
ReactConstants.UNSET,
|
|
974
1041
|
paint,
|
|
975
1042
|
)
|
|
1043
|
+
|
|
1044
|
+
if (intervalStart == intervalEnd) {
|
|
1045
|
+
// everything is updated at this point
|
|
1046
|
+
break
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
val singleLineTextExceedsWidth = text.length == 1 && layout.getLineWidth(0) > width
|
|
1050
|
+
val exceedsHeight =
|
|
1051
|
+
heightYogaMeasureMode != YogaMeasureMode.UNDEFINED && layout.height > height
|
|
1052
|
+
val exceedsMaximumNumberOfLines =
|
|
1053
|
+
maximumNumberOfLines != ReactConstants.UNSET &&
|
|
1054
|
+
maximumNumberOfLines != 0 &&
|
|
1055
|
+
layout.lineCount > maximumNumberOfLines
|
|
1056
|
+
|
|
1057
|
+
if (
|
|
1058
|
+
currentFontSize > minimumFontSize &&
|
|
1059
|
+
(exceedsMaximumNumberOfLines || exceedsHeight || singleLineTextExceedsWidth)
|
|
1060
|
+
) {
|
|
1061
|
+
// Text doesn't fit the constraints. If intervalEnd - intervalStart == 1, it's known that
|
|
1062
|
+
// the correct font size is intervalStart. Set intervalEnd to match intervalStart and do one
|
|
1063
|
+
// more iteration to update layout correctly.
|
|
1064
|
+
intervalEnd = if (intervalEnd - intervalStart == 1) intervalStart else currentFontSize
|
|
1065
|
+
} else {
|
|
1066
|
+
// Text fits the constraints
|
|
1067
|
+
intervalStart = currentFontSize
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
previousFontSize = currentFontSize
|
|
976
1071
|
}
|
|
977
1072
|
}
|
|
978
1073
|
|
|
@@ -40,6 +40,7 @@ import com.facebook.react.bridge.UiThreadUtil.assertOnUiThread
|
|
|
40
40
|
import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
|
|
41
41
|
import com.facebook.react.common.ReactConstants.TAG
|
|
42
42
|
import com.facebook.react.config.ReactFeatureFlags
|
|
43
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
43
44
|
import com.facebook.react.touch.OnInterceptTouchEventListener
|
|
44
45
|
import com.facebook.react.touch.ReactHitSlopView
|
|
45
46
|
import com.facebook.react.touch.ReactInterceptingViewGroup
|
|
@@ -390,8 +391,17 @@ public open class ReactViewGroup public constructor(context: Context?) :
|
|
|
390
391
|
}
|
|
391
392
|
|
|
392
393
|
override var removeClippedSubviews: Boolean
|
|
393
|
-
get()
|
|
394
|
+
get() {
|
|
395
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
396
|
+
return false
|
|
397
|
+
}
|
|
398
|
+
return _removeClippedSubviews
|
|
399
|
+
}
|
|
394
400
|
set(newValue) {
|
|
401
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
402
|
+
return
|
|
403
|
+
}
|
|
404
|
+
|
|
395
405
|
if (newValue == _removeClippedSubviews) {
|
|
396
406
|
return
|
|
397
407
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt
CHANGED
|
@@ -195,18 +195,10 @@ public class ReactVirtualView(context: Context) :
|
|
|
195
195
|
val clippingRect = checkNotNull(clippingRect)
|
|
196
196
|
val parentScrollView = checkNotNull(parentScrollView) as ReactClippingViewGroup
|
|
197
197
|
|
|
198
|
-
if (
|
|
199
|
-
if (parentScrollView.removeClippedSubviews) {
|
|
200
|
-
parentScrollView.getClippingRect(clippingRect)
|
|
201
|
-
} else {
|
|
202
|
-
(parentScrollView as View).getDrawingRect(clippingRect)
|
|
203
|
-
}
|
|
204
|
-
} else {
|
|
205
|
-
if (!(parentScrollView.removeClippedSubviews ?: false)) {
|
|
206
|
-
super.updateClippingRect(excludedViews)
|
|
207
|
-
return
|
|
208
|
-
}
|
|
198
|
+
if (parentScrollView.removeClippedSubviews) {
|
|
209
199
|
parentScrollView.getClippingRect(clippingRect)
|
|
200
|
+
} else {
|
|
201
|
+
(parentScrollView as View).getDrawingRect(clippingRect)
|
|
210
202
|
}
|
|
211
203
|
|
|
212
204
|
clippingRect.intersect(targetRect)
|
|
@@ -216,19 +216,10 @@ public class ReactVirtualViewExperimental(context: Context) :
|
|
|
216
216
|
val clippingRect = checkNotNull(clippingRect)
|
|
217
217
|
val scrollView = checkNotNull(scrollView) as ReactClippingViewGroup
|
|
218
218
|
|
|
219
|
-
if (
|
|
220
|
-
if (scrollView.removeClippedSubviews) {
|
|
221
|
-
scrollView.getClippingRect(clippingRect)
|
|
222
|
-
} else {
|
|
223
|
-
(scrollView as View).getDrawingRect(clippingRect)
|
|
224
|
-
}
|
|
225
|
-
} else {
|
|
226
|
-
if (!(scrollView.removeClippedSubviews ?: false)) {
|
|
227
|
-
super.updateClippingRect(excludedViews)
|
|
228
|
-
return
|
|
229
|
-
}
|
|
230
|
-
|
|
219
|
+
if (scrollView.removeClippedSubviews) {
|
|
231
220
|
scrollView.getClippingRect(clippingRect)
|
|
221
|
+
} else {
|
|
222
|
+
(scrollView as View).getDrawingRect(clippingRect)
|
|
232
223
|
}
|
|
233
224
|
|
|
234
225
|
clippingRect.intersect(containerRelativeRect)
|
package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
#include <fbjni/ByteBuffer.h>
|
|
9
|
+
|
|
8
10
|
#include "JCxxInspectorPackagerConnectionWebSocket.h"
|
|
9
11
|
|
|
10
12
|
using namespace facebook::jni;
|
|
@@ -12,10 +14,35 @@ using namespace facebook::react::jsinspector_modern;
|
|
|
12
14
|
|
|
13
15
|
namespace facebook::react::jsinspector_modern {
|
|
14
16
|
|
|
17
|
+
namespace {
|
|
18
|
+
|
|
19
|
+
local_ref<JByteBuffer::javaobject> getReadOnlyByteBufferFromStringView(
|
|
20
|
+
std::string_view sv) {
|
|
21
|
+
auto buffer = JByteBuffer::wrapBytes(
|
|
22
|
+
const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(sv.data())),
|
|
23
|
+
sv.size());
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Return a read-only buffer that shares the underlying contents.
|
|
27
|
+
* This guards from accidential mutations on the Java side, since we did
|
|
28
|
+
* casting above.
|
|
29
|
+
*
|
|
30
|
+
* https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#asReadOnlyBuffer--
|
|
31
|
+
*/
|
|
32
|
+
static auto method =
|
|
33
|
+
buffer->javaClassStatic()->getMethod<JByteBuffer::javaobject()>(
|
|
34
|
+
"asReadOnlyBuffer");
|
|
35
|
+
return method(buffer);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} // namespace
|
|
39
|
+
|
|
15
40
|
void JCxxInspectorPackagerConnectionWebSocket::send(std::string_view message) {
|
|
16
41
|
static auto method =
|
|
17
|
-
javaClassStatic()->getMethod<void(
|
|
18
|
-
|
|
42
|
+
javaClassStatic()->getMethod<void(local_ref<JByteBuffer::javaobject>)>(
|
|
43
|
+
"send");
|
|
44
|
+
auto byteBuffer = getReadOnlyByteBufferFromStringView(message);
|
|
45
|
+
method(self(), byteBuffer);
|
|
19
46
|
}
|
|
20
47
|
|
|
21
48
|
void JCxxInspectorPackagerConnectionWebSocket::close() {
|