react-native-tvos 0.76.6-0 → 0.77.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.d.ts +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
- package/Libraries/Animated/animations/Animation.js +60 -25
- package/Libraries/Animated/animations/DecayAnimation.js +26 -38
- package/Libraries/Animated/animations/SpringAnimation.js +33 -39
- package/Libraries/Animated/animations/TimingAnimation.js +34 -42
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
- package/Libraries/Animated/createAnimatedComponent.js +60 -33
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
- package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
- package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +104 -46
- package/Libraries/Animated/nodes/AnimatedStyle.js +116 -39
- package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
- package/Libraries/Animated/useAnimatedProps.js +41 -35
- package/Libraries/AppDelegate/RCTAppDelegate.h +10 -64
- package/Libraries/AppDelegate/RCTAppDelegate.mm +23 -21
- package/Libraries/AppDelegate/RCTAppSetupUtils.h +5 -1
- package/Libraries/AppDelegate/RCTAppSetupUtils.mm +8 -14
- package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +32 -0
- package/Libraries/AppDelegate/RCTDependencyProvider.h +26 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +6 -2
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +27 -43
- package/Libraries/AppDelegate/RCTUIConfiguratorProtocol.h +56 -0
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -1
- package/Libraries/Blob/React-RCTBlob.podspec +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
- package/Libraries/Components/Button.js +9 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +7 -7
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
- package/Libraries/Components/ScrollView/ScrollView.js +51 -90
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
- package/Libraries/Components/Switch/Switch.js +8 -6
- package/Libraries/Components/TV/TVFocusGuideView.js +2 -5
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
- package/Libraries/Components/TextInput/TextInput.js +38 -14
- package/Libraries/Components/TextInput/TextInputState.js +11 -13
- package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
- package/Libraries/Components/Touchable/Position.js +7 -2
- package/Libraries/Components/Touchable/Touchable.js +4 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -7
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
- package/Libraries/Components/View/View.js +6 -11
- package/Libraries/Components/View/ViewNativeComponent.js +8 -111
- package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
- package/Libraries/Components/View/ViewPropTypes.js +0 -3
- package/Libraries/Core/ExceptionsManager.js +50 -29
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -10
- package/Libraries/Core/setUpDeveloperTools.js +1 -5
- package/Libraries/Core/setUpErrorHandling.js +20 -18
- package/Libraries/Core/setUpReactDevTools.js +107 -8
- package/Libraries/Core/setUpSegmentFetcher.js +1 -0
- package/Libraries/Core/setUpTimers.js +21 -18
- package/Libraries/Debugging/DebuggingOverlay.js +4 -5
- package/Libraries/Image/AssetSourceResolver.js +12 -1
- package/Libraries/Image/Image.android.js +1 -5
- package/Libraries/Image/Image.d.ts +20 -29
- package/Libraries/Image/Image.ios.js +0 -2
- package/Libraries/Image/ImageBackground.js +2 -5
- package/Libraries/Image/ImageProps.js +7 -6
- package/Libraries/Image/ImageResizeMode.d.ts +8 -1
- package/Libraries/Image/ImageResizeMode.js +4 -1
- package/Libraries/Image/ImageSource.d.ts +0 -2
- package/Libraries/Image/ImageSource.js +0 -2
- package/Libraries/Image/ImageTypes.flow.js +11 -9
- package/Libraries/Image/ImageUtils.js +6 -3
- package/Libraries/Image/ImageViewNativeComponent.js +5 -3
- package/Libraries/Image/RCTImageUtils.mm +2 -0
- package/Libraries/Image/RCTResizeMode.h +4 -1
- package/Libraries/Image/RCTResizeMode.mm +1 -0
- package/Libraries/Image/React-RCTImage.podspec +1 -1
- package/Libraries/Inspector/Inspector.js +1 -0
- package/Libraries/Inspector/NetworkOverlay.js +4 -0
- package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
- package/Libraries/Interaction/InteractionManager.js +6 -1
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/TouchHistoryMath.js +22 -19
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/LinkingIOS/RCTLinkingManager.mm +2 -1
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/Lists/FlatList.d.ts +1 -2
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/Lists/SectionListModern.js +7 -7
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +3 -3
- package/Libraries/LogBox/LogBox.js +18 -5
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
- package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.d.ts +12 -0
- package/Libraries/Modal/Modal.js +31 -4
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
- package/Libraries/NativeComponent/TVViewConfig.js +1 -0
- package/Libraries/Network/FormData.js +11 -3
- package/Libraries/Network/React-RCTNetwork.podspec +1 -1
- package/Libraries/Network/XHRInterceptor.js +63 -14
- package/Libraries/Network/XMLHttpRequest.js +26 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/Pressability.js +4 -5
- package/Libraries/Pressability/usePressability.js +4 -1
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.js +1 -11
- package/Libraries/ReactNative/DisplayMode.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
- package/Libraries/ReactNative/RendererImplementation.js +18 -17
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
- package/Libraries/ReactNative/renderApplication.js +9 -8
- package/Libraries/ReactNative/requireNativeComponent.js +5 -2
- package/Libraries/Renderer/shims/ReactFabric.js +3 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +3 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Settings/React-RCTSettings.podspec +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +7 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
- package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
- package/Libraries/StyleSheet/processTransform.js +3 -34
- package/Libraries/Text/RCTTextAttributes.h +1 -2
- package/Libraries/Text/RCTTextAttributes.mm +9 -13
- package/Libraries/Text/Text.js +248 -249
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +1 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +1 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.h +1 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +24 -2
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +1 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
- package/Libraries/Text/TextNativeComponent.js +0 -1
- package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
- package/Libraries/Types/CoreEventTypes.d.ts +3 -10
- package/Libraries/Types/CoreEventTypes.js +4 -6
- package/Libraries/Utilities/Appearance.js +3 -1
- package/Libraries/Utilities/BackHandler.android.js +6 -18
- package/Libraries/Utilities/BackHandler.d.ts +0 -4
- package/Libraries/Utilities/BackHandler.ios.js +3 -16
- package/Libraries/Utilities/BackHandler.js.flow +0 -4
- package/Libraries/Utilities/HMRClient.js +3 -4
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/setAndForwardRef.js +2 -2
- package/Libraries/Utilities/useMergeRefs.js +26 -7
- package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
- package/Libraries/WebSocket/WebSocketEvent.js +4 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/React/Base/RCTBridge.h +3 -0
- package/React/Base/RCTBridge.mm +12 -11
- package/React/Base/RCTBridgeModule.h +1 -9
- package/React/Base/RCTBridgeProxy.h +3 -0
- package/React/Base/RCTBridgeProxy.mm +10 -0
- package/React/Base/RCTCallInvoker.mm +5 -0
- package/React/Base/RCTConstants.h +2 -12
- package/React/Base/RCTConstants.m +3 -31
- package/React/Base/RCTConvert.mm +3 -0
- package/React/Base/RCTKeyCommands.m +0 -2
- package/React/Base/RCTModuleData.h +1 -7
- package/React/Base/RCTModuleData.mm +27 -34
- package/React/Base/RCTModuleMethod.mm +1 -1
- package/React/Base/RCTTouchEvent.m +1 -1
- package/React/Base/RCTUtils.h +1 -1
- package/React/Base/RCTUtils.m +9 -10
- package/React/Base/RCTVersion.m +2 -2
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +7 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -5
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +1 -1
- package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +57 -0
- package/React/CoreModules/RCTAccessibilityManager.h +1 -0
- package/React/CoreModules/RCTAccessibilityManager.mm +27 -0
- package/React/CoreModules/RCTActionSheetManager.mm +14 -7
- package/React/CoreModules/RCTAppearance.h +1 -1
- package/React/CoreModules/RCTAppearance.mm +8 -2
- package/React/CoreModules/RCTDevLoadingView.mm +42 -25
- package/React/CoreModules/RCTDevMenu.mm +5 -1
- package/{ReactAndroid/src/main/java/com/facebook/perftest/PerfTestConfig.java → React/CoreModules/RCTDevToolsRuntimeSettingsModule.h} +3 -7
- package/React/CoreModules/RCTDevToolsRuntimeSettingsModule.mm +58 -0
- package/React/CoreModules/RCTDeviceInfo.mm +4 -1
- package/React/CoreModules/RCTEventDispatcher.mm +1 -1
- package/React/CoreModules/RCTExceptionsManager.h +2 -6
- package/React/CoreModules/RCTExceptionsManager.mm +35 -30
- package/React/CoreModules/React-CoreModules.podspec +12 -2
- package/React/CxxBridge/RCTCxxBridge.mm +20 -23
- package/React/CxxModule/RCTCxxMethod.mm +10 -2
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -5
- package/React/DevSupport/RCTPackagerConnection.mm +11 -0
- package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +5 -1
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +2395 -0
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +2854 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +2982 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8201 -0
- package/React/Fabric/AppleEventBeat.cpp +31 -0
- package/{ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h → React/Fabric/AppleEventBeat.h} +8 -11
- package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +0 -8
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +3 -1
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +106 -59
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +2 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +35 -15
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +9 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +161 -96
- package/React/Fabric/Mounting/RCTMountingManager.h +1 -1
- package/React/Fabric/Mounting/RCTMountingManager.mm +1 -2
- package/React/Fabric/RCTScheduler.h +3 -2
- package/React/Fabric/RCTScheduler.mm +5 -8
- package/React/Fabric/RCTSurfacePointerHandler.mm +8 -6
- package/React/Fabric/RCTSurfacePresenter.mm +6 -18
- package/React/Fabric/Surface/RCTFabricSurface.mm +7 -6
- package/React/Fabric/Utils/PlatformRunLoopObserver.h +6 -3
- package/React/Fabric/Utils/PlatformRunLoopObserver.mm +2 -5
- package/React/Fabric/Utils/RCTLinearGradient.h +19 -0
- package/React/Fabric/Utils/RCTLinearGradient.mm +134 -0
- package/React/I18n/FBXXHashUtils.h +10 -8
- package/React/Inspector/RCTCxxInspectorPackagerConnection.mm +3 -0
- package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.mm +3 -0
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +12 -1
- package/React/Inspector/RCTInspector.mm +1 -1
- package/React/Modules/{RCTUIManager.m → RCTUIManager.mm} +7 -4
- package/React/React-RCTFBReactNativeSpec.podspec +87 -0
- package/React/React-RCTFabric.podspec +3 -1
- package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +274 -0
- package/React/Tests/Text/RCTParagraphComponentViewTests.mm +20 -20
- package/React/Tests/Text/RCTTextAttributesTest.mm +49 -0
- package/React/Views/RCTBorderDrawing.h +5 -5
- package/React/Views/RCTBorderDrawing.m +21 -23
- package/React/Views/{RCTComponentData.m → RCTComponentData.mm} +5 -4
- package/React/Views/RCTLayout.m +3 -0
- package/React/Views/RCTModalHostViewController.m +1 -1
- package/React/Views/RCTModalHostViewManager.m +3 -23
- package/React/Views/RCTView.m +9 -10
- package/React/Views/RCTViewManager.m +1 -1
- package/React/Views/ScrollView/RCTScrollEvent.m +3 -0
- package/React/Views/ScrollView/RCTScrollView.h +1 -1
- package/React/Views/ScrollView/RCTScrollView.m +80 -26
- package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
- package/React/third-party.xcconfig +1 -1
- package/React-Core.podspec +4 -2
- package/ReactAndroid/api/ReactAndroid.api +339 -814
- package/ReactAndroid/build.gradle.kts +48 -13
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +1 -1
- package/ReactAndroid/gradle.properties +8 -2
- package/ReactAndroid/hermes-engine/build.gradle.kts +28 -26
- package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
- package/ReactAndroid/src/main/java/com/facebook/debug/debugoverlay/model/DebugOverlayTag.kt +21 -0
- package/ReactAndroid/src/main/java/com/facebook/debug/holder/NoopPrinter.kt +4 -5
- package/ReactAndroid/src/main/java/com/facebook/debug/holder/Printer.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/debug/holder/PrinterHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/debug/tags/ReactDebugOverlayTags.kt +45 -0
- package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/KeepGettersAndSetters.kt +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +131 -0
- package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +61 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +74 -34
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +109 -27
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +25 -7
- package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +35 -3
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +43 -27
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.kt +53 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +43 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.kt +13 -0
- package/ReactAndroid/src/main/java/com/facebook/react/{ViewManagerOnDemandReactPackage.java → ViewManagerOnDemandReactPackage.kt} +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +22 -30
- package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +9 -10
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxCallbackImpl.java +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{InvalidIteratorException.java → InvalidIteratorException.kt} +4 -9
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JSApplicationCausedNativeException.java → JSApplicationCausedNativeException.kt} +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSApplicationIllegalArgumentException.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyArray.kt +148 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +180 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NoSuchKeyException.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ObjectAlreadyConsumedException.java → ObjectAlreadyConsumedException.kt} +4 -9
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactIgnorableMountingException.kt +35 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.kt +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableArray.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMap.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +8 -13
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{RetryableMountingLayerException.java → RetryableMountingLayerException.kt} +6 -11
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +1 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeArray.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeMap.kt +6 -9
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +49 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/{SurfaceDelegate.java → SurfaceDelegate.kt} +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.kt +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.kt +35 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +14 -15
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +52 -3
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt +14 -18
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.java +124 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +33 -26
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +6 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSettingsActivity.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +28 -38
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReactInstanceDevHelper.java +12 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +37 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +23 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +6 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +24 -26
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/{BindingImpl.kt → FabricUIManagerBinding.kt} +26 -20
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +62 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +10 -14
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +10 -57
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +5 -17
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +45 -62
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +10 -18
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DestroyUnmountedViewMountItem.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +3 -9
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +27 -11
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +63 -0
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +20 -10
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/ReactSurface.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/SurfaceHandler.kt +0 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +80 -66
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsAccessor.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +107 -124
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +25 -27
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +25 -29
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +136 -144
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +23 -27
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +25 -22
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.kt +11 -16
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +121 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.kt +0 -11
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +7 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolsruntimesettings/ReactDevToolsRuntimeSettingsModule.kt +49 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +57 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogTitle.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +21 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ImageCacheControl.kt +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.kt +6 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +19 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.kt +21 -14
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +143 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +270 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule.kt +34 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/SoundManagerModule.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +126 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.kt +87 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt +8 -4
- package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/NativeModulePerfLogger.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +15 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +153 -81
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +75 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceImpl.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/cxxreactpackage/CxxReactPackage.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{Continuation.java → Continuation.kt} +4 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{ExecutorException.java → ExecutorException.kt} +3 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/TaskCompletionSource.kt +50 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{UnobservedTaskException.java → UnobservedTaskException.kt} +2 -8
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +272 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +398 -62
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +42 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +40 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.kt +12 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +13 -14
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactClippingProhibitedView.java → ReactClippingProhibitedView.kt} +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactCompoundView.java → ReactCompoundView.kt} +3 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactCompoundViewGroup.java → ReactCompoundViewGroup.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +257 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +1071 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +11 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +200 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +16 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +189 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutsetBoxShadowDrawable.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +107 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +14 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +20 -29
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +137 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +26 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.kt +129 -0
- package/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/ContextUtils.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.kt +96 -90
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMethod.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMode.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt +8 -56
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +74 -171
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +7 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +24 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +25 -25
- package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +46 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +27 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +56 -100
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +15 -93
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +44 -81
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewCommandHelper.kt +101 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +28 -49
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +12 -63
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.kt +5 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +131 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +153 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +72 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.kt +60 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.kt +45 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +12 -59
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +20 -54
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManagerCallback.kt +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +114 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactVirtualTextShadowNode.java → ReactVirtualTextShadowNode.kt} +3 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.kt +38 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +161 -56
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.kt +48 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomLineHeightSpan.kt +25 -38
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +69 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactTextPaintHolderSpan.kt +13 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +54 -58
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +16 -60
- package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedView.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedViewManager.kt +14 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.kt +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.kt +82 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +9 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +149 -351
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +489 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +42 -0
- package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +11 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +33 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +4 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +7 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp +4 -2
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +2 -0
- package/ReactAndroid/src/main/jni/react/fabric/{AsyncEventBeat.cpp → AndroidEventBeat.cpp} +10 -32
- package/ReactAndroid/src/main/jni/react/fabric/{AsyncEventBeat.h → AndroidEventBeat.h} +6 -9
- package/ReactAndroid/src/main/jni/react/fabric/Binding.h +3 -156
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +422 -313
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -4
- package/ReactAndroid/src/main/jni/react/fabric/{Binding.cpp → FabricUIManagerBinding.cpp} +233 -151
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +174 -0
- package/ReactAndroid/src/main/jni/react/fabric/JFabricUIManager.cpp +5 -6
- package/ReactAndroid/src/main/jni/react/fabric/JFabricUIManager.h +2 -2
- package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +2 -2
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +16 -48
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -3
- package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +8 -36
- package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.h +2 -9
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +149 -163
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +32 -34
- package/ReactAndroid/src/main/jni/react/jni/JCallback.h +1 -1
- package/ReactAndroid/src/main/jni/react/jni/JInspector.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +2 -3
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -1
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +2 -3
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +29 -8
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +3 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.cpp +12 -3
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h +15 -4
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/OnLoad.cpp +0 -3
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +1 -1
- package/ReactAndroid/src/main/jni/third-party/fast_float/CMakeLists.txt +13 -0
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +5 -6
- package/ReactAndroid/src/main/res/views/alert/layout/alert_title_layout.xml +22 -0
- package/ReactCommon/React-Fabric.podspec +4 -2
- package/ReactCommon/React-FabricComponents.podspec +7 -4
- package/ReactCommon/React-FabricImage.podspec +6 -2
- package/ReactCommon/ReactCommon.podspec +5 -3
- package/ReactCommon/callinvoker/React-callinvoker.podspec +0 -6
- package/ReactCommon/cxxreact/CMakeLists.txt +0 -1
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +6 -3
- package/ReactCommon/cxxreact/JSBigString.cpp +4 -4
- package/ReactCommon/cxxreact/JSExecutor.cpp +2 -4
- package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -2
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/devtoolsruntimesettings/CMakeLists.txt +22 -0
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +27 -0
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.h +56 -0
- package/ReactCommon/hermes/React-hermes.podspec +3 -1
- package/ReactCommon/jsc/JSCRuntime.cpp +9 -9
- package/ReactCommon/jserrorhandler/CMakeLists.txt +2 -1
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +369 -98
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +34 -8
- package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +8 -4
- package/ReactCommon/jserrorhandler/StackTraceParser.cpp +317 -0
- package/ReactCommon/jserrorhandler/StackTraceParser.h +23 -0
- package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +1196 -0
- package/ReactCommon/jsi/React-jsi.podspec +8 -3
- package/ReactCommon/jsi/jsi/decorator.h +16 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +113 -2
- package/ReactCommon/jsi/jsi/jsi.h +19 -6
- package/ReactCommon/jsi/jsi/test/testlib.cpp +59 -0
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +4 -2
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +6 -40
- package/ReactCommon/jsinspector-modern/HostAgent.h +4 -1
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +2 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +8 -7
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +2 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -9
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +4 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +6 -3
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +59 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.h +41 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +29 -33
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +130 -0
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +4 -13
- package/ReactCommon/logger/React-logger.podspec +2 -1
- package/ReactCommon/react/bridging/Base.h +29 -4
- package/ReactCommon/react/bridging/Convert.h +2 -2
- package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +66 -59
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +67 -60
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +191 -218
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +31 -33
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +37 -45
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +15 -17
- package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsTest.cpp +23 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +4 -16
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +1 -1
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +22 -22
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +65 -45
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +5 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +2 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -8
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +4 -22
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +9 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +18 -2
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/CMakeLists.txt +24 -0
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.cpp +35 -0
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.h +27 -0
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/README.md +6 -0
- package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +21 -3
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +54 -57
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +24 -26
- package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +19 -3
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +18 -3
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +6 -1
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +3 -1
- package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +18 -3
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +2 -1
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +6 -3
- package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleJSIBindings.cpp +5 -4
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.kt +277 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.kt +245 -0
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +4 -0
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleLegacyModule.mm +2 -2
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +3 -2
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +261 -28
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +131 -0
- package/ReactCommon/react/performance/timeline/CircularBuffer.h +133 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntry.h +53 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h +40 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.cpp +38 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h +34 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.cpp +59 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h +39 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +140 -206
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +82 -131
- package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +92 -0
- package/ReactCommon/react/performance/timeline/PerformanceObserver.h +139 -0
- package/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.cpp +34 -0
- package/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h +54 -0
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/performance/timeline/tests/CircularBufferTest.cpp +127 -0
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryReporterTest.cpp +238 -254
- package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +272 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +4 -4
- package/ReactCommon/react/renderer/attributedstring/AttributedString.cpp +13 -28
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +8 -6
- package/ReactCommon/react/renderer/attributedstring/conversions.h +4 -0
- package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringBoxTest.cpp +3 -3
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +5 -18
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +110 -36
- package/ReactCommon/react/renderer/components/image/ImageProps.h +8 -1
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/image/conversions.h +27 -0
- package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.cpp +0 -1
- package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h +0 -1
- package/ReactCommon/react/renderer/components/rncore/Props.cpp +1 -0
- package/ReactCommon/react/renderer/components/rncore/Props.h +1 -0
- package/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp +0 -1
- package/ReactCommon/react/renderer/components/rncore/ShadowNodes.h +0 -11
- package/ReactCommon/react/renderer/components/rncore/States.h +0 -12
- package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h +18 -0
- package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp +29 -0
- package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +26 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +8 -6
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +5 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +0 -8
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +98 -100
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +0 -1
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -2
- package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -10
- package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +18 -16
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +1 -0
- package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +93 -0
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +38 -2
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +10 -0
- package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp → TextInputEventEmitter.cpp} +3 -1
- package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.h → TextInputEventEmitter.h} +1 -0
- package/ReactCommon/react/renderer/components/textinput/baseConversions.h +46 -0
- package/ReactCommon/react/{utils/CoreFeatures.cpp → renderer/components/textinput/basePrimitives.h} +7 -4
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +8 -6
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +44 -57
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +1 -3
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +3 -20
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +0 -4
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +8 -1
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +1 -0
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +1 -18
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +1 -5
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +0 -20
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h +1 -20
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +0 -12
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +36 -34
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +206 -149
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +8 -2
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +48 -36
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +18 -18
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +2 -2
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +60 -60
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +23 -17
- package/ReactCommon/react/renderer/components/view/conversions.h +136 -68
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +22 -20
- package/ReactCommon/react/renderer/components/view/primitives.h +2 -0
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +20 -20
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +2 -2
- package/ReactCommon/react/renderer/core/EventBeat.cpp +47 -14
- package/ReactCommon/react/renderer/core/EventBeat.h +87 -31
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +4 -9
- package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -3
- package/ReactCommon/react/renderer/core/EventEmitter.h +0 -2
- package/ReactCommon/react/renderer/core/EventLogger.h +4 -1
- package/ReactCommon/react/renderer/core/EventQueue.cpp +3 -18
- package/ReactCommon/react/renderer/core/EventQueue.h +1 -8
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -1
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +4 -4
- package/ReactCommon/react/renderer/core/Props.cpp +3 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -0
- package/ReactCommon/react/renderer/core/RawValue.h +20 -20
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +21 -28
- package/ReactCommon/react/renderer/core/ShadowNode.h +4 -13
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +24 -1
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +38 -1
- package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +0 -1
- package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +5 -5
- package/ReactCommon/react/renderer/core/conversions.h +3 -3
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +4 -2
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +2 -51
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +18 -18
- package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +2 -0
- package/ReactCommon/react/renderer/dom/DOM.cpp +4 -7
- package/ReactCommon/react/renderer/graphics/BackgroundImage.h +4 -32
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +62 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +4 -1
- package/ReactCommon/react/renderer/graphics/Transform.h +4 -4
- package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +20 -48
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +2 -2
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageRequest.cpp +4 -8
- package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +2 -12
- package/ReactCommon/react/renderer/imagemanager/ImageResponse.h +1 -0
- package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +27 -3
- package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +15 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +5 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +24 -16
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +44 -8
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +4 -3
- package/ReactCommon/react/renderer/imagemanager/primitives.h +5 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +36 -23
- package/ReactCommon/react/renderer/mounting/Differentiator.h +41 -2
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +12 -7
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -3
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +5 -4
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -130
- package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -7
- package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -8
- package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -44
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +4 -4
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +1 -1
- package/ReactCommon/react/renderer/mounting/stubs/stubs.h +2 -2
- package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +3 -3
- package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +35 -109
- package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +10 -6
- package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +5 -2
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +36 -16
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +4 -3
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +6 -2
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +1 -0
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +9 -6
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +11 -1
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +14 -16
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +15 -4
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +2 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +6 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +42 -51
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +0 -1
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +86 -68
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +33 -37
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +4 -2
- package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +1 -2
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +25 -0
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +4 -10
- package/ReactCommon/react/renderer/uimanager/UIManager.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +1 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +1 -1
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
- package/ReactCommon/react/runtime/React-RuntimeCore.podspec +5 -2
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +4 -2
- package/ReactCommon/react/runtime/ReactInstance.cpp +189 -39
- package/ReactCommon/react/runtime/ReactInstance.h +1 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +1 -1
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +3 -6
- package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +20 -2
- package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +7 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +3 -0
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +14 -6
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +59 -21
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +11 -6
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +65 -27
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +2 -131
- package/ReactCommon/react/timing/CMakeLists.txt +1 -1
- package/ReactCommon/react/timing/primitives.h +2 -0
- package/ReactCommon/react/utils/RunLoopObserver.cpp +2 -4
- package/ReactCommon/react/utils/RunLoopObserver.h +1 -3
- package/ReactCommon/react/utils/SharedFunction.h +1 -0
- package/ReactCommon/reactperflogger/CMakeLists.txt +4 -1
- package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -0
- package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.cpp +143 -0
- package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.h +48 -0
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfLogger.cpp +65 -0
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfLogger.h +35 -0
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.cpp +2 -0
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +2 -1
- package/ReactCommon/yoga/yoga/YGEnums.cpp +14 -2
- package/ReactCommon/yoga/yoga/YGEnums.h +8 -2
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +38 -28
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +3 -0
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +51 -117
- package/ReactCommon/yoga/yoga/algorithm/Align.h +4 -4
- package/ReactCommon/yoga/yoga/algorithm/Baseline.cpp +2 -6
- package/ReactCommon/yoga/yoga/algorithm/BoundAxis.h +13 -6
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +349 -341
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +19 -18
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +2 -4
- package/ReactCommon/yoga/yoga/enums/BoxSizing.h +40 -0
- package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
- package/ReactCommon/yoga/yoga/enums/Errata.h +1 -1
- package/ReactCommon/yoga/yoga/node/LayoutableChildren.h +148 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +60 -7
- package/ReactCommon/yoga/yoga/node/Node.h +51 -9
- package/ReactCommon/yoga/yoga/style/Style.h +64 -1
- package/ReactCommon/yoga/yoga/style/StyleLength.h +0 -32
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +4 -4
- package/cli.js +2 -2
- package/gradle/libs.versions.toml +9 -8
- package/index.js +15 -8
- package/jest/setup.js +31 -0
- package/package.json +11 -13
- package/scripts/cocoapods/codegen_utils.rb +42 -17
- package/scripts/cocoapods/helpers.rb +16 -2
- package/scripts/cocoapods/new_architecture.rb +2 -0
- package/scripts/cocoapods/spm.rb +1 -1
- package/scripts/cocoapods/utils.rb +2 -0
- package/scripts/codegen/generate-artifacts-executor.js +336 -172
- package/scripts/codegen/generate-specs-cli-executor.js +3 -3
- package/scripts/codegen/templates/RCTAppDependencyProviderH.template +25 -0
- package/scripts/codegen/templates/RCTAppDependencyProviderMM.template +55 -0
- package/scripts/codegen/templates/RCTThirdPartyComponentsProviderH.template +16 -0
- package/scripts/codegen/templates/RCTThirdPartyComponentsProviderMM.template +23 -0
- package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +34 -0
- package/scripts/generate-provider-cli.js +1 -2
- package/scripts/ios-configure-glog.sh +2 -2
- package/scripts/react-native-xcode.sh +8 -5
- package/scripts/react_native_pods.rb +16 -0
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +15 -9
- package/sdks/hermes-engine/hermes-utils.rb +29 -8
- package/sdks/hermes-engine/utils/build-ios-framework.sh +4 -24
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/animated/NativeAnimatedHelper.js +18 -16
- package/src/private/animated/useAnimatedPropsMemo.js +356 -0
- package/src/private/components/HScrollViewNativeComponents.js +1 -27
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
- package/src/private/components/VScrollViewNativeComponents.js +2 -25
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
- package/{Libraries/ReactNative/ReactFabricInternals.js → src/private/debugging/ReactDevToolsSettingsManager.js.flow} +5 -6
- package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
- package/src/private/devmenu/DevMenu.d.ts +20 -0
- package/src/private/devmenu/DevMenu.js +31 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +96 -82
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -18
- package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
- package/src/private/setup/setUpDOM.js +14 -6
- package/src/private/setup/setUpMutationObserver.js +5 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
- package/src/private/specs/modules/NativeAppearance.js +4 -10
- package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
- package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
- package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
- package/src/private/webapis/performance/EventTiming.js +13 -8
- package/src/private/webapis/performance/Performance.js +66 -73
- package/src/private/webapis/performance/PerformanceEntry.js +2 -5
- package/src/private/webapis/performance/PerformanceObserver.js +65 -164
- package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +11 -7
- package/src/private/webapis/performance/Utilities.js +18 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/third-party-podspecs/DoubleConversion.podspec +1 -0
- package/third-party-podspecs/RCT-Folly.podspec +20 -11
- package/third-party-podspecs/boost.podspec +4 -0
- package/third-party-podspecs/fast_float.podspec +29 -0
- package/third-party-podspecs/glog.podspec +2 -1
- package/types/index.d.ts +1 -1
- package/types/public/ReactNativeTypes.d.ts +4 -8
- package/types/tsconfig.json +13 -13
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow +0 -19
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
- package/React/Base/RCTRuntimeExecutorModule.h +0 -19
- package/ReactAndroid/src/main/java/com/facebook/debug/debugoverlay/model/DebugOverlayTag.java +0 -30
- package/ReactAndroid/src/main/java/com/facebook/debug/tags/ReactDebugOverlayTags.java +0 -38
- package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/KeepGettersAndSetters.java +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.java +0 -159
- package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +0 -131
- package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackageTurboModuleManagerDelegate.java +0 -57
- package/ReactAndroid/src/main/java/com/facebook/react/EagerModuleProvider.java +0 -26
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java +0 -69
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.java +0 -67
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.java +0 -56
- package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.java +0 -14
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSApplicationIllegalArgumentException.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyArray.java +0 -219
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.java +0 -266
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.java +0 -28
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NoSuchKeyException.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactIgnorableMountingException.java +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.java +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.java +0 -29
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java +0 -66
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.java +0 -174
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeArray.java +0 -68
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +0 -57
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +0 -24
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +0 -79
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/AndroidManifest.xml +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.kt +0 -74
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.java +0 -76
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +0 -90
- package/ReactAndroid/src/main/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule.kt +0 -40
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +0 -280
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +0 -175
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java +0 -104
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +0 -159
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/TaskCompletionSource.java +0 -73
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.java +0 -42
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -329
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.kt +0 -85
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.java +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.java +0 -138
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +0 -82
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewCommandHelper.java +0 -141
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +0 -151
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +0 -194
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.java +0 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +0 -66
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.java +0 -55
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java +0 -153
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManagerCallback.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +0 -198
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.java +0 -47
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.java +0 -63
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.java +0 -95
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +0 -146
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +0 -588
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CompositeTurboModuleManagerDelegate.cpp +0 -58
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CompositeTurboModuleManagerDelegate.h +0 -48
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.h +0 -32
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.mm +0 -34
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.java +0 -246
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +0 -281
- package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.cpp +0 -130
- package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.h +0 -91
- package/ReactCommon/react/performance/timeline/BoundedConsumableBuffer.h +0 -247
- package/ReactCommon/react/performance/timeline/tests/BoundedConsumableBufferTest.cpp +0 -219
- package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +0 -57
- package/ReactCommon/react/utils/CoreFeatures.h +0 -30
- package/src/private/components/useSyncOnScroll.js +0 -48
- package/src/private/fusebox/README.md +0 -12
- package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
- package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
- package/types/experimental.d.ts +0 -59
- /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.views.view;
|
|
9
9
|
|
|
10
|
+
import static com.facebook.infer.annotation.Assertions.nullsafeFIXME;
|
|
10
11
|
import static com.facebook.react.common.ReactConstants.TAG;
|
|
11
12
|
|
|
12
13
|
import android.annotation.SuppressLint;
|
|
@@ -14,13 +15,9 @@ import android.annotation.TargetApi;
|
|
|
14
15
|
import android.content.Context;
|
|
15
16
|
import android.graphics.BlendMode;
|
|
16
17
|
import android.graphics.Canvas;
|
|
17
|
-
import android.graphics.Color;
|
|
18
18
|
import android.graphics.Paint;
|
|
19
|
-
import android.graphics.Path;
|
|
20
19
|
import android.graphics.Rect;
|
|
21
|
-
import android.graphics.RectF;
|
|
22
20
|
import android.graphics.drawable.Drawable;
|
|
23
|
-
import android.graphics.drawable.LayerDrawable;
|
|
24
21
|
import android.os.Build;
|
|
25
22
|
import android.os.Bundle;
|
|
26
23
|
import android.view.FocusFinder;
|
|
@@ -39,20 +36,18 @@ import androidx.core.view.ViewCompat;
|
|
|
39
36
|
|
|
40
37
|
import com.facebook.common.logging.FLog;
|
|
41
38
|
import com.facebook.infer.annotation.Assertions;
|
|
39
|
+
import com.facebook.infer.annotation.Nullsafe;
|
|
42
40
|
import com.facebook.react.R;
|
|
43
41
|
import com.facebook.react.bridge.ReactContext;
|
|
44
42
|
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
45
43
|
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
46
44
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
47
|
-
import com.facebook.react.
|
|
48
|
-
import com.facebook.react.common.annotations.VisibleForTesting;
|
|
49
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
50
|
-
import com.facebook.react.modules.i18nmanager.I18nUtil;
|
|
45
|
+
import com.facebook.react.config.ReactFeatureFlags;
|
|
51
46
|
import com.facebook.react.touch.OnInterceptTouchEventListener;
|
|
52
47
|
import com.facebook.react.touch.ReactHitSlopView;
|
|
53
48
|
import com.facebook.react.touch.ReactInterceptingViewGroup;
|
|
54
49
|
import com.facebook.react.uimanager.BackgroundStyleApplicator;
|
|
55
|
-
import com.facebook.react.uimanager.
|
|
50
|
+
import com.facebook.react.uimanager.BlendModeHelper;
|
|
56
51
|
import com.facebook.react.uimanager.LengthPercentage;
|
|
57
52
|
import com.facebook.react.uimanager.LengthPercentageType;
|
|
58
53
|
import com.facebook.react.uimanager.MeasureSpecAssertions;
|
|
@@ -80,11 +75,10 @@ import com.facebook.react.uimanager.events.PressOutEvent;
|
|
|
80
75
|
import com.facebook.react.uimanager.style.BackgroundImageLayer;
|
|
81
76
|
import com.facebook.react.uimanager.style.BorderRadiusProp;
|
|
82
77
|
import com.facebook.react.uimanager.style.BorderStyle;
|
|
83
|
-
import com.facebook.react.uimanager.style.ComputedBorderRadius;
|
|
84
|
-
import com.facebook.react.uimanager.style.CornerRadii;
|
|
85
78
|
import com.facebook.react.uimanager.style.LogicalEdge;
|
|
86
79
|
import com.facebook.react.uimanager.style.Overflow;
|
|
87
|
-
import java.util.
|
|
80
|
+
import java.util.HashSet;
|
|
81
|
+
import java.util.Set;
|
|
88
82
|
|
|
89
83
|
import java.lang.ref.WeakReference;
|
|
90
84
|
import java.util.ArrayList;
|
|
@@ -93,6 +87,7 @@ import java.util.ArrayList;
|
|
|
93
87
|
* Backing for a React View. Has support for borders, but since borders aren't common, lazy
|
|
94
88
|
* initializes most of the storage needed for them.
|
|
95
89
|
*/
|
|
90
|
+
@Nullsafe(Nullsafe.Mode.LOCAL)
|
|
96
91
|
public class ReactViewGroup extends ViewGroup
|
|
97
92
|
implements ReactInterceptingViewGroup,
|
|
98
93
|
ReactClippingViewGroup,
|
|
@@ -102,11 +97,8 @@ public class ReactViewGroup extends ViewGroup
|
|
|
102
97
|
ReactOverflowViewWithInset {
|
|
103
98
|
|
|
104
99
|
private static final int ARRAY_CAPACITY_INCREMENT = 12;
|
|
105
|
-
private static final int DEFAULT_BACKGROUND_COLOR = Color.TRANSPARENT;
|
|
106
100
|
private static final LayoutParams sDefaultLayoutParam = new ViewGroup.LayoutParams(0, 0);
|
|
107
101
|
private final Rect mOverflowInset = new Rect();
|
|
108
|
-
/* should only be used in {@link #updateClippingToRect} */
|
|
109
|
-
private static final Rect sHelperRect = new Rect();
|
|
110
102
|
|
|
111
103
|
private @NonNull int[] focusDestinations = new int[0];
|
|
112
104
|
private boolean autoFocus = false;
|
|
@@ -130,7 +122,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
130
122
|
*/
|
|
131
123
|
private static final class ChildrenLayoutChangeListener implements View.OnLayoutChangeListener {
|
|
132
124
|
|
|
133
|
-
private
|
|
125
|
+
@Nullable private ReactViewGroup mParent;
|
|
134
126
|
|
|
135
127
|
private ChildrenLayoutChangeListener(ReactViewGroup parent) {
|
|
136
128
|
mParent = parent;
|
|
@@ -147,12 +139,18 @@ public class ReactViewGroup extends ViewGroup
|
|
|
147
139
|
int oldTop,
|
|
148
140
|
int oldRight,
|
|
149
141
|
int oldBottom) {
|
|
150
|
-
if (mParent.getRemoveClippedSubviews()) {
|
|
142
|
+
if (mParent != null && mParent.getRemoveClippedSubviews()) {
|
|
151
143
|
mParent.updateSubviewClipStatus(v);
|
|
152
144
|
}
|
|
153
145
|
}
|
|
146
|
+
|
|
147
|
+
public void shutdown() {
|
|
148
|
+
mParent = null;
|
|
149
|
+
}
|
|
154
150
|
}
|
|
155
151
|
|
|
152
|
+
private int mRecycleCount = 0;
|
|
153
|
+
|
|
156
154
|
// Following properties are here to support the option {@code removeClippedSubviews}. This is a
|
|
157
155
|
// temporary optimization/hack that is mainly applicable to the large list of images. The way
|
|
158
156
|
// it's implemented is that we store an additional array of children in view node. We selectively
|
|
@@ -167,17 +165,22 @@ public class ReactViewGroup extends ViewGroup
|
|
|
167
165
|
private @Nullable Rect mClippingRect;
|
|
168
166
|
private @Nullable Rect mHitSlopRect;
|
|
169
167
|
private Overflow mOverflow;
|
|
170
|
-
private PointerEvents mPointerEvents;
|
|
168
|
+
private PointerEvents mPointerEvents = PointerEvents.AUTO;
|
|
171
169
|
private @Nullable ChildrenLayoutChangeListener mChildrenLayoutChangeListener;
|
|
172
|
-
private @Nullable CSSBackgroundDrawable mCSSBackgroundDrawable;
|
|
173
170
|
private @Nullable OnInterceptTouchEventListener mOnInterceptTouchEventListener;
|
|
174
171
|
private boolean mNeedsOffscreenAlphaCompositing;
|
|
175
172
|
private @Nullable ViewGroupDrawingOrderHelper mDrawingOrderHelper;
|
|
176
|
-
private @Nullable Path mPath;
|
|
177
173
|
private float mBackfaceOpacity;
|
|
178
174
|
private String mBackfaceVisibility;
|
|
175
|
+
private @Nullable Set<Integer> mChildrenRemovedWhileTransitioning;
|
|
179
176
|
|
|
180
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Creates a new `ReactViewGroup` instance.
|
|
179
|
+
*
|
|
180
|
+
* @param context A {@link Context} instance. It's Nullable to not break compatibility with OSS
|
|
181
|
+
* users (could be made non-null in the future but requires proper comms).
|
|
182
|
+
*/
|
|
183
|
+
public ReactViewGroup(@Nullable Context context) {
|
|
181
184
|
super(context);
|
|
182
185
|
initView();
|
|
183
186
|
}
|
|
@@ -185,7 +188,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
185
188
|
/**
|
|
186
189
|
* Set all default values here as opposed to in the constructor or field defaults. It is important
|
|
187
190
|
* that these properties are set during the constructor, but also on-demand whenever an existing
|
|
188
|
-
*
|
|
191
|
+
* ReactViewGroup is recycled.
|
|
189
192
|
*/
|
|
190
193
|
private void initView() {
|
|
191
194
|
setClipChildren(false);
|
|
@@ -198,18 +201,19 @@ public class ReactViewGroup extends ViewGroup
|
|
|
198
201
|
mOverflow = Overflow.VISIBLE;
|
|
199
202
|
mPointerEvents = PointerEvents.AUTO;
|
|
200
203
|
mChildrenLayoutChangeListener = null;
|
|
201
|
-
mCSSBackgroundDrawable = null;
|
|
202
204
|
mOnInterceptTouchEventListener = null;
|
|
203
205
|
mNeedsOffscreenAlphaCompositing = false;
|
|
204
206
|
mDrawingOrderHelper = null;
|
|
205
|
-
mPath = null;
|
|
206
207
|
mBackfaceOpacity = 1.f;
|
|
207
208
|
mBackfaceVisibility = "visible";
|
|
209
|
+
mChildrenRemovedWhileTransitioning = null;
|
|
208
210
|
}
|
|
209
211
|
|
|
210
212
|
/* package */ void recycleView() {
|
|
213
|
+
mRecycleCount++;
|
|
211
214
|
// Remove dangling listeners
|
|
212
215
|
if (mAllChildren != null && mChildrenLayoutChangeListener != null) {
|
|
216
|
+
mChildrenLayoutChangeListener.shutdown();
|
|
213
217
|
for (int i = 0; i < mAllChildrenCount; i++) {
|
|
214
218
|
mAllChildren[i].removeOnLayoutChangeListener(mChildrenLayoutChangeListener);
|
|
215
219
|
}
|
|
@@ -218,7 +222,6 @@ public class ReactViewGroup extends ViewGroup
|
|
|
218
222
|
// Set default field values
|
|
219
223
|
initView();
|
|
220
224
|
mOverflowInset.setEmpty();
|
|
221
|
-
sHelperRect.setEmpty();
|
|
222
225
|
|
|
223
226
|
// Remove any children
|
|
224
227
|
removeAllViews();
|
|
@@ -270,44 +273,12 @@ public class ReactViewGroup extends ViewGroup
|
|
|
270
273
|
|
|
271
274
|
@Override
|
|
272
275
|
public void setBackgroundColor(int color) {
|
|
273
|
-
|
|
274
|
-
BackgroundStyleApplicator.setBackgroundColor(this, color);
|
|
275
|
-
} else {
|
|
276
|
-
if (color == Color.TRANSPARENT && mCSSBackgroundDrawable == null) {
|
|
277
|
-
// don't do anything, no need to allocate ReactBackgroundDrawable for transparent background
|
|
278
|
-
} else {
|
|
279
|
-
getOrCreateReactViewBackground().setColor(color);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
@UnstableReactNativeAPI
|
|
285
|
-
/*package*/ void setBackgroundImage(@Nullable List<BackgroundImageLayer> backgroundImageLayers) {
|
|
286
|
-
if (ReactNativeFeatureFlags.enableBackgroundStyleApplicator()) {
|
|
287
|
-
BackgroundStyleApplicator.setBackgroundImage(this, backgroundImageLayers);
|
|
288
|
-
} else {
|
|
289
|
-
getOrCreateReactViewBackground().setBackgroundImage(backgroundImageLayers);
|
|
290
|
-
}
|
|
276
|
+
BackgroundStyleApplicator.setBackgroundColor(this, color);
|
|
291
277
|
}
|
|
292
278
|
|
|
293
279
|
@Deprecated(since = "0.76.0", forRemoval = true)
|
|
294
280
|
public void setTranslucentBackgroundDrawable(@Nullable Drawable background) {
|
|
295
|
-
|
|
296
|
-
BackgroundStyleApplicator.setFeedbackUnderlay(this, background);
|
|
297
|
-
} else {
|
|
298
|
-
// it's required to call setBackground to null, as in some of the cases we may set new
|
|
299
|
-
// background to be a layer drawable that contains a drawable that has been setup
|
|
300
|
-
// as a background previously. This will not work correctly as the drawable callback logic is
|
|
301
|
-
// messed up in AOSP
|
|
302
|
-
updateBackgroundDrawable(null);
|
|
303
|
-
if (mCSSBackgroundDrawable != null && background != null) {
|
|
304
|
-
LayerDrawable layerDrawable =
|
|
305
|
-
new LayerDrawable(new Drawable[] {mCSSBackgroundDrawable, background});
|
|
306
|
-
updateBackgroundDrawable(layerDrawable);
|
|
307
|
-
} else if (background != null) {
|
|
308
|
-
updateBackgroundDrawable(background);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
281
|
+
BackgroundStyleApplicator.setFeedbackUnderlay(this, background);
|
|
311
282
|
}
|
|
312
283
|
|
|
313
284
|
@Override
|
|
@@ -329,7 +300,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
329
300
|
}
|
|
330
301
|
|
|
331
302
|
@Override
|
|
332
|
-
public boolean onTouchEvent(MotionEvent
|
|
303
|
+
public boolean onTouchEvent(MotionEvent event) {
|
|
333
304
|
// We do not accept the touch event if this view is not supposed to receive it.
|
|
334
305
|
if (!PointerEvents.canBeTouchTarget(mPointerEvents)) {
|
|
335
306
|
return false;
|
|
@@ -342,6 +313,15 @@ public class ReactViewGroup extends ViewGroup
|
|
|
342
313
|
return true;
|
|
343
314
|
}
|
|
344
315
|
|
|
316
|
+
@Override
|
|
317
|
+
public boolean onHoverEvent(MotionEvent event) {
|
|
318
|
+
if (ReactFeatureFlags.dispatchPointerEvents) {
|
|
319
|
+
// Match the logic from onTouchEvent if pointer events are enabled
|
|
320
|
+
return PointerEvents.canBeTouchTarget(mPointerEvents);
|
|
321
|
+
}
|
|
322
|
+
return super.onHoverEvent(event);
|
|
323
|
+
}
|
|
324
|
+
|
|
345
325
|
@Override
|
|
346
326
|
public boolean dispatchGenericMotionEvent(MotionEvent ev) {
|
|
347
327
|
// We do not dispatch the motion event if its children are not supposed to receive it
|
|
@@ -367,20 +347,12 @@ public class ReactViewGroup extends ViewGroup
|
|
|
367
347
|
}
|
|
368
348
|
|
|
369
349
|
public void setBorderWidth(int position, float width) {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
this, LogicalEdge.values()[position], PixelUtil.toDIPFromPixel(width));
|
|
373
|
-
} else {
|
|
374
|
-
getOrCreateReactViewBackground().setBorderWidth(position, width);
|
|
375
|
-
}
|
|
350
|
+
BackgroundStyleApplicator.setBorderWidth(
|
|
351
|
+
this, LogicalEdge.values()[position], PixelUtil.toDIPFromPixel(width));
|
|
376
352
|
}
|
|
377
353
|
|
|
378
354
|
public void setBorderColor(int position, @Nullable Integer color) {
|
|
379
|
-
|
|
380
|
-
BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.values()[position], color);
|
|
381
|
-
} else {
|
|
382
|
-
getOrCreateReactViewBackground().setBorderColor(position, color);
|
|
383
|
-
}
|
|
355
|
+
BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.values()[position], color);
|
|
384
356
|
}
|
|
385
357
|
|
|
386
358
|
/**
|
|
@@ -396,34 +368,21 @@ public class ReactViewGroup extends ViewGroup
|
|
|
396
368
|
*/
|
|
397
369
|
@Deprecated(since = "0.75.0", forRemoval = true)
|
|
398
370
|
public void setBorderRadius(float borderRadius, int position) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.values()[position], radius);
|
|
406
|
-
} else {
|
|
407
|
-
getOrCreateReactViewBackground().setRadius(borderRadius, position);
|
|
408
|
-
}
|
|
371
|
+
@Nullable
|
|
372
|
+
LengthPercentage radius =
|
|
373
|
+
Float.isNaN(borderRadius)
|
|
374
|
+
? null
|
|
375
|
+
: new LengthPercentage(borderRadius, LengthPercentageType.POINT);
|
|
376
|
+
BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.values()[position], radius);
|
|
409
377
|
}
|
|
410
378
|
|
|
411
379
|
public void setBorderRadius(BorderRadiusProp property, @Nullable LengthPercentage borderRadius) {
|
|
412
|
-
|
|
413
|
-
BackgroundStyleApplicator.setBorderRadius(this, property, borderRadius);
|
|
414
|
-
} else {
|
|
415
|
-
CSSBackgroundDrawable backgroundDrawable = getOrCreateReactViewBackground();
|
|
416
|
-
backgroundDrawable.setBorderRadius(property, borderRadius);
|
|
417
|
-
}
|
|
380
|
+
BackgroundStyleApplicator.setBorderRadius(this, property, borderRadius);
|
|
418
381
|
}
|
|
419
382
|
|
|
420
383
|
public void setBorderStyle(@Nullable String style) {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
this, style == null ? null : BorderStyle.fromString(style));
|
|
424
|
-
} else {
|
|
425
|
-
getOrCreateReactViewBackground().setBorderStyle(style);
|
|
426
|
-
}
|
|
384
|
+
BackgroundStyleApplicator.setBorderStyle(
|
|
385
|
+
this, style == null ? null : BorderStyle.fromString(style));
|
|
427
386
|
}
|
|
428
387
|
|
|
429
388
|
@Override
|
|
@@ -432,6 +391,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
432
391
|
return;
|
|
433
392
|
}
|
|
434
393
|
mRemoveClippedSubviews = removeClippedSubviews;
|
|
394
|
+
mChildrenRemovedWhileTransitioning = null;
|
|
435
395
|
if (removeClippedSubviews) {
|
|
436
396
|
mClippingRect = new Rect();
|
|
437
397
|
ReactClippingViewGroupHelper.calculateClippingRect(this, mClippingRect);
|
|
@@ -469,7 +429,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
469
429
|
|
|
470
430
|
@Override
|
|
471
431
|
public void getClippingRect(Rect outClippingRect) {
|
|
472
|
-
outClippingRect.set(mClippingRect);
|
|
432
|
+
outClippingRect.set(nullsafeFIXME(mClippingRect, "Fix in Kotlin"));
|
|
473
433
|
}
|
|
474
434
|
|
|
475
435
|
@Override
|
|
@@ -485,12 +445,47 @@ public class ReactViewGroup extends ViewGroup
|
|
|
485
445
|
updateClippingToRect(mClippingRect);
|
|
486
446
|
}
|
|
487
447
|
|
|
448
|
+
@Override
|
|
449
|
+
public void endViewTransition(View view) {
|
|
450
|
+
super.endViewTransition(view);
|
|
451
|
+
if (mChildrenRemovedWhileTransitioning != null) {
|
|
452
|
+
mChildrenRemovedWhileTransitioning.remove(view.getId());
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
private void trackChildViewTransition(int childId) {
|
|
457
|
+
if (mChildrenRemovedWhileTransitioning == null) {
|
|
458
|
+
mChildrenRemovedWhileTransitioning = new HashSet<>();
|
|
459
|
+
}
|
|
460
|
+
mChildrenRemovedWhileTransitioning.add(childId);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
private boolean isChildRemovedWhileTransitioning(View child) {
|
|
464
|
+
return mChildrenRemovedWhileTransitioning != null
|
|
465
|
+
&& mChildrenRemovedWhileTransitioning.contains(child.getId());
|
|
466
|
+
}
|
|
467
|
+
|
|
488
468
|
private void updateClippingToRect(Rect clippingRect) {
|
|
489
469
|
Assertions.assertNotNull(mAllChildren);
|
|
490
470
|
int clippedSoFar = 0;
|
|
491
471
|
for (int i = 0; i < mAllChildrenCount; i++) {
|
|
492
|
-
|
|
493
|
-
|
|
472
|
+
try {
|
|
473
|
+
updateSubviewClipStatus(clippingRect, i, clippedSoFar);
|
|
474
|
+
} catch (IndexOutOfBoundsException e) {
|
|
475
|
+
throw new IllegalStateException(
|
|
476
|
+
"Invalid clipping state. i="
|
|
477
|
+
+ i
|
|
478
|
+
+ " clippedSoFar="
|
|
479
|
+
+ clippedSoFar
|
|
480
|
+
+ " count="
|
|
481
|
+
+ getChildCount()
|
|
482
|
+
+ " allChildrenCount="
|
|
483
|
+
+ mAllChildrenCount
|
|
484
|
+
+ " recycleCount="
|
|
485
|
+
+ mRecycleCount,
|
|
486
|
+
e);
|
|
487
|
+
}
|
|
488
|
+
if (isViewClipped(mAllChildren[i])) {
|
|
494
489
|
clippedSoFar++;
|
|
495
490
|
}
|
|
496
491
|
}
|
|
@@ -500,10 +495,9 @@ public class ReactViewGroup extends ViewGroup
|
|
|
500
495
|
UiThreadUtil.assertOnUiThread();
|
|
501
496
|
|
|
502
497
|
View child = Assertions.assertNotNull(mAllChildren)[idx];
|
|
503
|
-
sHelperRect.set(child.getLeft(), child.getTop(), child.getRight(), child.getBottom());
|
|
504
498
|
boolean intersects =
|
|
505
499
|
clippingRect.intersects(
|
|
506
|
-
|
|
500
|
+
child.getLeft(), child.getTop(), child.getRight(), child.getBottom());
|
|
507
501
|
boolean needUpdateClippingRecursive = false;
|
|
508
502
|
// We never want to clip children that are being animated, as this can easily break layout :
|
|
509
503
|
// when layout animation changes size and/or position of views contained inside a listview that
|
|
@@ -513,13 +507,13 @@ public class ReactViewGroup extends ViewGroup
|
|
|
513
507
|
// it won't be size and located properly.
|
|
514
508
|
Animation animation = child.getAnimation();
|
|
515
509
|
boolean isAnimating = animation != null && !animation.hasEnded();
|
|
516
|
-
if (!intersects && child
|
|
510
|
+
if (!intersects && !isViewClipped(child) && !isAnimating) {
|
|
517
511
|
recoverFocus(child);
|
|
518
512
|
// We can try saving on invalidate call here as the view that we remove is out of visible area
|
|
519
513
|
// therefore invalidation is not necessary.
|
|
520
514
|
removeViewInLayout(child);
|
|
521
515
|
needUpdateClippingRecursive = true;
|
|
522
|
-
} else if (intersects && child
|
|
516
|
+
} else if (intersects && isViewClipped(child)) {
|
|
523
517
|
addViewInLayout(child, idx - clippedSoFar, sDefaultLayoutParam, true);
|
|
524
518
|
invalidate();
|
|
525
519
|
needUpdateClippingRecursive = true;
|
|
@@ -529,8 +523,6 @@ public class ReactViewGroup extends ViewGroup
|
|
|
529
523
|
}
|
|
530
524
|
if (needUpdateClippingRecursive) {
|
|
531
525
|
if (child instanceof ReactClippingViewGroup) {
|
|
532
|
-
// we don't use {@link sHelperRect} until the end of this loop, therefore it's safe
|
|
533
|
-
// to call this method that may write to the same {@link sHelperRect} object.
|
|
534
526
|
ReactClippingViewGroup clippingChild = (ReactClippingViewGroup) child;
|
|
535
527
|
if (clippingChild.getRemoveClippedSubviews()) {
|
|
536
528
|
clippingChild.updateClippingRect();
|
|
@@ -548,13 +540,12 @@ public class ReactViewGroup extends ViewGroup
|
|
|
548
540
|
Assertions.assertNotNull(mAllChildren);
|
|
549
541
|
|
|
550
542
|
// do fast check whether intersect state changed
|
|
551
|
-
sHelperRect.set(subview.getLeft(), subview.getTop(), subview.getRight(), subview.getBottom());
|
|
552
543
|
boolean intersects =
|
|
553
544
|
mClippingRect.intersects(
|
|
554
|
-
|
|
545
|
+
subview.getLeft(), subview.getTop(), subview.getRight(), subview.getBottom());
|
|
555
546
|
|
|
556
547
|
// If it was intersecting before, should be attached to the parent
|
|
557
|
-
boolean oldIntersects = (subview
|
|
548
|
+
boolean oldIntersects = !isViewClipped(subview);
|
|
558
549
|
|
|
559
550
|
if (intersects != oldIntersects) {
|
|
560
551
|
int clippedSoFar = 0;
|
|
@@ -563,18 +554,13 @@ public class ReactViewGroup extends ViewGroup
|
|
|
563
554
|
updateSubviewClipStatus(mClippingRect, i, clippedSoFar);
|
|
564
555
|
break;
|
|
565
556
|
}
|
|
566
|
-
if (mAllChildren[i]
|
|
557
|
+
if (isViewClipped(mAllChildren[i])) {
|
|
567
558
|
clippedSoFar++;
|
|
568
559
|
}
|
|
569
560
|
}
|
|
570
561
|
}
|
|
571
562
|
}
|
|
572
563
|
|
|
573
|
-
@Override
|
|
574
|
-
public boolean getChildVisibleRect(View child, Rect r, android.graphics.Point offset) {
|
|
575
|
-
return super.getChildVisibleRect(child, r, offset);
|
|
576
|
-
}
|
|
577
|
-
|
|
578
564
|
private View getFirstFocusableView(ReactViewGroup viewGroup) {
|
|
579
565
|
ArrayList<View> focusables = new ArrayList<View>(0);
|
|
580
566
|
/**
|
|
@@ -683,85 +669,39 @@ public class ReactViewGroup extends ViewGroup
|
|
|
683
669
|
return ViewUtil.getUIManagerType(getId()) == UIManagerType.FABRIC;
|
|
684
670
|
}
|
|
685
671
|
|
|
686
|
-
|
|
672
|
+
@Override
|
|
673
|
+
public void onViewAdded(View child) {
|
|
687
674
|
UiThreadUtil.assertOnUiThread();
|
|
688
675
|
|
|
689
676
|
if (!customDrawOrderDisabled()) {
|
|
690
|
-
getDrawingOrderHelper().handleAddView(
|
|
677
|
+
getDrawingOrderHelper().handleAddView(child);
|
|
691
678
|
setChildrenDrawingOrderEnabled(getDrawingOrderHelper().shouldEnableCustomDrawingOrder());
|
|
692
679
|
} else {
|
|
693
680
|
setChildrenDrawingOrderEnabled(false);
|
|
694
681
|
}
|
|
682
|
+
super.onViewAdded(child);
|
|
695
683
|
}
|
|
696
684
|
|
|
697
|
-
|
|
685
|
+
@Override
|
|
686
|
+
public void onViewRemoved(View child) {
|
|
698
687
|
UiThreadUtil.assertOnUiThread();
|
|
699
688
|
|
|
700
689
|
if (!customDrawOrderDisabled()) {
|
|
701
|
-
if (indexOfChild(
|
|
690
|
+
if (indexOfChild(child) == -1) {
|
|
702
691
|
return;
|
|
703
692
|
}
|
|
704
|
-
getDrawingOrderHelper().handleRemoveView(
|
|
693
|
+
getDrawingOrderHelper().handleRemoveView(child);
|
|
705
694
|
setChildrenDrawingOrderEnabled(getDrawingOrderHelper().shouldEnableCustomDrawingOrder());
|
|
706
695
|
} else {
|
|
707
696
|
setChildrenDrawingOrderEnabled(false);
|
|
708
697
|
}
|
|
709
|
-
}
|
|
710
698
|
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
if (index < getChildCount()) {
|
|
715
|
-
handleRemoveView(getChildAt(index));
|
|
716
|
-
}
|
|
699
|
+
// The parent might not be null in case the child is transitioning.
|
|
700
|
+
if (child.getParent() != null) {
|
|
701
|
+
trackChildViewTransition(child.getId());
|
|
717
702
|
}
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
@Override
|
|
721
|
-
public void addView(View child, int index, ViewGroup.LayoutParams params) {
|
|
722
|
-
// This will get called for every overload of addView so there is not need to override every
|
|
723
|
-
// method.
|
|
724
|
-
handleAddView(child);
|
|
725
|
-
super.addView(child, index, params);
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
@Override
|
|
729
|
-
protected boolean addViewInLayout(
|
|
730
|
-
View child, int index, LayoutParams params, boolean preventRequestLayout) {
|
|
731
|
-
handleAddView(child);
|
|
732
|
-
return super.addViewInLayout(child, index, params, preventRequestLayout);
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
@Override
|
|
736
|
-
public void removeView(View view) {
|
|
737
|
-
handleRemoveView(view);
|
|
738
|
-
recoverFocus(view);
|
|
739
|
-
super.removeView(view);
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
@Override
|
|
743
|
-
public void removeViewAt(int index) {
|
|
744
|
-
handleRemoveView(getChildAt(index));
|
|
745
|
-
recoverFocus(getChildAt(index));
|
|
746
|
-
super.removeViewAt(index);
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
@Override
|
|
750
|
-
public void removeViewInLayout(View view) {
|
|
751
|
-
handleRemoveView(view);
|
|
752
|
-
super.removeViewInLayout(view);
|
|
753
|
-
}
|
|
754
703
|
|
|
755
|
-
|
|
756
|
-
public void removeViewsInLayout(int start, int count) {
|
|
757
|
-
handleRemoveViews(start, count);
|
|
758
|
-
super.removeViewsInLayout(start, count);
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
@Override
|
|
762
|
-
public void removeViews(int start, int count) {
|
|
763
|
-
handleRemoveViews(start, count);
|
|
764
|
-
super.removeViews(start, count);
|
|
704
|
+
super.onViewRemoved(child);
|
|
765
705
|
}
|
|
766
706
|
|
|
767
707
|
@Override
|
|
@@ -835,18 +775,19 @@ public class ReactViewGroup extends ViewGroup
|
|
|
835
775
|
/*package*/ void addViewWithSubviewClippingEnabled(
|
|
836
776
|
final View child, int index, ViewGroup.LayoutParams params) {
|
|
837
777
|
Assertions.assertCondition(mRemoveClippedSubviews);
|
|
838
|
-
Assertions.assertNotNull(mClippingRect);
|
|
839
|
-
Assertions.assertNotNull(mAllChildren);
|
|
840
778
|
addInArray(child, index);
|
|
779
|
+
|
|
841
780
|
// we add view as "clipped" and then run {@link #updateSubviewClipStatus} to conditionally
|
|
842
781
|
// attach it
|
|
782
|
+
Rect clippingRect = Assertions.assertNotNull(mClippingRect);
|
|
783
|
+
View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
843
784
|
int clippedSoFar = 0;
|
|
844
785
|
for (int i = 0; i < index; i++) {
|
|
845
|
-
if (
|
|
786
|
+
if (isViewClipped(childArray[i])) {
|
|
846
787
|
clippedSoFar++;
|
|
847
788
|
}
|
|
848
789
|
}
|
|
849
|
-
updateSubviewClipStatus(
|
|
790
|
+
updateSubviewClipStatus(clippingRect, index, clippedSoFar);
|
|
850
791
|
child.addOnLayoutChangeListener(mChildrenLayoutChangeListener);
|
|
851
792
|
|
|
852
793
|
if (child instanceof ReactClippingProhibitedView) {
|
|
@@ -878,13 +819,13 @@ public class ReactViewGroup extends ViewGroup
|
|
|
878
819
|
|
|
879
820
|
Assertions.assertCondition(mRemoveClippedSubviews);
|
|
880
821
|
Assertions.assertNotNull(mClippingRect);
|
|
881
|
-
Assertions.assertNotNull(mAllChildren);
|
|
822
|
+
View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
882
823
|
view.removeOnLayoutChangeListener(mChildrenLayoutChangeListener);
|
|
883
824
|
int index = indexOfChildInAllChildren(view);
|
|
884
|
-
if (
|
|
825
|
+
if (!isViewClipped(childArray[index])) {
|
|
885
826
|
int clippedSoFar = 0;
|
|
886
827
|
for (int i = 0; i < index; i++) {
|
|
887
|
-
if (
|
|
828
|
+
if (isViewClipped(childArray[i])) {
|
|
888
829
|
clippedSoFar++;
|
|
889
830
|
}
|
|
890
831
|
}
|
|
@@ -896,19 +837,26 @@ public class ReactViewGroup extends ViewGroup
|
|
|
896
837
|
|
|
897
838
|
/*package*/ void removeAllViewsWithSubviewClippingEnabled() {
|
|
898
839
|
Assertions.assertCondition(mRemoveClippedSubviews);
|
|
899
|
-
Assertions.assertNotNull(mAllChildren);
|
|
840
|
+
View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
900
841
|
for (int i = 0; i < mAllChildrenCount; i++) {
|
|
901
|
-
|
|
842
|
+
childArray[i].removeOnLayoutChangeListener(mChildrenLayoutChangeListener);
|
|
902
843
|
}
|
|
903
844
|
removeAllViewsInLayout();
|
|
904
845
|
mAllChildrenCount = 0;
|
|
905
846
|
}
|
|
906
847
|
|
|
848
|
+
/**
|
|
849
|
+
* @return {@code true} if the view has been removed from the ViewGroup.
|
|
850
|
+
*/
|
|
851
|
+
private boolean isViewClipped(View view) {
|
|
852
|
+
return view.getParent() == null;
|
|
853
|
+
}
|
|
854
|
+
|
|
907
855
|
private int indexOfChildInAllChildren(View child) {
|
|
908
856
|
final int count = mAllChildrenCount;
|
|
909
|
-
final View[]
|
|
857
|
+
final View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
910
858
|
for (int i = 0; i < count; i++) {
|
|
911
|
-
if (
|
|
859
|
+
if (childArray[i] == child) {
|
|
912
860
|
return i;
|
|
913
861
|
}
|
|
914
862
|
}
|
|
@@ -916,26 +864,26 @@ public class ReactViewGroup extends ViewGroup
|
|
|
916
864
|
}
|
|
917
865
|
|
|
918
866
|
private void addInArray(View child, int index) {
|
|
919
|
-
View[]
|
|
867
|
+
View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
920
868
|
final int count = mAllChildrenCount;
|
|
921
|
-
final int size =
|
|
869
|
+
final int size = childArray.length;
|
|
922
870
|
if (index == count) {
|
|
923
871
|
if (size == count) {
|
|
924
872
|
mAllChildren = new View[size + ARRAY_CAPACITY_INCREMENT];
|
|
925
|
-
System.arraycopy(
|
|
926
|
-
|
|
873
|
+
System.arraycopy(childArray, 0, mAllChildren, 0, size);
|
|
874
|
+
childArray = mAllChildren;
|
|
927
875
|
}
|
|
928
|
-
|
|
876
|
+
childArray[mAllChildrenCount++] = child;
|
|
929
877
|
} else if (index < count) {
|
|
930
878
|
if (size == count) {
|
|
931
879
|
mAllChildren = new View[size + ARRAY_CAPACITY_INCREMENT];
|
|
932
|
-
System.arraycopy(
|
|
933
|
-
System.arraycopy(
|
|
934
|
-
|
|
880
|
+
System.arraycopy(childArray, 0, mAllChildren, 0, index);
|
|
881
|
+
System.arraycopy(childArray, index, mAllChildren, index + 1, count - index);
|
|
882
|
+
childArray = mAllChildren;
|
|
935
883
|
} else {
|
|
936
|
-
System.arraycopy(
|
|
884
|
+
System.arraycopy(childArray, index, childArray, index + 1, count - index);
|
|
937
885
|
}
|
|
938
|
-
|
|
886
|
+
childArray[index] = child;
|
|
939
887
|
mAllChildrenCount++;
|
|
940
888
|
} else {
|
|
941
889
|
throw new IndexOutOfBoundsException("index=" + index + " count=" + count);
|
|
@@ -943,69 +891,18 @@ public class ReactViewGroup extends ViewGroup
|
|
|
943
891
|
}
|
|
944
892
|
|
|
945
893
|
private void removeFromArray(int index) {
|
|
946
|
-
final View[]
|
|
894
|
+
final View[] childArray = Assertions.assertNotNull(mAllChildren);
|
|
947
895
|
final int count = mAllChildrenCount;
|
|
948
896
|
if (index == count - 1) {
|
|
949
|
-
|
|
897
|
+
childArray[--mAllChildrenCount] = null;
|
|
950
898
|
} else if (index >= 0 && index < count) {
|
|
951
|
-
System.arraycopy(
|
|
952
|
-
|
|
899
|
+
System.arraycopy(childArray, index + 1, childArray, index, count - index - 1);
|
|
900
|
+
childArray[--mAllChildrenCount] = null;
|
|
953
901
|
} else {
|
|
954
902
|
throw new IndexOutOfBoundsException();
|
|
955
903
|
}
|
|
956
904
|
}
|
|
957
905
|
|
|
958
|
-
private boolean needsIsolatedLayer() {
|
|
959
|
-
if (!ReactNativeFeatureFlags.enableAndroidMixBlendModeProp()) {
|
|
960
|
-
return false;
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
for (int i = 0; i < getChildCount(); i++) {
|
|
964
|
-
if (getChildAt(i).getTag(R.id.mix_blend_mode) != null) {
|
|
965
|
-
return true;
|
|
966
|
-
}
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
return false;
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
@VisibleForTesting
|
|
973
|
-
public int getBackgroundColor() {
|
|
974
|
-
if (ReactNativeFeatureFlags.enableBackgroundStyleApplicator()) {
|
|
975
|
-
@Nullable Integer color = BackgroundStyleApplicator.getBackgroundColor(this);
|
|
976
|
-
return color == null ? DEFAULT_BACKGROUND_COLOR : color;
|
|
977
|
-
} else {
|
|
978
|
-
if (getBackground() != null) {
|
|
979
|
-
return ((CSSBackgroundDrawable) getBackground()).getColor();
|
|
980
|
-
}
|
|
981
|
-
return DEFAULT_BACKGROUND_COLOR;
|
|
982
|
-
}
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
/* package */ CSSBackgroundDrawable getOrCreateReactViewBackground() {
|
|
986
|
-
if (mCSSBackgroundDrawable == null) {
|
|
987
|
-
mCSSBackgroundDrawable = new CSSBackgroundDrawable(getContext());
|
|
988
|
-
Drawable backgroundDrawable = getBackground();
|
|
989
|
-
updateBackgroundDrawable(
|
|
990
|
-
null); // required so that drawable callback is cleared before we add the
|
|
991
|
-
// drawable back as a part of LayerDrawable
|
|
992
|
-
if (backgroundDrawable == null) {
|
|
993
|
-
updateBackgroundDrawable(mCSSBackgroundDrawable);
|
|
994
|
-
} else {
|
|
995
|
-
LayerDrawable layerDrawable =
|
|
996
|
-
new LayerDrawable(new Drawable[] {mCSSBackgroundDrawable, backgroundDrawable});
|
|
997
|
-
updateBackgroundDrawable(layerDrawable);
|
|
998
|
-
}
|
|
999
|
-
if (!ReactNativeFeatureFlags.setAndroidLayoutDirection()) {
|
|
1000
|
-
mCSSBackgroundDrawable.setLayoutDirectionOverride(
|
|
1001
|
-
I18nUtil.getInstance().isRTL(getContext())
|
|
1002
|
-
? LAYOUT_DIRECTION_RTL
|
|
1003
|
-
: LAYOUT_DIRECTION_LTR);
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1006
|
-
return mCSSBackgroundDrawable;
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
906
|
@Override
|
|
1010
907
|
public @Nullable Rect getHitSlopRect() {
|
|
1011
908
|
return mHitSlopRect;
|
|
@@ -1042,7 +939,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1042
939
|
|
|
1043
940
|
@Override
|
|
1044
941
|
public void setOverflowInset(int left, int top, int right, int bottom) {
|
|
1045
|
-
if (needsIsolatedLayer()
|
|
942
|
+
if (BlendModeHelper.needsIsolatedLayer(this)
|
|
1046
943
|
&& (mOverflowInset.left != left
|
|
1047
944
|
|| mOverflowInset.top != top
|
|
1048
945
|
|| mOverflowInset.right != right
|
|
@@ -1072,7 +969,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1072
969
|
public void draw(Canvas canvas) {
|
|
1073
970
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
|
|
1074
971
|
&& ViewUtil.getUIManagerType(this) == UIManagerType.FABRIC
|
|
1075
|
-
&& needsIsolatedLayer()) {
|
|
972
|
+
&& BlendModeHelper.needsIsolatedLayer(this)) {
|
|
1076
973
|
|
|
1077
974
|
// Check if the view is a stacking context and has children, if it does, do the rendering
|
|
1078
975
|
// offscreen and then composite back. This follows the idea of group isolation on blending
|
|
@@ -1093,33 +990,10 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1093
990
|
|
|
1094
991
|
@Override
|
|
1095
992
|
protected void dispatchDraw(Canvas canvas) {
|
|
1096
|
-
if (
|
|
1097
|
-
|
|
1098
|
-
BackgroundStyleApplicator.clipToPaddingBox(this, canvas);
|
|
1099
|
-
}
|
|
1100
|
-
super.dispatchDraw(canvas);
|
|
1101
|
-
return;
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
try {
|
|
1105
|
-
dispatchOverflowDraw(canvas);
|
|
1106
|
-
super.dispatchDraw(canvas);
|
|
1107
|
-
} catch (NullPointerException | StackOverflowError e) {
|
|
1108
|
-
// Adding special exception management for StackOverflowError for logging purposes.
|
|
1109
|
-
// This will be removed in the future.
|
|
1110
|
-
RootView rootView = RootViewUtil.getRootView(ReactViewGroup.this);
|
|
1111
|
-
if (rootView != null) {
|
|
1112
|
-
rootView.handleException(e);
|
|
1113
|
-
} else {
|
|
1114
|
-
if (getContext() instanceof ReactContext) {
|
|
1115
|
-
ReactContext reactContext = (ReactContext) getContext();
|
|
1116
|
-
reactContext.handleException(
|
|
1117
|
-
new IllegalViewOperationException("StackOverflowException", this, e));
|
|
1118
|
-
} else {
|
|
1119
|
-
throw e;
|
|
1120
|
-
}
|
|
1121
|
-
}
|
|
993
|
+
if (mOverflow != Overflow.VISIBLE || getTag(R.id.filter) != null) {
|
|
994
|
+
BackgroundStyleApplicator.clipToPaddingBox(this, canvas);
|
|
1122
995
|
}
|
|
996
|
+
super.dispatchDraw(canvas);
|
|
1123
997
|
}
|
|
1124
998
|
|
|
1125
999
|
@Override
|
|
@@ -1131,7 +1005,8 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1131
1005
|
}
|
|
1132
1006
|
|
|
1133
1007
|
BlendMode mixBlendMode = null;
|
|
1134
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
|
|
1008
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
|
|
1009
|
+
&& BlendModeHelper.needsIsolatedLayer(this)) {
|
|
1135
1010
|
mixBlendMode = (BlendMode) child.getTag(R.id.mix_blend_mode);
|
|
1136
1011
|
if (mixBlendMode != null) {
|
|
1137
1012
|
Paint p = new Paint();
|
|
@@ -1158,83 +1033,6 @@ public class ReactViewGroup extends ViewGroup
|
|
|
1158
1033
|
return result;
|
|
1159
1034
|
}
|
|
1160
1035
|
|
|
1161
|
-
private void dispatchOverflowDraw(Canvas canvas) {
|
|
1162
|
-
Overflow tempOverflow = mOverflow;
|
|
1163
|
-
|
|
1164
|
-
// If the view contains a filter, we clip to the padding box.
|
|
1165
|
-
if (getTag(R.id.filter) != null) {
|
|
1166
|
-
tempOverflow = Overflow.HIDDEN;
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
switch (tempOverflow) {
|
|
1170
|
-
case VISIBLE:
|
|
1171
|
-
if (mPath != null) {
|
|
1172
|
-
mPath.rewind();
|
|
1173
|
-
}
|
|
1174
|
-
break;
|
|
1175
|
-
case HIDDEN:
|
|
1176
|
-
case SCROLL:
|
|
1177
|
-
float left = 0f;
|
|
1178
|
-
float top = 0f;
|
|
1179
|
-
float right = getWidth();
|
|
1180
|
-
float bottom = getHeight();
|
|
1181
|
-
|
|
1182
|
-
boolean hasClipPath = false;
|
|
1183
|
-
|
|
1184
|
-
if (mCSSBackgroundDrawable != null) {
|
|
1185
|
-
final RectF borderWidth = mCSSBackgroundDrawable.getDirectionAwareBorderInsets();
|
|
1186
|
-
|
|
1187
|
-
if (borderWidth.top > 0
|
|
1188
|
-
|| borderWidth.left > 0
|
|
1189
|
-
|| borderWidth.bottom > 0
|
|
1190
|
-
|| borderWidth.right > 0) {
|
|
1191
|
-
left += borderWidth.left;
|
|
1192
|
-
top += borderWidth.top;
|
|
1193
|
-
right -= borderWidth.right;
|
|
1194
|
-
bottom -= borderWidth.bottom;
|
|
1195
|
-
}
|
|
1196
|
-
|
|
1197
|
-
final ComputedBorderRadius borderRadius =
|
|
1198
|
-
mCSSBackgroundDrawable.getComputedBorderRadius();
|
|
1199
|
-
|
|
1200
|
-
if (borderRadius.hasRoundedBorders()) {
|
|
1201
|
-
if (mPath == null) {
|
|
1202
|
-
mPath = new Path();
|
|
1203
|
-
}
|
|
1204
|
-
|
|
1205
|
-
CornerRadii topLeftRadius = borderRadius.getTopLeft().toPixelFromDIP();
|
|
1206
|
-
CornerRadii topRightRadius = borderRadius.getTopRight().toPixelFromDIP();
|
|
1207
|
-
CornerRadii bottomLeftRadius = borderRadius.getBottomLeft().toPixelFromDIP();
|
|
1208
|
-
CornerRadii bottomRightRadius = borderRadius.getBottomRight().toPixelFromDIP();
|
|
1209
|
-
|
|
1210
|
-
mPath.rewind();
|
|
1211
|
-
mPath.addRoundRect(
|
|
1212
|
-
new RectF(left, top, right, bottom),
|
|
1213
|
-
new float[] {
|
|
1214
|
-
Math.max(topLeftRadius.getHorizontal() - borderWidth.left, 0),
|
|
1215
|
-
Math.max(topLeftRadius.getVertical() - borderWidth.top, 0),
|
|
1216
|
-
Math.max(topRightRadius.getHorizontal() - borderWidth.right, 0),
|
|
1217
|
-
Math.max(topRightRadius.getVertical() - borderWidth.top, 0),
|
|
1218
|
-
Math.max(bottomRightRadius.getHorizontal() - borderWidth.right, 0),
|
|
1219
|
-
Math.max(bottomRightRadius.getVertical() - borderWidth.bottom, 0),
|
|
1220
|
-
Math.max(bottomLeftRadius.getHorizontal() - borderWidth.left, 0),
|
|
1221
|
-
Math.max(bottomLeftRadius.getVertical() - borderWidth.bottom, 0),
|
|
1222
|
-
},
|
|
1223
|
-
Path.Direction.CW);
|
|
1224
|
-
canvas.clipPath(mPath);
|
|
1225
|
-
hasClipPath = true;
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1228
|
-
|
|
1229
|
-
if (!hasClipPath) {
|
|
1230
|
-
canvas.clipRect(new RectF(left, top, right, bottom));
|
|
1231
|
-
}
|
|
1232
|
-
break;
|
|
1233
|
-
default:
|
|
1234
|
-
break;
|
|
1235
|
-
}
|
|
1236
|
-
}
|
|
1237
|
-
|
|
1238
1036
|
public void setOpacityIfPossible(float opacity) {
|
|
1239
1037
|
mBackfaceOpacity = opacity;
|
|
1240
1038
|
setBackfaceVisibilityDependantOpacity();
|