react-native-tvos 0.84.1-0 → 0.85.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/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/{jest/mocks/Vibration.js → Libraries/Animated/useAnimatedColor.d.ts} +5 -6
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/{jest/mocks/Clipboard.js → Libraries/Animated/useAnimatedValueXY.d.ts} +5 -6
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -8
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +1 -3
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +1 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -6
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +10 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +18 -1
- package/Libraries/Components/ScrollView/ScrollView.js +33 -10
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +12 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +7 -4
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TV/TVViewPropTypes.js +7 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/View.js +6 -0
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +15 -15
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +0 -6
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/RCTImageUtils.mm +37 -1
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +28 -30
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/TVViewConfig.js +1 -0
- package/Libraries/Network/RCTHTTPRequestHandler.h +9 -0
- package/Libraries/Network/RCTHTTPRequestHandler.mm +15 -1
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +12 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +11 -21
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -36
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +5 -4
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +7 -1
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +14 -12
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +1 -1
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/WebSocket/RCTReconnectingWebSocket.m +4 -1
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/README.md +52 -0
- package/React/Base/RCTBridge.mm +1 -1
- package/React/Base/RCTBundleURLProvider.mm +29 -8
- package/React/Base/RCTConvert.mm +3 -18
- package/React/Base/RCTDefines.h +7 -8
- package/React/Base/RCTDevSupportHttpHeaders.h +24 -0
- package/React/Base/RCTDevSupportHttpHeaders.m +65 -0
- package/React/Base/RCTJavaScriptLoader.h +1 -0
- package/React/Base/RCTJavaScriptLoader.mm +6 -2
- package/React/Base/RCTMultipartDataTask.h +9 -0
- package/React/Base/RCTMultipartDataTask.m +19 -1
- package/React/Base/RCTTVColorSupport.h +17 -0
- package/React/Base/RCTTVColorSupport.mm +23 -0
- package/React/Base/RCTUtils.mm +15 -6
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTActionSheetManager.mm +28 -3
- package/React/CoreModules/RCTClipboard.mm +5 -5
- package/React/CoreModules/RCTDevLoadingView.mm +1 -1
- package/React/CoreModules/RCTDevSettings.mm +8 -0
- package/React/CoreModules/RCTDeviceInfo.mm +4 -3
- package/React/CoreModules/RCTKeyboardObserver.mm +9 -2
- package/React/CoreModules/RCTLogBoxView.mm +4 -8
- package/React/CoreModules/RCTPerfMonitor.mm +5 -0
- package/React/CoreModules/RCTStatusBarManager.h +2 -0
- package/React/CoreModules/RCTWebSocketModule.h +6 -0
- package/React/CoreModules/RCTWebSocketModule.mm +14 -1
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +33 -22
- package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +66 -79
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +8 -8
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +4 -0
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +8 -4
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.h +2 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +81 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +16 -4
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +145 -8
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +10 -5
- package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +13 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +9 -13
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.h +2 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +42 -4
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +2 -1
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +92 -163
- package/React/Fabric/Mounting/RCTMountingManager.mm +8 -3
- package/React/Fabric/RCTScheduler.h +2 -0
- package/React/Fabric/RCTScheduler.mm +57 -0
- package/React/Fabric/RCTSurfacePointerHandler.mm +15 -9
- package/React/Fabric/RCTSurfacePresenter.mm +9 -0
- package/React/Fabric/RCTSurfaceTouchHandler.mm +4 -2
- package/React/Fabric/Surface/RCTFabricSurface.mm +4 -0
- package/React/Fabric/Utils/RCTLinearGradient.mm +4 -9
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +5 -1
- package/React/Modules/RCTLayoutAnimation.m +10 -0
- package/React/Modules/RCTUIManager.mm +2 -4
- package/React/Profiler/RCTProfile.m +2 -0
- package/React/React-RCTFabric.podspec +3 -0
- package/React/Views/RCTView.m +6 -1
- package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
- package/React-Core-prebuilt.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +120 -298
- package/ReactAndroid/build.gradle.kts +9 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +11 -101
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimationDriver.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +0 -26
- package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +19 -19
- package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +9 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +15 -15
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +8 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ScrollEndedListener.kt +70 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +36 -34
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +14 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +2 -8
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +17 -13
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +10 -19
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxContentView.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +74 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +110 -80
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +87 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +36 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +16 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +0 -29
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +2 -8
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +1258 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +37 -55
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +66 -96
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +14 -20
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +15 -21
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +74 -107
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +14 -20
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -15
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +4 -10
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +45 -74
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +17 -13
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.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/modules/websocket/WebSocketModule.kt +3 -4
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +2 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +9 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +12 -12
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +13 -7
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +14 -14
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +14 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +42 -28
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +8 -49
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +11 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +13 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +751 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +104 -781
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +7 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +7 -31
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +103 -759
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +14 -38
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +41 -170
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -962
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +50 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +33 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +25 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +46 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +45 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +40 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +34 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +33 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +42 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/UiModeUtils.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +9 -10
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +6 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +132 -16
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +1647 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +466 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +104 -10
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +71 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +2 -35
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +7 -30
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +20 -41
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +270 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +39 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +4 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +86 -111
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +243 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/SelectableTextViewManager.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +54 -77
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactLinkSpan.kt +10 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -75
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +5 -38
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ImportantForInteractionHelper.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -60
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +7 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +150 -296
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualViewManager.kt +11 -13
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +64 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +244 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +183 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +6 -0
- package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +38 -0
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +4 -4
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +7 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +50 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +11 -0
- package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +23 -0
- package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +37 -0
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +2 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +89 -131
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +19 -28
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -7
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +24 -60
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +12 -28
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +13 -6
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +2 -1
- package/{ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.cpp → ReactAndroid/src/main/jni/react/uimanager/StateWrapper.h} +7 -2
- package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +2 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +8 -1
- package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -2
- package/ReactCommon/React-Fabric.podspec +5 -6
- package/ReactCommon/React-FabricComponents.podspec +6 -8
- package/ReactCommon/cxxreact/ReactNativeVersion.h +8 -6
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +1 -1
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +25 -16
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +1 -1
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -30
- package/ReactCommon/jsinspector-modern/HostAgent.h +4 -11
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +33 -33
- package/ReactCommon/jsinspector-modern/HostTarget.h +23 -24
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +1 -2
- package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +4 -9
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +0 -1
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +164 -54
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +39 -4
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +12 -3
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +13 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +6 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +34 -18
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +19 -0
- package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +6 -95
- package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.cpp +122 -0
- package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +42 -0
- package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.cpp +27 -0
- package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +27 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +7 -45
- package/ReactCommon/jsinspector-modern/TracingAgent.h +0 -11
- package/ReactCommon/jsinspector-modern/UniqueMonostate.h +0 -4
- package/ReactCommon/jsinspector-modern/WeakList.h +60 -1
- package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +25 -21
- package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +21 -15
- package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +1 -1
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +3 -3
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionMultiSessionTest.cpp +692 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +10 -123
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.h +140 -0
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +158 -6
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +34 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +223 -4
- package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +31 -1
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +6 -9
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +4 -6
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +6 -17
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +4 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +27 -39
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +32 -47
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +153 -207
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -24
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +26 -38
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +56 -83
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -12
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -4
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +32 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +2 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +32 -47
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +14 -20
- package/ReactCommon/react/renderer/animated/AnimatedModule.h +1 -1
- package/ReactCommon/react/renderer/animated/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +108 -151
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +16 -11
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +80 -86
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +0 -1
- package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +0 -1
- package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +0 -2
- package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -2
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +32 -4
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +6 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +14 -21
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +3 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +6 -3
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +125 -63
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +33 -33
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +18 -8
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +39 -0
- package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -2
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +0 -6
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +0 -4
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +60 -0
- package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +3 -5
- package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm} +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropState.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm} +1 -1
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +1 -1
- package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +20 -0
- package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +1 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +6 -0
- package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +18 -1
- package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/scrollview/primitives.h +2 -11
- package/ReactCommon/react/renderer/components/scrollview/tests/ScrollViewTest.cpp +83 -3
- package/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +49 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +14 -14
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +3 -28
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +4 -4
- package/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +24 -0
- package/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +32 -0
- package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +1 -1
- package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +1 -1
- package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +2 -2
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +13 -1
- package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +2 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
- package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +15 -24
- package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -7
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +11 -1
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +4 -0
- package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +0 -3
- package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +57 -53
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -0
- package/ReactCommon/react/renderer/components/view/conversions.h +250 -2
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +19 -63
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
- package/ReactCommon/react/renderer/components/view/primitives.h +3 -86
- package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +215 -0
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +1 -1
- package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -1
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +1 -1
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +2 -2
- package/ReactCommon/react/renderer/core/EventEmitter.h +8 -8
- package/ReactCommon/react/renderer/core/EventPipe.h +1 -1
- package/ReactCommon/react/renderer/core/EventTarget.cpp +3 -3
- package/ReactCommon/react/renderer/core/EventTarget.h +7 -7
- package/ReactCommon/react/renderer/core/LayoutConstraints.h +0 -5
- package/ReactCommon/react/renderer/core/LayoutContext.h +0 -5
- package/ReactCommon/react/renderer/core/LayoutMetrics.h +0 -2
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +11 -21
- package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -1
- package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +4 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -7
- package/ReactCommon/react/renderer/core/RawPropsParser.h +2 -6
- package/ReactCommon/react/renderer/core/RawValue.h +1 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +33 -31
- package/ReactCommon/react/renderer/core/ShadowNode.h +19 -29
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +6 -6
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +14 -14
- package/ReactCommon/react/renderer/core/ShadowNodeFragment.cpp +4 -2
- package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +2 -2
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +57 -2
- package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +112 -140
- package/ReactCommon/react/renderer/css/CSSColor.h +7 -8
- package/ReactCommon/react/renderer/css/CSSColorFunction.h +38 -39
- package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +23 -17
- package/ReactCommon/react/renderer/css/CSSDataType.h +15 -10
- package/ReactCommon/react/renderer/css/CSSFilter.h +12 -17
- package/ReactCommon/react/renderer/css/CSSKeyword.h +8 -0
- package/ReactCommon/react/renderer/css/CSSList.h +11 -11
- package/ReactCommon/react/renderer/css/CSSRatio.h +4 -4
- package/ReactCommon/react/renderer/css/CSSShadow.h +7 -7
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +10 -6
- package/ReactCommon/react/renderer/css/CSSTokenizer.h +2 -0
- package/ReactCommon/react/renderer/css/CSSTransform.h +20 -20
- package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +4 -5
- package/ReactCommon/react/renderer/css/CSSValueParser.h +71 -67
- package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +11 -10
- package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +0 -1
- package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +0 -1
- package/ReactCommon/react/renderer/graphics/BackgroundSize.h +0 -1
- package/ReactCommon/react/renderer/graphics/Filter.h +3 -2
- package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +9 -15
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +7 -19
- package/ReactCommon/react/renderer/graphics/Point.h +0 -2
- package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -35
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
- package/ReactCommon/react/renderer/graphics/Rect.h +1 -9
- package/ReactCommon/react/renderer/graphics/RectangleCorners.h +1 -10
- package/ReactCommon/react/renderer/graphics/RectangleEdges.h +1 -10
- package/ReactCommon/react/renderer/graphics/Size.h +0 -5
- package/ReactCommon/react/renderer/graphics/Transform.cpp +0 -4
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -13
- package/ReactCommon/react/renderer/graphics/TransformUtils.h +95 -0
- package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -11
- package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +13 -1
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +0 -4
- package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +11 -12
- package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +4 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +1 -36
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +1 -9
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +1 -9
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +0 -5
- package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +51 -30
- package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +2 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +21 -38
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +153 -18
- package/ReactCommon/react/renderer/mounting/ShadowTree.h +30 -6
- package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
- package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -4
- package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -1
- package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +170 -0
- package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +0 -5
- package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +3 -3
- package/ReactCommon/react/renderer/mounting/stubs/StubView.cpp +0 -4
- package/ReactCommon/react/renderer/mounting/stubs/StubView.h +0 -1
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -4
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +0 -2
- package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -0
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +12 -4
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +2 -1
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +0 -5
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +0 -1
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +1 -1
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +28 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -2
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +6 -0
- package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +7 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +2 -2
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +18 -18
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +8 -7
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -5
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +3 -3
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +4 -3
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +15 -5
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +2 -2
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +10 -1
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +1 -1
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +1 -3
- package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +68 -38
- package/ReactCommon/react/renderer/uimanager/UIManager.h +17 -8
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +17 -5
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -0
- package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.cpp +19 -23
- package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +2 -3
- package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +13 -5
- package/ReactCommon/react/renderer/uimanager/primitives.h +16 -7
- package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +287 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +16 -2
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +11 -6
- package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +11 -0
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +17 -3
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +8 -1
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +8 -5
- package/ReactCommon/react/utils/ContextContainer.h +0 -2
- package/ReactCommon/yoga/yoga/YGNode.cpp +14 -0
- package/ReactCommon/yoga/yoga/YGValue.h +0 -4
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +7 -7
- package/ReactCommon/yoga/yoga/enums/YogaEnums.h +0 -1
- package/ReactCommon/yoga/yoga/node/LayoutResults.h +0 -3
- package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +0 -9
- package/ReactCommon/yoga/yoga/style/Style.h +0 -4
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/gradle/libs.versions.toml +1 -1
- package/index.js +9 -0
- package/index.js.flow +8 -1
- package/jest-preset.js +14 -18
- package/package.json +17 -17
- package/scripts/cocoapods/rncore.rb +111 -2
- package/scripts/cocoapods/utils.rb +2 -0
- package/scripts/codegen/templates/Package.swift.template +7 -0
- package/scripts/react_native_pods.rb +13 -6
- package/scripts/replace-rncore-version.js +12 -3
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +49 -82
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -12
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +1 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +1 -1
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js.flow +1 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/fmt.podspec +2 -2
- package/types/index.d.ts +2 -0
- package/types/public/ReactNativeTVTypes.d.ts +27 -2
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.h +0 -25
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +0 -321
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +0 -620
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +0 -1411
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -985
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +0 -403
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +0 -336
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +0 -135
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +0 -81
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +0 -72
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +0 -677
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +0 -218
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +0 -369
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +0 -156
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +0 -174
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +0 -58
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +0 -228
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +0 -305
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +0 -110
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +0 -62
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.java +0 -35
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +0 -279
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +0 -197
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -410
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +0 -113
- package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +0 -19
- package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +0 -38
- package/jest/MockNativeMethods.js +0 -27
- package/jest/RefreshControlMock.js +0 -32
- package/jest/assetFileTransformer.js +0 -33
- package/jest/local-setup.js +0 -29
- package/jest/mock.js +0 -39
- package/jest/mockComponent.js +0 -104
- package/jest/mockNativeComponent.js +0 -52
- package/jest/mocks/AccessibilityInfo.js +0 -62
- package/jest/mocks/ActivityIndicator.js +0 -23
- package/jest/mocks/AppState.js +0 -19
- package/jest/mocks/Image.js +0 -23
- package/jest/mocks/InitializeCore.js +0 -9
- package/jest/mocks/Linking.js +0 -28
- package/jest/mocks/Modal.js +0 -33
- package/jest/mocks/NativeComponentRegistry.js +0 -30
- package/jest/mocks/NativeModules.js +0 -239
- package/jest/mocks/RefreshControl.js +0 -31
- package/jest/mocks/RendererProxy.js +0 -45
- package/jest/mocks/ScrollView.js +0 -58
- package/jest/mocks/Text.js +0 -27
- package/jest/mocks/TextInput.js +0 -32
- package/jest/mocks/UIManager.js +0 -60
- package/jest/mocks/View.js +0 -27
- package/jest/mocks/ViewNativeComponent.js +0 -23
- package/jest/mocks/requireNativeComponent.js +0 -22
- package/jest/mocks/useColorScheme.js +0 -18
- package/jest/react-native-env.js +0 -17
- package/jest/renderer.js +0 -40
- package/jest/resolver.js +0 -32
- package/jest/setup.js +0 -140
- /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewMode.h +0 -0
- /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewRenderState.h +0 -0
- /package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/{InteropUiBlockListener.kt → InteropUIBlockListener.kt} +0 -0
- /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h} +0 -0
- /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h} +0 -0
- /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{RCTComponentViewHelpers.h → platform/ios/react/renderer/components/scrollview/RCTComponentViewHelpers.h} +0 -0
|
@@ -7,38 +7,25 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.uimanager;
|
|
9
9
|
|
|
10
|
-
import android.os.SystemClock;
|
|
11
10
|
import android.view.View;
|
|
12
|
-
import android.view.View.MeasureSpec;
|
|
13
11
|
import androidx.annotation.Nullable;
|
|
14
|
-
import com.facebook.common.logging.FLog;
|
|
15
|
-
import com.facebook.infer.annotation.Assertions;
|
|
16
|
-
import com.facebook.react.bridge.Arguments;
|
|
17
12
|
import com.facebook.react.bridge.Callback;
|
|
18
13
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
19
14
|
import com.facebook.react.bridge.ReadableArray;
|
|
20
15
|
import com.facebook.react.bridge.ReadableMap;
|
|
21
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
22
|
-
import com.facebook.react.bridge.WritableArray;
|
|
23
|
-
import com.facebook.react.common.ReactConstants;
|
|
24
16
|
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
|
|
25
17
|
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
|
|
26
18
|
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
|
|
27
|
-
import com.facebook.react.common.build.ReactBuildConfig;
|
|
28
|
-
import com.facebook.react.modules.i18nmanager.I18nUtil;
|
|
29
19
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
30
|
-
import
|
|
31
|
-
import com.facebook.systrace.SystraceMessage;
|
|
32
|
-
import com.facebook.yoga.YogaConstants;
|
|
33
|
-
import com.facebook.yoga.YogaDirection;
|
|
34
|
-
import java.util.ArrayList;
|
|
35
|
-
import java.util.Arrays;
|
|
36
|
-
import java.util.List;
|
|
20
|
+
import java.util.HashMap;
|
|
37
21
|
import java.util.Map;
|
|
38
22
|
|
|
39
23
|
/**
|
|
40
24
|
* A class that is used to receive React commands from JS and translate them into a shadow node
|
|
41
25
|
* hierarchy that is then mapped to a native view hierarchy.
|
|
26
|
+
*
|
|
27
|
+
* @deprecated This class is a stub retained for backward compatibility. It is part of the Legacy
|
|
28
|
+
* Architecture and will be removed in a future release.
|
|
42
29
|
*/
|
|
43
30
|
@LegacyArchitecture(logLevel = LegacyArchitectureLogLevel.ERROR)
|
|
44
31
|
@Deprecated(
|
|
@@ -49,26 +36,6 @@ public class UIImplementation {
|
|
|
49
36
|
"UIImplementation", LegacyArchitectureLogLevel.ERROR);
|
|
50
37
|
}
|
|
51
38
|
|
|
52
|
-
protected Object uiImplementationThreadLock = new Object();
|
|
53
|
-
|
|
54
|
-
protected final EventDispatcher mEventDispatcher;
|
|
55
|
-
protected final ReactApplicationContext mReactContext;
|
|
56
|
-
protected final ShadowNodeRegistry mShadowNodeRegistry = new ShadowNodeRegistry();
|
|
57
|
-
private final ViewManagerRegistry mViewManagers;
|
|
58
|
-
private final UIViewOperationQueue mOperationsQueue;
|
|
59
|
-
private final NativeViewHierarchyOptimizer mNativeViewHierarchyOptimizer;
|
|
60
|
-
private final int[] mMeasureBuffer = new int[4];
|
|
61
|
-
|
|
62
|
-
private long mLastCalculateLayoutTime = 0;
|
|
63
|
-
protected @Nullable LayoutUpdateListener mLayoutUpdateListener;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* When react instance is being shutdown, there could be some pending operations queued in the JS
|
|
67
|
-
* thread. This flag ensures view related operations are not triggered if the Catalyst instance
|
|
68
|
-
* was destroyed.
|
|
69
|
-
*/
|
|
70
|
-
private volatile boolean mViewOperationsEnabled = true;
|
|
71
|
-
|
|
72
39
|
/** Interface definition for a callback to be invoked when the layout has been updated */
|
|
73
40
|
public interface LayoutUpdateListener {
|
|
74
41
|
|
|
@@ -80,107 +47,67 @@ public class UIImplementation {
|
|
|
80
47
|
ReactApplicationContext reactContext,
|
|
81
48
|
ViewManagerRegistry viewManagers,
|
|
82
49
|
EventDispatcher eventDispatcher,
|
|
83
|
-
int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
84
|
-
this(
|
|
85
|
-
reactContext,
|
|
86
|
-
viewManagers,
|
|
87
|
-
new UIViewOperationQueue(
|
|
88
|
-
reactContext,
|
|
89
|
-
new NativeViewHierarchyManager(viewManagers),
|
|
90
|
-
minTimeLeftInFrameForNonBatchedOperationMs),
|
|
91
|
-
eventDispatcher);
|
|
92
|
-
}
|
|
50
|
+
int minTimeLeftInFrameForNonBatchedOperationMs) {}
|
|
93
51
|
|
|
94
52
|
protected UIImplementation(
|
|
95
53
|
ReactApplicationContext reactContext,
|
|
96
54
|
ViewManagerRegistry viewManagers,
|
|
97
55
|
UIViewOperationQueue operationsQueue,
|
|
98
|
-
EventDispatcher eventDispatcher) {
|
|
99
|
-
mReactContext = reactContext;
|
|
100
|
-
mViewManagers = viewManagers;
|
|
101
|
-
mOperationsQueue = operationsQueue;
|
|
102
|
-
mNativeViewHierarchyOptimizer =
|
|
103
|
-
new NativeViewHierarchyOptimizer(mOperationsQueue, mShadowNodeRegistry);
|
|
104
|
-
mEventDispatcher = eventDispatcher;
|
|
105
|
-
}
|
|
56
|
+
EventDispatcher eventDispatcher) {}
|
|
106
57
|
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated This method is a stub and always returns null.
|
|
60
|
+
*/
|
|
107
61
|
protected ReactShadowNode createRootShadowNode() {
|
|
108
|
-
|
|
109
|
-
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
|
|
110
|
-
if (sharedI18nUtilInstance.isRTL(mReactContext)) {
|
|
111
|
-
rootCSSNode.setLayoutDirection(YogaDirection.RTL);
|
|
112
|
-
}
|
|
113
|
-
rootCSSNode.setViewClassName("Root");
|
|
114
|
-
return rootCSSNode;
|
|
62
|
+
return null;
|
|
115
63
|
}
|
|
116
64
|
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated This method is a stub and always returns null.
|
|
67
|
+
*/
|
|
117
68
|
protected ReactShadowNode createShadowNode(String className) {
|
|
118
|
-
|
|
119
|
-
return viewManager.createShadowNodeInstance(mReactContext);
|
|
69
|
+
return null;
|
|
120
70
|
}
|
|
121
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated This method is a stub and always returns null.
|
|
74
|
+
*/
|
|
122
75
|
public final ReactShadowNode resolveShadowNode(int reactTag) {
|
|
123
|
-
return
|
|
76
|
+
return null;
|
|
124
77
|
}
|
|
125
78
|
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated This method is a stub and always returns null.
|
|
81
|
+
*/
|
|
126
82
|
protected final @Nullable ViewManager resolveViewManager(String className) {
|
|
127
|
-
return
|
|
83
|
+
return null;
|
|
128
84
|
}
|
|
129
85
|
|
|
130
86
|
/*package*/ UIViewOperationQueue getUIViewOperationQueue() {
|
|
131
|
-
return
|
|
87
|
+
return null;
|
|
132
88
|
}
|
|
133
89
|
|
|
134
90
|
/**
|
|
135
91
|
* Updates the styles of the {@link ReactShadowNode} based on the Measure specs received by
|
|
136
92
|
* parameters.
|
|
137
93
|
*/
|
|
138
|
-
public void updateRootView(int tag, int widthMeasureSpec, int heightMeasureSpec) {
|
|
139
|
-
ReactShadowNode rootCSSNode = mShadowNodeRegistry.getNode(tag);
|
|
140
|
-
if (rootCSSNode == null) {
|
|
141
|
-
FLog.w(ReactConstants.TAG, "Tried to update non-existent root tag: " + tag);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
updateRootView(rootCSSNode, widthMeasureSpec, heightMeasureSpec);
|
|
145
|
-
}
|
|
94
|
+
public void updateRootView(int tag, int widthMeasureSpec, int heightMeasureSpec) {}
|
|
146
95
|
|
|
147
96
|
/**
|
|
148
97
|
* Updates the styles of the {@link ReactShadowNode} based on the Measure specs received by
|
|
149
98
|
* parameters.
|
|
150
99
|
*/
|
|
151
100
|
public void updateRootView(
|
|
152
|
-
ReactShadowNode rootCSSNode, int widthMeasureSpec, int heightMeasureSpec) {
|
|
153
|
-
rootCSSNode.setMeasureSpecs(widthMeasureSpec, heightMeasureSpec);
|
|
154
|
-
}
|
|
101
|
+
ReactShadowNode rootCSSNode, int widthMeasureSpec, int heightMeasureSpec) {}
|
|
155
102
|
|
|
156
103
|
/**
|
|
157
104
|
* Registers a root node with a given tag, size and ThemedReactContext and adds it to a node
|
|
158
105
|
* registry.
|
|
159
106
|
*/
|
|
160
|
-
public <T extends View> void registerRootView(T rootView, int tag, ThemedReactContext context) {
|
|
161
|
-
synchronized (uiImplementationThreadLock) {
|
|
162
|
-
final ReactShadowNode rootCSSNode = createRootShadowNode();
|
|
163
|
-
rootCSSNode.setReactTag(tag); // Thread safety needed here
|
|
164
|
-
rootCSSNode.setThemedContext(context);
|
|
165
|
-
|
|
166
|
-
context.runOnNativeModulesQueueThread(
|
|
167
|
-
new Runnable() {
|
|
168
|
-
@Override
|
|
169
|
-
public void run() {
|
|
170
|
-
mShadowNodeRegistry.addRootNode(rootCSSNode);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
// register it within NativeViewHierarchyManager
|
|
175
|
-
mOperationsQueue.addRootView(tag, rootView);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
107
|
+
public <T extends View> void registerRootView(T rootView, int tag, ThemedReactContext context) {}
|
|
178
108
|
|
|
179
109
|
/** Unregisters a root node with a given tag. */
|
|
180
|
-
public void removeRootView(int rootViewTag) {
|
|
181
|
-
removeRootShadowNode(rootViewTag);
|
|
182
|
-
mOperationsQueue.enqueueRemoveRootView(rootViewTag);
|
|
183
|
-
}
|
|
110
|
+
public void removeRootView(int rootViewTag) {}
|
|
184
111
|
|
|
185
112
|
/**
|
|
186
113
|
* Return root view num
|
|
@@ -188,122 +115,45 @@ public class UIImplementation {
|
|
|
188
115
|
* @return The num of root view
|
|
189
116
|
*/
|
|
190
117
|
public int getRootViewNum() {
|
|
191
|
-
return
|
|
118
|
+
return 0;
|
|
192
119
|
}
|
|
193
120
|
|
|
194
121
|
/** Unregisters a root node with a given tag from the shadow node registry */
|
|
195
|
-
public void removeRootShadowNode(int rootViewTag) {
|
|
196
|
-
synchronized (uiImplementationThreadLock) {
|
|
197
|
-
mShadowNodeRegistry.removeRootNode(rootViewTag); // Thread safety needed here
|
|
198
|
-
}
|
|
199
|
-
}
|
|
122
|
+
public void removeRootShadowNode(int rootViewTag) {}
|
|
200
123
|
|
|
201
124
|
/**
|
|
202
125
|
* Invoked when native view that corresponds to a root node, or acts as a root view (ie. Modals)
|
|
203
126
|
* has its size changed.
|
|
204
127
|
*/
|
|
205
|
-
public void updateNodeSize(int nodeViewTag, int newWidth, int newHeight) {
|
|
206
|
-
ReactShadowNode cssNode = mShadowNodeRegistry.getNode(nodeViewTag);
|
|
207
|
-
if (cssNode == null) {
|
|
208
|
-
FLog.w(ReactConstants.TAG, "Tried to update size of non-existent tag: " + nodeViewTag);
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
cssNode.setStyleWidth(newWidth);
|
|
212
|
-
cssNode.setStyleHeight(newHeight);
|
|
213
|
-
|
|
214
|
-
dispatchViewUpdatesIfNeeded();
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
public void updateInsetsPadding(int nodeViewTag, int top, int left, int bottom, int right) {
|
|
218
|
-
ReactShadowNode cssNode = mShadowNodeRegistry.getNode(nodeViewTag);
|
|
219
|
-
if (cssNode == null) {
|
|
220
|
-
FLog.w(ReactConstants.TAG, "Tried to update size of non-existent tag: " + nodeViewTag);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
cssNode.setPadding(Spacing.START, (float) left);
|
|
224
|
-
cssNode.setPadding(Spacing.TOP, (float) top);
|
|
225
|
-
cssNode.setPadding(Spacing.END, (float) right);
|
|
226
|
-
cssNode.setPadding(Spacing.BOTTOM, (float) bottom);
|
|
227
|
-
|
|
228
|
-
dispatchViewUpdatesIfNeeded();
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
public void setViewLocalData(int tag, Object data) {
|
|
232
|
-
ReactShadowNode shadowNode = mShadowNodeRegistry.getNode(tag);
|
|
233
|
-
|
|
234
|
-
if (shadowNode == null) {
|
|
235
|
-
FLog.w(ReactConstants.TAG, "Attempt to set local data for view with unknown tag: " + tag);
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
128
|
+
public void updateNodeSize(int nodeViewTag, int newWidth, int newHeight) {}
|
|
238
129
|
|
|
239
|
-
|
|
130
|
+
/** Updates the insets padding for a given view. */
|
|
131
|
+
public void updateInsetsPadding(int nodeViewTag, int top, int left, int bottom, int right) {}
|
|
240
132
|
|
|
241
|
-
|
|
242
|
-
}
|
|
133
|
+
/** Sets local data for a shadow node. */
|
|
134
|
+
public void setViewLocalData(int tag, Object data) {}
|
|
243
135
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
136
|
+
/** Profiles the next batch of operations. */
|
|
137
|
+
public void profileNextBatch() {}
|
|
247
138
|
|
|
139
|
+
/**
|
|
140
|
+
* Returns profiled batch performance counters.
|
|
141
|
+
*
|
|
142
|
+
* @return an empty map (stub)
|
|
143
|
+
*/
|
|
248
144
|
public Map<String, Long> getProfiledBatchPerfCounters() {
|
|
249
|
-
return
|
|
145
|
+
return new HashMap<>();
|
|
250
146
|
}
|
|
251
147
|
|
|
252
148
|
/** Invoked by React to create a new node with a given tag, class name and properties. */
|
|
253
|
-
public void createView(int tag, String className, int rootViewTag, ReadableMap props) {
|
|
254
|
-
if (!mViewOperationsEnabled) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
synchronized (uiImplementationThreadLock) {
|
|
259
|
-
ReactShadowNode cssNode = createShadowNode(className);
|
|
260
|
-
ReactShadowNode rootNode = mShadowNodeRegistry.getNode(rootViewTag);
|
|
261
|
-
Assertions.assertNotNull(rootNode, "Root node with tag " + rootViewTag + " doesn't exist");
|
|
262
|
-
cssNode.setReactTag(tag); // Thread safety needed here
|
|
263
|
-
cssNode.setViewClassName(className);
|
|
264
|
-
cssNode.setRootTag(rootNode.getReactTag());
|
|
265
|
-
cssNode.setThemedContext(rootNode.getThemedContext());
|
|
266
|
-
|
|
267
|
-
mShadowNodeRegistry.addNode(cssNode);
|
|
268
|
-
|
|
269
|
-
ReactStylesDiffMap styles = null;
|
|
270
|
-
if (props != null) {
|
|
271
|
-
styles = new ReactStylesDiffMap(props);
|
|
272
|
-
cssNode.updateProperties(styles);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
handleCreateView(cssNode, rootViewTag, styles);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
149
|
+
public void createView(int tag, String className, int rootViewTag, ReadableMap props) {}
|
|
278
150
|
|
|
151
|
+
/** Handles the creation of a view from a shadow node. */
|
|
279
152
|
protected void handleCreateView(
|
|
280
|
-
ReactShadowNode cssNode, int rootViewTag, @Nullable ReactStylesDiffMap styles) {
|
|
281
|
-
if (!cssNode.isVirtual()) {
|
|
282
|
-
mNativeViewHierarchyOptimizer.handleCreateView(cssNode, cssNode.getThemedContext(), styles);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
153
|
+
ReactShadowNode cssNode, int rootViewTag, @Nullable ReactStylesDiffMap styles) {}
|
|
285
154
|
|
|
286
155
|
/** Invoked by React to create a new node with a given tag has its properties changed. */
|
|
287
|
-
public void updateView(int tag, String className, ReadableMap props) {
|
|
288
|
-
if (!mViewOperationsEnabled) {
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
ViewManager viewManager = mViewManagers.get(className);
|
|
293
|
-
if (viewManager == null) {
|
|
294
|
-
throw new IllegalViewOperationException("Got unknown view type: " + className);
|
|
295
|
-
}
|
|
296
|
-
ReactShadowNode cssNode = mShadowNodeRegistry.getNode(tag);
|
|
297
|
-
if (cssNode == null) {
|
|
298
|
-
throw new IllegalViewOperationException("Trying to update non-existent view with tag " + tag);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
if (props != null) {
|
|
302
|
-
ReactStylesDiffMap styles = new ReactStylesDiffMap(props);
|
|
303
|
-
cssNode.updateProperties(styles);
|
|
304
|
-
handleUpdateView(cssNode, className, styles);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
156
|
+
public void updateView(int tag, String className, ReadableMap props) {}
|
|
307
157
|
|
|
308
158
|
/**
|
|
309
159
|
* Used by native animated module to bypass the process of updating the values through the shadow
|
|
@@ -311,26 +161,21 @@ public class UIImplementation {
|
|
|
311
161
|
* layout-related propertied won't be handled properly. Make sure you know what you're doing
|
|
312
162
|
* before calling this method :)
|
|
313
163
|
*/
|
|
314
|
-
public void synchronouslyUpdateViewOnUIThread(int tag, ReactStylesDiffMap props) {
|
|
315
|
-
UiThreadUtil.assertOnUiThread();
|
|
316
|
-
mOperationsQueue.getNativeViewHierarchyManager().updateProperties(tag, props);
|
|
317
|
-
}
|
|
164
|
+
public void synchronouslyUpdateViewOnUIThread(int tag, ReactStylesDiffMap props) {}
|
|
318
165
|
|
|
166
|
+
/** Handles the update of a view from a shadow node. */
|
|
319
167
|
protected void handleUpdateView(
|
|
320
|
-
ReactShadowNode cssNode, String className, ReactStylesDiffMap styles) {
|
|
321
|
-
if (!cssNode.isVirtual()) {
|
|
322
|
-
mNativeViewHierarchyOptimizer.handleUpdateView(cssNode, className, styles);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
168
|
+
ReactShadowNode cssNode, String className, ReactStylesDiffMap styles) {}
|
|
325
169
|
|
|
326
170
|
/**
|
|
327
171
|
* Invoked when there is a mutation in a node tree.
|
|
328
172
|
*
|
|
329
|
-
* @param
|
|
330
|
-
* @param
|
|
331
|
-
* @param
|
|
332
|
-
*
|
|
333
|
-
* @param
|
|
173
|
+
* @param viewTag react tag of the node we want to manage
|
|
174
|
+
* @param moveFrom ordered list of move-from indices
|
|
175
|
+
* @param moveTo ordered list of move-to indices
|
|
176
|
+
* @param addChildTags tags of views to add
|
|
177
|
+
* @param addAtIndices indices at which to add the views
|
|
178
|
+
* @param removeFrom indices from which to remove views
|
|
334
179
|
*/
|
|
335
180
|
public void manageChildren(
|
|
336
181
|
int viewTag,
|
|
@@ -338,108 +183,7 @@ public class UIImplementation {
|
|
|
338
183
|
@Nullable ReadableArray moveTo,
|
|
339
184
|
@Nullable ReadableArray addChildTags,
|
|
340
185
|
@Nullable ReadableArray addAtIndices,
|
|
341
|
-
@Nullable ReadableArray removeFrom) {
|
|
342
|
-
if (!mViewOperationsEnabled) {
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
synchronized (uiImplementationThreadLock) {
|
|
347
|
-
ReactShadowNode cssNodeToManage = mShadowNodeRegistry.getNode(viewTag);
|
|
348
|
-
|
|
349
|
-
int numToMove = moveFrom == null ? 0 : moveFrom.size();
|
|
350
|
-
int numToAdd = addChildTags == null ? 0 : addChildTags.size();
|
|
351
|
-
int numToRemove = removeFrom == null ? 0 : removeFrom.size();
|
|
352
|
-
|
|
353
|
-
if (numToMove != 0 && (moveTo == null || numToMove != moveTo.size())) {
|
|
354
|
-
throw new IllegalViewOperationException("Size of moveFrom != size of moveTo!");
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
if (numToAdd != 0 && (addAtIndices == null || numToAdd != addAtIndices.size())) {
|
|
358
|
-
throw new IllegalViewOperationException("Size of addChildTags != size of addAtIndices!");
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// We treat moves as an add and a delete
|
|
362
|
-
ViewAtIndex[] viewsToAdd = new ViewAtIndex[numToMove + numToAdd];
|
|
363
|
-
int[] indicesToRemove = new int[numToMove + numToRemove];
|
|
364
|
-
int[] tagsToRemove = new int[indicesToRemove.length];
|
|
365
|
-
int[] tagsToDelete = new int[numToRemove];
|
|
366
|
-
|
|
367
|
-
if (numToMove > 0) {
|
|
368
|
-
Assertions.assertNotNull(moveFrom);
|
|
369
|
-
Assertions.assertNotNull(moveTo);
|
|
370
|
-
for (int i = 0; i < numToMove; i++) {
|
|
371
|
-
int moveFromIndex = moveFrom.getInt(i);
|
|
372
|
-
int tagToMove = cssNodeToManage.getChildAt(moveFromIndex).getReactTag();
|
|
373
|
-
viewsToAdd[i] = new ViewAtIndex(tagToMove, moveTo.getInt(i));
|
|
374
|
-
indicesToRemove[i] = moveFromIndex;
|
|
375
|
-
tagsToRemove[i] = tagToMove;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
if (numToAdd > 0) {
|
|
380
|
-
Assertions.assertNotNull(addChildTags);
|
|
381
|
-
Assertions.assertNotNull(addAtIndices);
|
|
382
|
-
for (int i = 0; i < numToAdd; i++) {
|
|
383
|
-
int viewTagToAdd = addChildTags.getInt(i);
|
|
384
|
-
int indexToAddAt = addAtIndices.getInt(i);
|
|
385
|
-
viewsToAdd[numToMove + i] = new ViewAtIndex(viewTagToAdd, indexToAddAt);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
if (numToRemove > 0) {
|
|
390
|
-
Assertions.assertNotNull(removeFrom);
|
|
391
|
-
for (int i = 0; i < numToRemove; i++) {
|
|
392
|
-
int indexToRemove = removeFrom.getInt(i);
|
|
393
|
-
int tagToRemove = cssNodeToManage.getChildAt(indexToRemove).getReactTag();
|
|
394
|
-
indicesToRemove[numToMove + i] = indexToRemove;
|
|
395
|
-
tagsToRemove[numToMove + i] = tagToRemove;
|
|
396
|
-
tagsToDelete[i] = tagToRemove;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
// NB: moveFrom and removeFrom are both relative to the starting state of the View's children.
|
|
401
|
-
// moveTo and addAt are both relative to the final state of the View's children.
|
|
402
|
-
//
|
|
403
|
-
// 1) Sort the views to add and indices to remove by index
|
|
404
|
-
// 2) Iterate the indices being removed from high to low and remove them. Going high to low
|
|
405
|
-
// makes sure we remove the correct index when there are multiple to remove.
|
|
406
|
-
// 3) Iterate the views being added by index low to high and add them. Like the view removal,
|
|
407
|
-
// iteration direction is important to preserve the correct index.
|
|
408
|
-
|
|
409
|
-
Arrays.sort(viewsToAdd, ViewAtIndex.COMPARATOR);
|
|
410
|
-
Arrays.sort(indicesToRemove);
|
|
411
|
-
|
|
412
|
-
// Apply changes to CSSNodeDEPRECATED hierarchy
|
|
413
|
-
int lastIndexRemoved = -1;
|
|
414
|
-
for (int i = indicesToRemove.length - 1; i >= 0; i--) {
|
|
415
|
-
int indexToRemove = indicesToRemove[i];
|
|
416
|
-
if (indexToRemove == lastIndexRemoved) {
|
|
417
|
-
throw new IllegalViewOperationException(
|
|
418
|
-
"Repeated indices in Removal list for view tag: " + viewTag);
|
|
419
|
-
}
|
|
420
|
-
cssNodeToManage.removeChildAt(indicesToRemove[i]); // Thread safety needed here
|
|
421
|
-
|
|
422
|
-
lastIndexRemoved = indicesToRemove[i];
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
for (int i = 0; i < viewsToAdd.length; i++) {
|
|
426
|
-
ViewAtIndex viewAtIndex = viewsToAdd[i];
|
|
427
|
-
ReactShadowNode cssNodeToAdd = mShadowNodeRegistry.getNode(viewAtIndex.mTag);
|
|
428
|
-
if (cssNodeToAdd == null) {
|
|
429
|
-
throw new IllegalViewOperationException(
|
|
430
|
-
"Trying to add unknown view tag: " + viewAtIndex.mTag);
|
|
431
|
-
}
|
|
432
|
-
cssNodeToManage.addChildAt(cssNodeToAdd, viewAtIndex.mIndex);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
mNativeViewHierarchyOptimizer.handleManageChildren(
|
|
436
|
-
cssNodeToManage, indicesToRemove, tagsToRemove, viewsToAdd, tagsToDelete);
|
|
437
|
-
|
|
438
|
-
for (int i = 0; i < tagsToDelete.length; i++) {
|
|
439
|
-
removeShadowNode(mShadowNodeRegistry.getNode(tagsToDelete[i]));
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
}
|
|
186
|
+
@Nullable ReadableArray removeFrom) {}
|
|
443
187
|
|
|
444
188
|
/**
|
|
445
189
|
* An optimized version of manageChildren that is used for initial setting of child views. The
|
|
@@ -448,61 +192,12 @@ public class UIImplementation {
|
|
|
448
192
|
* @param viewTag tag of the parent
|
|
449
193
|
* @param childrenTags tags of the children
|
|
450
194
|
*/
|
|
451
|
-
public void setChildren(int viewTag, ReadableArray childrenTags) {
|
|
452
|
-
if (!mViewOperationsEnabled) {
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
synchronized (uiImplementationThreadLock) {
|
|
457
|
-
ReactShadowNode cssNodeToManage = mShadowNodeRegistry.getNode(viewTag);
|
|
458
|
-
|
|
459
|
-
for (int i = 0; i < childrenTags.size(); i++) {
|
|
460
|
-
ReactShadowNode cssNodeToAdd = mShadowNodeRegistry.getNode(childrenTags.getInt(i));
|
|
461
|
-
if (cssNodeToAdd == null) {
|
|
462
|
-
throw new IllegalViewOperationException(
|
|
463
|
-
"Trying to add unknown view tag: " + childrenTags.getInt(i));
|
|
464
|
-
}
|
|
465
|
-
cssNodeToManage.addChildAt(cssNodeToAdd, i);
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
mNativeViewHierarchyOptimizer.handleSetChildren(cssNodeToManage, childrenTags);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
195
|
+
public void setChildren(int viewTag, ReadableArray childrenTags) {}
|
|
471
196
|
|
|
472
197
|
/**
|
|
473
198
|
* Replaces the View specified by oldTag with the View specified by newTag within oldTag's parent.
|
|
474
199
|
*/
|
|
475
|
-
public void replaceExistingNonRootView(int oldTag, int newTag) {
|
|
476
|
-
if (mShadowNodeRegistry.isRootNode(oldTag) || mShadowNodeRegistry.isRootNode(newTag)) {
|
|
477
|
-
throw new IllegalViewOperationException("Trying to add or replace a root tag!");
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
ReactShadowNode oldNode = mShadowNodeRegistry.getNode(oldTag);
|
|
481
|
-
if (oldNode == null) {
|
|
482
|
-
throw new IllegalViewOperationException("Trying to replace unknown view tag: " + oldTag);
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
ReactShadowNode parent = oldNode.getParent();
|
|
486
|
-
if (parent == null) {
|
|
487
|
-
throw new IllegalViewOperationException("Node is not attached to a parent: " + oldTag);
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
int oldIndex = parent.indexOf(oldNode);
|
|
491
|
-
if (oldIndex < 0) {
|
|
492
|
-
throw new IllegalStateException("Didn't find child tag in parent");
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
WritableArray tagsToAdd = Arguments.createArray();
|
|
496
|
-
tagsToAdd.pushInt(newTag);
|
|
497
|
-
|
|
498
|
-
WritableArray addAtIndices = Arguments.createArray();
|
|
499
|
-
addAtIndices.pushInt(oldIndex);
|
|
500
|
-
|
|
501
|
-
WritableArray indicesToRemove = Arguments.createArray();
|
|
502
|
-
indicesToRemove.pushInt(oldIndex);
|
|
503
|
-
|
|
504
|
-
manageChildren(parent.getReactTag(), null, null, tagsToAdd, addAtIndices, indicesToRemove);
|
|
505
|
-
}
|
|
200
|
+
public void replaceExistingNonRootView(int oldTag, int newTag) {}
|
|
506
201
|
|
|
507
202
|
/**
|
|
508
203
|
* Find the touch target child native view in the supplied root view hierarchy, given a react
|
|
@@ -516,9 +211,7 @@ public class UIImplementation {
|
|
|
516
211
|
* @param callback will be called if with the identified child view react ID, and measurement
|
|
517
212
|
* info. If no view was found, callback will be invoked with no data.
|
|
518
213
|
*/
|
|
519
|
-
public void findSubviewIn(int reactTag, float targetX, float targetY, Callback callback) {
|
|
520
|
-
mOperationsQueue.enqueueFindTargetForTouch(reactTag, targetX, targetY, callback);
|
|
521
|
-
}
|
|
214
|
+
public void findSubviewIn(int reactTag, float targetX, float targetY, Callback callback) {}
|
|
522
215
|
|
|
523
216
|
/**
|
|
524
217
|
* Check if the first shadow node is the descendant of the second shadow node
|
|
@@ -527,44 +220,20 @@ public class UIImplementation {
|
|
|
527
220
|
*/
|
|
528
221
|
@Deprecated
|
|
529
222
|
public void viewIsDescendantOf(
|
|
530
|
-
final int reactTag, final int ancestorReactTag, final Callback callback) {
|
|
531
|
-
ReactShadowNode node = mShadowNodeRegistry.getNode(reactTag);
|
|
532
|
-
ReactShadowNode ancestorNode = mShadowNodeRegistry.getNode(ancestorReactTag);
|
|
533
|
-
if (node == null || ancestorNode == null) {
|
|
534
|
-
callback.invoke(false);
|
|
535
|
-
return;
|
|
536
|
-
}
|
|
537
|
-
callback.invoke(node.isDescendantOf(ancestorNode));
|
|
538
|
-
}
|
|
223
|
+
final int reactTag, final int ancestorReactTag, final Callback callback) {}
|
|
539
224
|
|
|
540
225
|
/**
|
|
541
226
|
* Determines the location on screen, width, and height of the given view relative to the root
|
|
542
227
|
* view and returns the values via an async callback.
|
|
543
228
|
*/
|
|
544
|
-
public void measure(int reactTag, Callback callback) {
|
|
545
|
-
if (!mViewOperationsEnabled) {
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
// This method is called by the implementation of JS touchable interface (see Touchable.js for
|
|
550
|
-
// more details) at the moment of touch activation. That is after user starts the gesture from
|
|
551
|
-
// a touchable view with a given reactTag, or when user drag finger back into the press
|
|
552
|
-
// activation area of a touchable view that have been activated before.
|
|
553
|
-
mOperationsQueue.enqueueMeasure(reactTag, callback);
|
|
554
|
-
}
|
|
229
|
+
public void measure(int reactTag, Callback callback) {}
|
|
555
230
|
|
|
556
231
|
/**
|
|
557
232
|
* Determines the location on screen, width, and height of the given view relative to the device
|
|
558
233
|
* screen and returns the values via an async callback. This is the absolute position including
|
|
559
234
|
* things like the status bar
|
|
560
235
|
*/
|
|
561
|
-
public void measureInWindow(int reactTag, Callback callback) {
|
|
562
|
-
if (!mViewOperationsEnabled) {
|
|
563
|
-
return;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
mOperationsQueue.enqueueMeasureInWindow(reactTag, callback);
|
|
567
|
-
}
|
|
236
|
+
public void measureInWindow(int reactTag, Callback callback) {}
|
|
568
237
|
|
|
569
238
|
/**
|
|
570
239
|
* Measures the view specified by tag relative to the given ancestorTag. This means that the
|
|
@@ -573,121 +242,19 @@ public class UIImplementation {
|
|
|
573
242
|
* position always will be (0, 0) and method will only measure the view dimensions.
|
|
574
243
|
*/
|
|
575
244
|
public void measureLayout(
|
|
576
|
-
int tag, int ancestorTag, Callback errorCallback, Callback successCallback) {
|
|
577
|
-
if (!mViewOperationsEnabled) {
|
|
578
|
-
return;
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
try {
|
|
582
|
-
measureLayout(tag, ancestorTag, mMeasureBuffer);
|
|
583
|
-
float relativeX = PixelUtil.toDIPFromPixel(mMeasureBuffer[0]);
|
|
584
|
-
float relativeY = PixelUtil.toDIPFromPixel(mMeasureBuffer[1]);
|
|
585
|
-
float width = PixelUtil.toDIPFromPixel(mMeasureBuffer[2]);
|
|
586
|
-
float height = PixelUtil.toDIPFromPixel(mMeasureBuffer[3]);
|
|
587
|
-
successCallback.invoke(relativeX, relativeY, width, height);
|
|
588
|
-
} catch (IllegalViewOperationException e) {
|
|
589
|
-
errorCallback.invoke(e.getMessage());
|
|
590
|
-
}
|
|
591
|
-
}
|
|
245
|
+
int tag, int ancestorTag, Callback errorCallback, Callback successCallback) {}
|
|
592
246
|
|
|
593
247
|
/**
|
|
594
248
|
* Like {@link #measure} and {@link #measureLayout} but measures relative to the immediate parent.
|
|
595
249
|
*/
|
|
596
250
|
public void measureLayoutRelativeToParent(
|
|
597
|
-
int tag, Callback errorCallback, Callback successCallback) {
|
|
598
|
-
if (!mViewOperationsEnabled) {
|
|
599
|
-
return;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
try {
|
|
603
|
-
measureLayoutRelativeToParent(tag, mMeasureBuffer);
|
|
604
|
-
float relativeX = PixelUtil.toDIPFromPixel(mMeasureBuffer[0]);
|
|
605
|
-
float relativeY = PixelUtil.toDIPFromPixel(mMeasureBuffer[1]);
|
|
606
|
-
float width = PixelUtil.toDIPFromPixel(mMeasureBuffer[2]);
|
|
607
|
-
float height = PixelUtil.toDIPFromPixel(mMeasureBuffer[3]);
|
|
608
|
-
successCallback.invoke(relativeX, relativeY, width, height);
|
|
609
|
-
} catch (IllegalViewOperationException e) {
|
|
610
|
-
errorCallback.invoke(e.getMessage());
|
|
611
|
-
}
|
|
612
|
-
}
|
|
251
|
+
int tag, Callback errorCallback, Callback successCallback) {}
|
|
613
252
|
|
|
614
253
|
/** Invoked at the end of the transaction to commit any updates to the node hierarchy. */
|
|
615
|
-
public void dispatchViewUpdates(int batchId) {
|
|
616
|
-
SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT, "UIImplementation.dispatchViewUpdates")
|
|
617
|
-
.arg("batchId", batchId)
|
|
618
|
-
.flush();
|
|
619
|
-
final long commitStartTime = SystemClock.uptimeMillis();
|
|
620
|
-
try {
|
|
621
|
-
updateViewHierarchy();
|
|
622
|
-
mNativeViewHierarchyOptimizer.onBatchComplete();
|
|
623
|
-
mOperationsQueue.dispatchViewUpdates(batchId, commitStartTime, mLastCalculateLayoutTime);
|
|
624
|
-
} finally {
|
|
625
|
-
Systrace.endSection(Systrace.TRACE_TAG_REACT);
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
private void dispatchViewUpdatesIfNeeded() {
|
|
630
|
-
// If we are in the middle of a batch update, any additional changes
|
|
631
|
-
// will automatically be dispatched at the end of the batch.
|
|
632
|
-
// If we are not, we have to initiate new batch update.
|
|
633
|
-
// As all batches are executed as a single runnable on the event queue
|
|
634
|
-
// this should always be empty, but that calling architecture is an implementation detail.
|
|
635
|
-
if (mOperationsQueue.isEmpty()) {
|
|
636
|
-
dispatchViewUpdates(-1); // "-1" means "no associated batch id"
|
|
637
|
-
}
|
|
638
|
-
}
|
|
254
|
+
public void dispatchViewUpdates(int batchId) {}
|
|
639
255
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
try {
|
|
643
|
-
for (int i = 0; i < mShadowNodeRegistry.getRootNodeCount(); i++) {
|
|
644
|
-
int tag = mShadowNodeRegistry.getRootTag(i);
|
|
645
|
-
ReactShadowNode cssRoot = mShadowNodeRegistry.getNode(tag);
|
|
646
|
-
|
|
647
|
-
if (cssRoot.getWidthMeasureSpec() != null && cssRoot.getHeightMeasureSpec() != null) {
|
|
648
|
-
SystraceMessage.beginSection(
|
|
649
|
-
Systrace.TRACE_TAG_REACT, "UIImplementation.notifyOnBeforeLayoutRecursive")
|
|
650
|
-
.arg("rootTag", cssRoot.getReactTag())
|
|
651
|
-
.flush();
|
|
652
|
-
try {
|
|
653
|
-
notifyOnBeforeLayoutRecursive(cssRoot);
|
|
654
|
-
} finally {
|
|
655
|
-
Systrace.endSection(Systrace.TRACE_TAG_REACT);
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
calculateRootLayout(cssRoot);
|
|
659
|
-
SystraceMessage.beginSection(
|
|
660
|
-
Systrace.TRACE_TAG_REACT, "UIImplementation.applyUpdatesRecursive")
|
|
661
|
-
.arg("rootTag", cssRoot.getReactTag())
|
|
662
|
-
.flush();
|
|
663
|
-
try {
|
|
664
|
-
List<ReactShadowNode> onLayoutNodes = new ArrayList<>();
|
|
665
|
-
applyUpdatesRecursive(cssRoot, 0f, 0f, onLayoutNodes);
|
|
666
|
-
|
|
667
|
-
for (ReactShadowNode node : onLayoutNodes) {
|
|
668
|
-
mEventDispatcher.dispatchEvent(
|
|
669
|
-
OnLayoutEvent.obtain(
|
|
670
|
-
-1, /* surfaceId not used in classic renderer */
|
|
671
|
-
node.getReactTag(),
|
|
672
|
-
node.getScreenX(),
|
|
673
|
-
node.getScreenY(),
|
|
674
|
-
node.getScreenWidth(),
|
|
675
|
-
node.getScreenHeight()));
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
} finally {
|
|
679
|
-
Systrace.endSection(Systrace.TRACE_TAG_REACT);
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
if (mLayoutUpdateListener != null) {
|
|
683
|
-
mOperationsQueue.enqueueLayoutUpdateFinished(cssRoot, mLayoutUpdateListener);
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
} finally {
|
|
688
|
-
Systrace.endSection(Systrace.TRACE_TAG_REACT);
|
|
689
|
-
}
|
|
690
|
-
}
|
|
256
|
+
/** Updates the view hierarchy. */
|
|
257
|
+
protected void updateViewHierarchy() {}
|
|
691
258
|
|
|
692
259
|
/**
|
|
693
260
|
* LayoutAnimation API on Android is currently experimental. Therefore, it needs to be enabled
|
|
@@ -700,9 +267,7 @@ public class UIImplementation {
|
|
|
700
267
|
*
|
|
701
268
|
* @param enabled whether layout animation is enabled or not
|
|
702
269
|
*/
|
|
703
|
-
public void setLayoutAnimationEnabledExperimental(boolean enabled) {
|
|
704
|
-
mOperationsQueue.enqueueSetLayoutAnimationEnabled(enabled);
|
|
705
|
-
}
|
|
270
|
+
public void setLayoutAnimationEnabledExperimental(boolean enabled) {}
|
|
706
271
|
|
|
707
272
|
/**
|
|
708
273
|
* Configure an animation to be used for the native layout changes, and native views creation. The
|
|
@@ -714,285 +279,64 @@ public class UIImplementation {
|
|
|
714
279
|
* @param config the configuration of the animation for view addition/removal/update.
|
|
715
280
|
* @param success will be called when the animation completes, or when the animation get
|
|
716
281
|
* interrupted. In this case, callback parameter will be false.
|
|
717
|
-
* @param error will be called if there was an error processing the animation
|
|
718
282
|
*/
|
|
719
|
-
public void configureNextLayoutAnimation(ReadableMap config, Callback success) {
|
|
720
|
-
mOperationsQueue.enqueueConfigureLayoutAnimation(config, success);
|
|
721
|
-
}
|
|
283
|
+
public void configureNextLayoutAnimation(ReadableMap config, Callback success) {}
|
|
722
284
|
|
|
723
|
-
|
|
724
|
-
|
|
285
|
+
/** Sets the JS responder for a given react tag. */
|
|
286
|
+
public void setJSResponder(int reactTag, boolean blockNativeResponder) {}
|
|
725
287
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
// and it will be refactored when fabric supports JS Responder.
|
|
729
|
-
return;
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
// While loop removed due to NativeKind removal
|
|
733
|
-
mOperationsQueue.enqueueSetJSResponder(node.getReactTag(), reactTag, blockNativeResponder);
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
public void clearJSResponder() {
|
|
737
|
-
mOperationsQueue.enqueueClearJSResponder();
|
|
738
|
-
}
|
|
288
|
+
/** Clears the JS responder. */
|
|
289
|
+
public void clearJSResponder() {}
|
|
739
290
|
|
|
291
|
+
/**
|
|
292
|
+
* @deprecated Use {@link #dispatchViewManagerCommand(int, String, ReadableArray)} instead.
|
|
293
|
+
*/
|
|
740
294
|
@Deprecated
|
|
741
295
|
public void dispatchViewManagerCommand(
|
|
742
|
-
int reactTag, int commandId, @Nullable ReadableArray commandArgs) {
|
|
743
|
-
boolean viewExists =
|
|
744
|
-
checkOrAssertViewExists(reactTag, "dispatchViewManagerCommand: " + commandId);
|
|
745
|
-
if (!viewExists) {
|
|
746
|
-
return;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
mOperationsQueue.enqueueDispatchCommand(reactTag, commandId, commandArgs);
|
|
750
|
-
}
|
|
296
|
+
int reactTag, int commandId, @Nullable ReadableArray commandArgs) {}
|
|
751
297
|
|
|
298
|
+
/** Dispatches a view manager command. */
|
|
752
299
|
public void dispatchViewManagerCommand(
|
|
753
|
-
int reactTag, String commandId, @Nullable ReadableArray commandArgs) {
|
|
754
|
-
boolean viewExists =
|
|
755
|
-
checkOrAssertViewExists(reactTag, "dispatchViewManagerCommand: " + commandId);
|
|
756
|
-
if (!viewExists) {
|
|
757
|
-
return;
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
mOperationsQueue.enqueueDispatchCommand(reactTag, commandId, commandArgs);
|
|
761
|
-
}
|
|
300
|
+
int reactTag, String commandId, @Nullable ReadableArray commandArgs) {}
|
|
762
301
|
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
}
|
|
302
|
+
/** Sends an accessibility event for a given tag. */
|
|
303
|
+
public void sendAccessibilityEvent(int tag, int eventType) {}
|
|
766
304
|
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
}
|
|
305
|
+
/** Called when the host activity resumes. */
|
|
306
|
+
public void onHostResume() {}
|
|
770
307
|
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
}
|
|
308
|
+
/** Called when the host activity pauses. */
|
|
309
|
+
public void onHostPause() {}
|
|
774
310
|
|
|
311
|
+
/** Called when the host activity is destroyed. */
|
|
775
312
|
public void onHostDestroy() {}
|
|
776
313
|
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
mViewManagers.invalidate();
|
|
780
|
-
}
|
|
314
|
+
/** Called when the Catalyst instance is destroyed. */
|
|
315
|
+
public void onCatalystInstanceDestroyed() {}
|
|
781
316
|
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
nodeToRemove.dispose();
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
private void removeShadowNodeRecursive(ReactShadowNode nodeToRemove) {
|
|
788
|
-
NativeViewHierarchyOptimizer.handleRemoveNode(nodeToRemove);
|
|
789
|
-
mShadowNodeRegistry.removeNode(nodeToRemove.getReactTag());
|
|
790
|
-
for (int i = nodeToRemove.getChildCount() - 1; i >= 0; i--) {
|
|
791
|
-
removeShadowNodeRecursive(nodeToRemove.getChildAt(i));
|
|
792
|
-
}
|
|
793
|
-
nodeToRemove.removeAndDisposeAllChildren();
|
|
794
|
-
}
|
|
317
|
+
/** Removes a shadow node and all its descendants. */
|
|
318
|
+
protected final void removeShadowNode(ReactShadowNode nodeToRemove) {}
|
|
795
319
|
|
|
796
|
-
|
|
797
|
-
ReactShadowNode node = mShadowNodeRegistry.getNode(tag);
|
|
798
|
-
ReactShadowNode ancestor = mShadowNodeRegistry.getNode(ancestorTag);
|
|
799
|
-
if (node == null || ancestor == null) {
|
|
800
|
-
throw new IllegalViewOperationException(
|
|
801
|
-
"Tag " + (node == null ? tag : ancestorTag) + " does not exist");
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
if (node != ancestor) {
|
|
805
|
-
ReactShadowNode currentParent = node.getParent();
|
|
806
|
-
while (currentParent != ancestor) {
|
|
807
|
-
if (currentParent == null) {
|
|
808
|
-
throw new IllegalViewOperationException(
|
|
809
|
-
"Tag " + ancestorTag + " is not an ancestor of tag " + tag);
|
|
810
|
-
}
|
|
811
|
-
currentParent = currentParent.getParent();
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
measureLayoutRelativeToVerifiedAncestor(node, ancestor, outputBuffer);
|
|
816
|
-
}
|
|
320
|
+
protected void calculateRootLayout(ReactShadowNode cssRoot) {}
|
|
817
321
|
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
if (node == null) {
|
|
821
|
-
throw new IllegalViewOperationException("No native view for tag " + tag + " exists!");
|
|
822
|
-
}
|
|
823
|
-
ReactShadowNode parent = node.getParent();
|
|
824
|
-
if (parent == null) {
|
|
825
|
-
throw new IllegalViewOperationException("View with tag " + tag + " doesn't have a parent!");
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
measureLayoutRelativeToVerifiedAncestor(node, parent, outputBuffer);
|
|
829
|
-
}
|
|
322
|
+
/** Adds a UI block to be executed on the UI thread. */
|
|
323
|
+
public void addUIBlock(UIBlock block) {}
|
|
830
324
|
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
int offsetX = 0;
|
|
834
|
-
int offsetY = 0;
|
|
835
|
-
if (node != ancestor && !node.isVirtual()) {
|
|
836
|
-
offsetX = Math.round(node.getLayoutX());
|
|
837
|
-
offsetY = Math.round(node.getLayoutY());
|
|
838
|
-
ReactShadowNode current = node.getParent();
|
|
839
|
-
while (current != ancestor) {
|
|
840
|
-
Assertions.assertNotNull(current);
|
|
841
|
-
assertNodeDoesNotNeedCustomLayoutForChildren(current);
|
|
842
|
-
offsetX += Math.round(current.getLayoutX());
|
|
843
|
-
offsetY += Math.round(current.getLayoutY());
|
|
844
|
-
current = current.getParent();
|
|
845
|
-
}
|
|
846
|
-
assertNodeDoesNotNeedCustomLayoutForChildren(ancestor);
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
outputBuffer[0] = offsetX;
|
|
850
|
-
outputBuffer[1] = offsetY;
|
|
851
|
-
outputBuffer[2] = node.getScreenWidth();
|
|
852
|
-
outputBuffer[3] = node.getScreenHeight();
|
|
853
|
-
}
|
|
325
|
+
/** Prepends a UI block to be executed on the UI thread. */
|
|
326
|
+
public void prependUIBlock(UIBlock block) {}
|
|
854
327
|
|
|
855
328
|
/**
|
|
856
|
-
*
|
|
857
|
-
*
|
|
858
|
-
* return
|
|
329
|
+
* Resolves the root tag from a given react tag.
|
|
330
|
+
*
|
|
331
|
+
* @return 0 (stub)
|
|
859
332
|
*/
|
|
860
|
-
private boolean checkOrAssertViewExists(int reactTag, String operationNameForExceptionMessage) {
|
|
861
|
-
boolean viewExists = mShadowNodeRegistry.getNode(reactTag) != null;
|
|
862
|
-
if (viewExists) {
|
|
863
|
-
return true;
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
String message =
|
|
867
|
-
"Unable to execute operation "
|
|
868
|
-
+ operationNameForExceptionMessage
|
|
869
|
-
+ " on view with "
|
|
870
|
-
+ "tag: "
|
|
871
|
-
+ reactTag
|
|
872
|
-
+ ", since the view does not exist";
|
|
873
|
-
|
|
874
|
-
if (ReactBuildConfig.DEBUG) {
|
|
875
|
-
throw new IllegalViewOperationException(message);
|
|
876
|
-
} else {
|
|
877
|
-
FLog.w(ReactConstants.TAG, message);
|
|
878
|
-
return false;
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
private void assertNodeDoesNotNeedCustomLayoutForChildren(ReactShadowNode node) {
|
|
883
|
-
ViewManager viewManager = Assertions.assertNotNull(mViewManagers.get(node.getViewClass()));
|
|
884
|
-
IViewManagerWithChildren viewManagerWithChildren;
|
|
885
|
-
if (viewManager instanceof IViewManagerWithChildren) {
|
|
886
|
-
viewManagerWithChildren = (IViewManagerWithChildren) viewManager;
|
|
887
|
-
} else {
|
|
888
|
-
throw new IllegalViewOperationException(
|
|
889
|
-
"Trying to use view "
|
|
890
|
-
+ node.getViewClass()
|
|
891
|
-
+ " as a parent, but its Manager doesn't extends ViewGroupManager");
|
|
892
|
-
}
|
|
893
|
-
if (viewManagerWithChildren != null && viewManagerWithChildren.needsCustomLayoutForChildren()) {
|
|
894
|
-
throw new IllegalViewOperationException(
|
|
895
|
-
"Trying to measure a view using measureLayout/measureLayoutRelativeToParent relative to"
|
|
896
|
-
+ " an ancestor that requires custom layout for it's children ("
|
|
897
|
-
+ node.getViewClass()
|
|
898
|
-
+ "). Use measure instead.");
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
private void notifyOnBeforeLayoutRecursive(ReactShadowNode cssNode) {
|
|
903
|
-
if (!cssNode.hasUpdates()) {
|
|
904
|
-
return;
|
|
905
|
-
}
|
|
906
|
-
for (int i = 0; i < cssNode.getChildCount(); i++) {
|
|
907
|
-
notifyOnBeforeLayoutRecursive(cssNode.getChildAt(i));
|
|
908
|
-
}
|
|
909
|
-
cssNode.onBeforeLayout(mNativeViewHierarchyOptimizer);
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
protected void calculateRootLayout(ReactShadowNode cssRoot) {
|
|
913
|
-
SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT, "cssRoot.calculateLayout")
|
|
914
|
-
.arg("rootTag", cssRoot.getReactTag())
|
|
915
|
-
.flush();
|
|
916
|
-
long startTime = SystemClock.uptimeMillis();
|
|
917
|
-
try {
|
|
918
|
-
int widthSpec = cssRoot.getWidthMeasureSpec();
|
|
919
|
-
int heightSpec = cssRoot.getHeightMeasureSpec();
|
|
920
|
-
cssRoot.calculateLayout(
|
|
921
|
-
MeasureSpec.getMode(widthSpec) == MeasureSpec.UNSPECIFIED
|
|
922
|
-
? YogaConstants.UNDEFINED
|
|
923
|
-
: MeasureSpec.getSize(widthSpec),
|
|
924
|
-
MeasureSpec.getMode(heightSpec) == MeasureSpec.UNSPECIFIED
|
|
925
|
-
? YogaConstants.UNDEFINED
|
|
926
|
-
: MeasureSpec.getSize(heightSpec));
|
|
927
|
-
} finally {
|
|
928
|
-
Systrace.endSection(Systrace.TRACE_TAG_REACT);
|
|
929
|
-
mLastCalculateLayoutTime = SystemClock.uptimeMillis() - startTime;
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
protected void applyUpdatesRecursive(
|
|
934
|
-
ReactShadowNode cssNode,
|
|
935
|
-
float absoluteX,
|
|
936
|
-
float absoluteY,
|
|
937
|
-
List<ReactShadowNode> onLayoutNodes) {
|
|
938
|
-
if (!cssNode.hasUpdates()) {
|
|
939
|
-
return;
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
if (cssNode.dispatchUpdatesWillChangeLayout(absoluteX, absoluteY)
|
|
943
|
-
&& cssNode.shouldNotifyOnLayout()
|
|
944
|
-
&& !mShadowNodeRegistry.isRootNode(cssNode.getReactTag())) {
|
|
945
|
-
onLayoutNodes.add(cssNode);
|
|
946
|
-
}
|
|
947
|
-
|
|
948
|
-
Iterable<? extends ReactShadowNode> cssChildren = cssNode.calculateLayoutOnChildren();
|
|
949
|
-
if (cssChildren != null) {
|
|
950
|
-
for (ReactShadowNode cssChild : cssChildren) {
|
|
951
|
-
applyUpdatesRecursive(
|
|
952
|
-
cssChild,
|
|
953
|
-
absoluteX + cssNode.getLayoutX(),
|
|
954
|
-
absoluteY + cssNode.getLayoutY(),
|
|
955
|
-
onLayoutNodes);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
|
|
959
|
-
cssNode.dispatchUpdates(absoluteX, absoluteY, mOperationsQueue, mNativeViewHierarchyOptimizer);
|
|
960
|
-
|
|
961
|
-
cssNode.markUpdateSeen();
|
|
962
|
-
mNativeViewHierarchyOptimizer.onViewUpdatesCompleted(cssNode);
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
public void addUIBlock(UIBlock block) {
|
|
966
|
-
mOperationsQueue.enqueueUIBlock(block);
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
public void prependUIBlock(UIBlock block) {
|
|
970
|
-
mOperationsQueue.prependUIBlock(block);
|
|
971
|
-
}
|
|
972
|
-
|
|
973
333
|
public int resolveRootTagFromReactTag(int reactTag) {
|
|
974
|
-
|
|
975
|
-
return reactTag;
|
|
976
|
-
}
|
|
977
|
-
|
|
978
|
-
ReactShadowNode node = resolveShadowNode(reactTag);
|
|
979
|
-
int rootTag = 0;
|
|
980
|
-
if (node != null) {
|
|
981
|
-
rootTag = node.getRootTag();
|
|
982
|
-
} else {
|
|
983
|
-
FLog.w(
|
|
984
|
-
ReactConstants.TAG,
|
|
985
|
-
"Warning : attempted to resolve a non-existent react shadow node. reactTag=" + reactTag);
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
return rootTag;
|
|
334
|
+
return 0;
|
|
989
335
|
}
|
|
990
336
|
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
}
|
|
337
|
+
/** Sets a listener for layout updates. */
|
|
338
|
+
public void setLayoutUpdateListener(LayoutUpdateListener listener) {}
|
|
994
339
|
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
}
|
|
340
|
+
/** Removes the layout update listener. */
|
|
341
|
+
public void removeLayoutUpdateListener() {}
|
|
998
342
|
}
|