react-native-tvos 0.85.3-1 → 0.86.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Animated/AnimatedImplementation.js +6 -6
- package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
- package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
- package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
- package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/RCTBlobCollector.h +1 -1
- package/Libraries/Blob/RCTBlobCollector.mm +14 -26
- package/Libraries/Blob/RCTBlobManager.mm +11 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
- package/Libraries/Components/Keyboard/Keyboard.js +4 -2
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
- package/Libraries/Components/Pressable/Pressable.js +2 -2
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
- package/Libraries/Components/ScrollView/ScrollView.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
- package/Libraries/Components/TextInput/TextInput.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
- package/Libraries/Components/Touchable/PooledClass.js +4 -4
- package/Libraries/Components/Touchable/Touchable.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
- package/Libraries/Components/View/View.js +100 -95
- package/Libraries/Components/View/ViewPropTypes.js +3 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +8 -0
- package/Libraries/Core/ExceptionsManager.js +2 -8
- package/Libraries/Core/InitializeCore.js +0 -13
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +2 -2
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -5
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +15 -35
- package/Libraries/Image/RCTImageLoader.mm +4 -2
- package/Libraries/Image/RelativeImageStub.js +2 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -12
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -2
- package/Libraries/LogBox/LogBoxInspectorContainer.js +24 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +27 -4
- package/Libraries/LogBox/UI/LogBoxButton.js +47 -33
- package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
- package/Libraries/Modal/Modal.js +12 -7
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
- package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.mm +1 -2
- package/Libraries/Network/XMLHttpRequest.js +29 -12
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +2 -3
- package/Libraries/ReactNative/AppContainer-prod.js +1 -2
- package/Libraries/ReactNative/AppContainer.js +0 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
- package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
- package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
- package/Libraries/ReactNative/RendererImplementation.js +26 -143
- package/Libraries/ReactNative/RendererProxy.js +4 -15
- package/Libraries/ReactNative/renderApplication.js +33 -59
- package/Libraries/ReactNative/requireNativeComponent.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -32
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +3 -3
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +6 -8
- package/Libraries/StyleSheet/StyleSheetTypes.js +11 -11
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +19 -9
- package/Libraries/StyleSheet/processBackgroundSize.js +7 -12
- package/Libraries/StyleSheet/processBoxShadow.js +9 -47
- package/Libraries/StyleSheet/processFilter.js +16 -8
- package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
- package/Libraries/Text/Text.js +4 -4
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +16 -2
- package/Libraries/Text/TextNativeComponent.js +4 -4
- package/Libraries/TurboModule/RCTExport.js +1 -1
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
- package/Libraries/Types/CodegenTypes.js +7 -4
- package/Libraries/Types/ReactDevToolsTypes.js +1 -1
- package/Libraries/Utilities/BackHandler.android.js +11 -3
- package/Libraries/Utilities/BackHandler.d.ts +11 -1
- package/Libraries/Utilities/BackHandler.ios.js +3 -1
- package/Libraries/Utilities/BackHandler.js.flow +6 -1
- package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +4 -4
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -2
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -2
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +27 -13
- package/React/Base/RCTBundleURLProvider.h +19 -1
- package/React/Base/RCTBundleURLProvider.mm +82 -0
- package/React/Base/RCTDefines.h +1 -1
- package/React/Base/RCTMultipartDataTask.h +1 -1
- package/React/Base/RCTMultipartDataTask.m +0 -3
- package/React/Base/RCTRootView.h +4 -0
- package/React/Base/RCTRootViewDelegate.h +5 -2
- package/React/Base/RCTVersion.m +3 -3
- package/React/Base/Surface/RCTSurface.h +3 -0
- package/React/Base/Surface/RCTSurfaceDelegate.h +7 -3
- package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
- package/React/Base/Surface/RCTSurfaceView.mm +2 -1
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
- package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +1 -1
- package/React/CoreModules/RCTWebSocketModule.mm +45 -6
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
- package/React/DevSupport/RCTPackagerConnection.mm +13 -11
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +108 -43
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +70 -8
- package/React/Fabric/RCTConversions.h +14 -0
- package/React/Fabric/RCTScheduler.mm +18 -0
- package/React/Fabric/RCTSurfacePointerHandler.mm +8 -2
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -0
- package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
- package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -1
- package/React/Profiler/RCTProfile.h +5 -0
- package/React/Profiler/RCTProfile.m +2 -1
- package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
- package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
- package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +5 -5
- package/React/Views/RCTLayout.m +4 -3
- package/React/Views/ScrollView/RCTScrollView.h +6 -2
- package/ReactAndroid/api/ReactAndroid.api +37 -27
- package/ReactAndroid/build.gradle.kts +28 -21
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +40 -110
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +32 -87
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +9 -99
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +7 -28
- package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +2 -19
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +36 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +9 -34
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +9 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +15 -13
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +139 -43
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +223 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +104 -65
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +172 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +41 -29
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +71 -51
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +16 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +79 -57
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -9
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +10 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +59 -62
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +45 -36
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +18 -5
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +18 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +14 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +84 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +41 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
- package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +10 -1
- package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +47 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +20 -6
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +24 -1
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -0
- package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +97 -69
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +21 -15
- package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +10 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +7 -0
- package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
- package/ReactCommon/React-Fabric.podspec +7 -0
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/jsc/JSCRuntime.cpp +9 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
- package/ReactCommon/jsi/jsi/decorator.h +93 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
- package/ReactCommon/jsi/jsi/jsi.cpp +208 -27
- package/ReactCommon/jsi/jsi/jsi.h +553 -224
- package/ReactCommon/jsi/jsi/test/testlib.cpp +453 -0
- package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +1 -1
- package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
- package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -2
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +5 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +0 -1
- package/ReactCommon/logger/react_native_log.cpp +0 -1
- package/ReactCommon/react/bridging/Array.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +29 -21
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +35 -25
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +168 -132
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -14
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +28 -20
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +61 -43
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -7
- package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
- package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -9
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +0 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +35 -25
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +15 -11
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
- package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
- package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
- package/ReactCommon/react/networking/NetworkReporter.h +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
- package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +24 -12
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +3 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -3
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +4 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
- package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
- package/ReactCommon/react/renderer/animations/utils.h +12 -1
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
- package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
- package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
- package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
- package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +53 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
- package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
- package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
- package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
- package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
- package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
- package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
- package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
- package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/Props.cpp +20 -0
- package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
- package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
- package/ReactCommon/react/renderer/core/conversions.h +4 -0
- package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
- package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
- package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
- package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
- package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
- package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
- package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
- package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
- package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
- package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
- package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +347 -5
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +5 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +5 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
- package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +520 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +161 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +37 -0
- package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
- package/ReactCommon/react/timing/React-timing.podspec +2 -0
- package/ReactCommon/react/timing/primitives.h +33 -1
- package/ReactCommon/yoga/yoga/YGEnums.cpp +32 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +20 -4
- package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
- package/ReactCommon/yoga/yoga/YGNode.h +1 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +40 -9
- package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +106 -14
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
- package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
- package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
- package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
- package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
- package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
- package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
- package/ReactCommon/yoga/yoga/event/event.h +1 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
- package/ReactCommon/yoga/yoga/node/Node.h +4 -4
- package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
- package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
- package/ReactCommon/yoga/yoga/style/Style.h +261 -71
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -1
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
- package/cli.js +1 -1
- package/flow/HermesInternalType.js +1 -1
- package/flow/bom.js.flow +95 -3
- package/flow/dom.js.flow +89 -89
- package/gradle/libs.versions.toml +3 -1
- package/index.js +30 -3
- package/index.js.flow +23 -1
- package/package.json +11 -11
- package/react-native.config.js +3 -3
- package/scripts/cocoapods/rncore.rb +65 -11
- package/scripts/cocoapods/rndependencies.rb +65 -11
- package/scripts/cocoapods/utils.rb +52 -0
- package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +13 -4
- package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +17 -6
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
- package/scripts/codegen/generate-artifacts-executor/utils.js +1 -1
- package/scripts/codegen/generate-specs-cli-executor.js +1 -1
- package/scripts/generate-codegen-artifacts.js +20 -2
- package/scripts/generate-provider-cli.js +1 -1
- package/scripts/react_native_pods.rb +25 -2
- package/scripts/react_native_pods_utils/script_phases.rb +9 -3
- package/scripts/replace-rncore-version.js +20 -0
- package/scripts/xcode/with-environment.sh +7 -1
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-utils.rb +92 -5
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/animated/createAnimatedPropsHook.js +2 -2
- package/src/private/components/virtualcollection/FlingConstants.js +21 -0
- package/src/private/components/virtualcollection/Virtual.js +62 -0
- package/src/private/components/virtualcollection/VirtualCollectionView.js +238 -0
- package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
- package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
- package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +13 -0
- package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
- package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
- package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
- package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +1 -1
- package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +1 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +41 -37
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -7
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
- package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
- package/src/private/renderer/events/ReactNativeResponder.js +687 -0
- package/src/private/renderer/events/ResponderEvent.js +40 -0
- package/src/private/renderer/events/ResponderTouchHistoryStore.js +258 -0
- package/src/private/renderer/events/dispatchNativeEvent.js +83 -0
- package/src/private/setup/setUpDOM.js +20 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppState.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeVibration.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +2 -2
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/utilities/toExtendedError.js +1 -1
- package/src/private/viewtransition/specs/NativeViewTransition.js +33 -0
- package/src/private/webapis/dom/events/Event.js +10 -1
- package/src/private/webapis/dom/events/EventTarget.js +60 -18
- package/src/private/webapis/dom/events/internals/EventInternals.js +18 -1
- package/src/private/webapis/dom/events/internals/EventTargetInternals.js +12 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +24 -0
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +4 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +70 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +1 -1
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +5 -9
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -2
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +2 -2
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +2 -2
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +4 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19669
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11129
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12930
- package/Libraries/Renderer/shims/ReactNative.js +0 -27
- package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
- package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
- package/Libraries/Utilities/createPerformanceLogger.js +0 -329
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -442
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
- package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
package com.facebook.react.uimanager
|
|
9
9
|
|
|
10
10
|
import android.graphics.Point
|
|
11
|
-
import android.graphics.Rect
|
|
12
11
|
import android.view.View
|
|
13
12
|
import androidx.annotation.UiThread
|
|
13
|
+
import androidx.core.view.ViewCompat
|
|
14
|
+
import androidx.core.view.WindowInsetsCompat
|
|
14
15
|
import com.facebook.infer.annotation.Assertions
|
|
16
|
+
import com.facebook.react.views.view.isEdgeToEdgeFeatureFlagOn
|
|
15
17
|
|
|
16
18
|
public object RootViewUtil {
|
|
17
19
|
/** Returns the root view of a given view in a react application. */
|
|
@@ -34,12 +36,20 @@ public object RootViewUtil {
|
|
|
34
36
|
val locationInWindow = IntArray(2)
|
|
35
37
|
v.getLocationInWindow(locationInWindow)
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
if (!isEdgeToEdgeFeatureFlagOn) {
|
|
40
|
+
// When not in edge-to-edge mode, subtract the top system bar insets so the offset is
|
|
41
|
+
// relative to the content area (below the status bar / cutout).
|
|
42
|
+
ViewCompat.getRootWindowInsets(v)?.apply {
|
|
43
|
+
val insets =
|
|
44
|
+
getInsets(
|
|
45
|
+
WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.displayCutout()
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
locationInWindow[0] -= insets.left
|
|
49
|
+
locationInWindow[1] -= insets.top
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
43
53
|
return Point(locationInWindow[0], locationInWindow[1])
|
|
44
54
|
}
|
|
45
55
|
}
|
|
@@ -11,6 +11,7 @@ package com.facebook.react.uimanager
|
|
|
11
11
|
|
|
12
12
|
import android.app.Activity
|
|
13
13
|
import android.content.Context
|
|
14
|
+
import android.view.Window
|
|
14
15
|
import com.facebook.react.bridge.Callback
|
|
15
16
|
import com.facebook.react.bridge.CatalystInstance
|
|
16
17
|
import com.facebook.react.bridge.JavaScriptContextHolder
|
|
@@ -22,6 +23,7 @@ import com.facebook.react.bridge.ReactContext
|
|
|
22
23
|
import com.facebook.react.bridge.ScrollEndedListeners
|
|
23
24
|
import com.facebook.react.bridge.UIManager
|
|
24
25
|
import com.facebook.react.common.annotations.internal.LegacyArchitecture
|
|
26
|
+
import com.facebook.react.interfaces.ExtraWindowEventListener
|
|
25
27
|
import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder
|
|
26
28
|
|
|
27
29
|
/**
|
|
@@ -67,6 +69,22 @@ public class ThemedReactContext(
|
|
|
67
69
|
reactApplicationContext.removeLifecycleEventListener(listener)
|
|
68
70
|
}
|
|
69
71
|
|
|
72
|
+
override fun addExtraWindowEventListener(listener: ExtraWindowEventListener) {
|
|
73
|
+
reactApplicationContext.addExtraWindowEventListener(listener)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
override fun removeExtraWindowEventListener(listener: ExtraWindowEventListener) {
|
|
77
|
+
reactApplicationContext.removeExtraWindowEventListener(listener)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
override fun onExtraWindowCreate(window: Window) {
|
|
81
|
+
reactApplicationContext.onExtraWindowCreate(window)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
override fun onExtraWindowDestroy(window: Window) {
|
|
85
|
+
reactApplicationContext.onExtraWindowDestroy(window)
|
|
86
|
+
}
|
|
87
|
+
|
|
70
88
|
override fun hasCurrentActivity(): Boolean = reactApplicationContext.hasCurrentActivity()
|
|
71
89
|
|
|
72
90
|
override fun getCurrentActivity(): Activity? = reactApplicationContext.getCurrentActivity()
|
|
@@ -16,8 +16,6 @@ import com.facebook.common.logging.FLog
|
|
|
16
16
|
import com.facebook.react.bridge.UiThreadUtil
|
|
17
17
|
import com.facebook.react.common.ReactConstants
|
|
18
18
|
import com.facebook.react.touch.ReactHitSlopView
|
|
19
|
-
import com.facebook.react.uimanager.common.UIManagerType
|
|
20
|
-
import com.facebook.react.uimanager.common.ViewUtil
|
|
21
19
|
import java.util.EnumSet
|
|
22
20
|
|
|
23
21
|
/**
|
|
@@ -86,7 +84,7 @@ public object TouchTargetHelper {
|
|
|
86
84
|
// Store eventCoords in array so that they are modified to be relative to the targetView found.
|
|
87
85
|
viewCoords[0] = eventX
|
|
88
86
|
viewCoords[1] = eventY
|
|
89
|
-
val nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup
|
|
87
|
+
val nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup)
|
|
90
88
|
if (nativeTargetView != null) {
|
|
91
89
|
val reactTargetView = findClosestReactAncestor(nativeTargetView)
|
|
92
90
|
if (reactTargetView != null) {
|
|
@@ -193,10 +191,7 @@ public object TouchTargetHelper {
|
|
|
193
191
|
if (view is ReactOverflowViewWithInset) {
|
|
194
192
|
// If the touch point is outside of the overflow inset for the view, we can safely ignore
|
|
195
193
|
// it.
|
|
196
|
-
if (
|
|
197
|
-
ViewUtil.getUIManagerType(view.id) == UIManagerType.FABRIC &&
|
|
198
|
-
!isTouchPointInViewWithOverflowInset(eventCoords[0], eventCoords[1], view)
|
|
199
|
-
) {
|
|
194
|
+
if (!isTouchPointInViewWithOverflowInset(eventCoords[0], eventCoords[1], view)) {
|
|
200
195
|
return null
|
|
201
196
|
}
|
|
202
197
|
|
|
@@ -217,7 +212,11 @@ public object TouchTargetHelper {
|
|
|
217
212
|
for (i in childrenCount - 1 downTo 0) {
|
|
218
213
|
val child = viewGroup.getChildAt(i)
|
|
219
214
|
val childPoint = tempPoint
|
|
220
|
-
getChildPoint(eventCoords[0], eventCoords[1], viewGroup, child, childPoint)
|
|
215
|
+
if (!getChildPoint(eventCoords[0], eventCoords[1], viewGroup, child, childPoint)) {
|
|
216
|
+
// Child's transform is non-invertible (e.g. scaleX: 0 or scaleY: 0): the child is
|
|
217
|
+
// visually degenerate, so it must not receive touches.
|
|
218
|
+
continue
|
|
219
|
+
}
|
|
221
220
|
// The childPoint value will contain the view coordinates relative to the child.
|
|
222
221
|
// We need to store the existing X,Y for the viewGroup away as it is possible this child
|
|
223
222
|
// will not actually be the target and so we restore them if not
|
|
@@ -282,7 +281,13 @@ public object TouchTargetHelper {
|
|
|
282
281
|
/**
|
|
283
282
|
* Returns the coordinates of a touch in the child View. It is transform-aware and will invert the
|
|
284
283
|
* transform Matrix to find the true local points. This code is taken from {@link
|
|
285
|
-
* ViewGroup#isTransformedTouchPointInView()}
|
|
284
|
+
* ViewGroup#isTransformedTouchPointInView()}.
|
|
285
|
+
*
|
|
286
|
+
* Returns `true` when [outLocalPoint] was populated with coordinates in the child's coordinate
|
|
287
|
+
* space. Returns `false` when the child's transform matrix is not invertible (for example
|
|
288
|
+
* `scaleX: 0` or `scaleY: 0`). On `false`, [outLocalPoint] is left in an indeterminate state and
|
|
289
|
+
* callers must skip the child — the shared [inverseMatrix] field is retained from the previous
|
|
290
|
+
* successful `invert`, so using it here would leak coordinates from another view.
|
|
286
291
|
*/
|
|
287
292
|
private fun getChildPoint(
|
|
288
293
|
x: Float,
|
|
@@ -290,21 +295,24 @@ public object TouchTargetHelper {
|
|
|
290
295
|
parent: ViewGroup,
|
|
291
296
|
child: View,
|
|
292
297
|
outLocalPoint: PointF,
|
|
293
|
-
) {
|
|
298
|
+
): Boolean {
|
|
294
299
|
var localX = x + parent.scrollX - child.left
|
|
295
300
|
var localY = y + parent.scrollY - child.top
|
|
296
301
|
val matrix = child.matrix
|
|
297
302
|
if (!matrix.isIdentity) {
|
|
303
|
+
val inverseMatrix = inverseMatrix
|
|
304
|
+
if (!matrix.invert(inverseMatrix)) {
|
|
305
|
+
return false
|
|
306
|
+
}
|
|
298
307
|
val localXY = matrixTransformCoords
|
|
299
308
|
localXY[0] = localX
|
|
300
309
|
localXY[1] = localY
|
|
301
|
-
val inverseMatrix = inverseMatrix
|
|
302
|
-
matrix.invert(inverseMatrix)
|
|
303
310
|
inverseMatrix.mapPoints(localXY)
|
|
304
311
|
localX = localXY[0]
|
|
305
312
|
localY = localXY[1]
|
|
306
313
|
}
|
|
307
314
|
outLocalPoint.set(localX, localY)
|
|
315
|
+
return true
|
|
308
316
|
}
|
|
309
317
|
|
|
310
318
|
/**
|
|
@@ -9,12 +9,16 @@ package com.facebook.react.uimanager
|
|
|
9
9
|
|
|
10
10
|
import com.facebook.common.logging.FLog
|
|
11
11
|
import com.facebook.react.bridge.NativeArray
|
|
12
|
+
import com.facebook.react.bridge.ReactNativeJNISoLoader
|
|
12
13
|
import com.facebook.react.bridge.ReadableArray
|
|
13
14
|
import com.facebook.react.bridge.ReadableMap
|
|
14
15
|
import com.facebook.react.bridge.ReadableType
|
|
15
16
|
import com.facebook.react.common.ReactConstants
|
|
16
17
|
|
|
17
18
|
public object TransformHelper {
|
|
19
|
+
init {
|
|
20
|
+
ReactNativeJNISoLoader.staticInit()
|
|
21
|
+
}
|
|
18
22
|
|
|
19
23
|
private val helperMatrix: ThreadLocal<DoubleArray> =
|
|
20
24
|
object : ThreadLocal<DoubleArray>() {
|
|
@@ -40,16 +44,16 @@ public object TransformHelper {
|
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
@Deprecated(
|
|
43
|
-
"Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray
|
|
47
|
+
"Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray) instead",
|
|
44
48
|
ReplaceWith("processTransform(...)"),
|
|
45
49
|
)
|
|
46
50
|
@JvmStatic
|
|
47
51
|
public fun processTransform(transforms: ReadableArray, result: DoubleArray) {
|
|
48
|
-
processTransform(transforms, result, 0f, 0f, null
|
|
52
|
+
processTransform(transforms, result, 0f, 0f, null)
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
@Deprecated(
|
|
52
|
-
"Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray
|
|
56
|
+
"Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray) instead",
|
|
53
57
|
ReplaceWith("processTransform(...)"),
|
|
54
58
|
)
|
|
55
59
|
@JvmStatic
|
|
@@ -59,8 +63,9 @@ public object TransformHelper {
|
|
|
59
63
|
viewWidth: Float,
|
|
60
64
|
viewHeight: Float,
|
|
61
65
|
transformOrigin: ReadableArray?,
|
|
66
|
+
allowPercentageResolution: Boolean,
|
|
62
67
|
) {
|
|
63
|
-
processTransform(transforms, result, viewWidth, viewHeight, transformOrigin
|
|
68
|
+
processTransform(transforms, result, viewWidth, viewHeight, transformOrigin)
|
|
64
69
|
}
|
|
65
70
|
|
|
66
71
|
@JvmStatic
|
|
@@ -70,9 +75,8 @@ public object TransformHelper {
|
|
|
70
75
|
viewWidth: Float,
|
|
71
76
|
viewHeight: Float,
|
|
72
77
|
transformOrigin: ReadableArray?,
|
|
73
|
-
allowPercentageResolution: Boolean,
|
|
74
78
|
) {
|
|
75
|
-
if (
|
|
79
|
+
if (transforms is NativeArray && transformOrigin is NativeArray?) {
|
|
76
80
|
nativeProcessTransform(transforms, result, viewWidth, viewHeight, transformOrigin)
|
|
77
81
|
return
|
|
78
82
|
}
|
|
@@ -84,7 +88,6 @@ public object TransformHelper {
|
|
|
84
88
|
viewWidth,
|
|
85
89
|
viewHeight,
|
|
86
90
|
transformOrigin,
|
|
87
|
-
allowPercentageResolution,
|
|
88
91
|
)
|
|
89
92
|
|
|
90
93
|
if (offsets != null) {
|
|
@@ -144,11 +147,11 @@ public object TransformHelper {
|
|
|
144
147
|
"translate" -> {
|
|
145
148
|
val value = transform.getArray(transformType)!!
|
|
146
149
|
val x =
|
|
147
|
-
if (value.getType(0) == ReadableType.String
|
|
150
|
+
if (value.getType(0) == ReadableType.String)
|
|
148
151
|
parseTranslateValue(value.getString(0)!!, viewWidth.toDouble())
|
|
149
152
|
else value.getDouble(0)
|
|
150
153
|
val y =
|
|
151
|
-
if (value.getType(1) == ReadableType.String
|
|
154
|
+
if (value.getType(1) == ReadableType.String)
|
|
152
155
|
parseTranslateValue(value.getString(1)!!, viewHeight.toDouble())
|
|
153
156
|
else value.getDouble(1)
|
|
154
157
|
val z = if (value.size() > 2) value.getDouble(2) else 0.0
|
|
@@ -156,20 +159,14 @@ public object TransformHelper {
|
|
|
156
159
|
}
|
|
157
160
|
"translateX" -> {
|
|
158
161
|
val translateValue =
|
|
159
|
-
if (
|
|
160
|
-
transform.getType(transformType) == ReadableType.String &&
|
|
161
|
-
allowPercentageResolution
|
|
162
|
-
)
|
|
162
|
+
if (transform.getType(transformType) == ReadableType.String)
|
|
163
163
|
parseTranslateValue(transform.getString(transformType)!!, viewWidth.toDouble())
|
|
164
164
|
else transform.getDouble(transformType)
|
|
165
165
|
MatrixMathHelper.applyTranslate2D(helperMatrix, translateValue, 0.0)
|
|
166
166
|
}
|
|
167
167
|
"translateY" -> {
|
|
168
168
|
val translateValue =
|
|
169
|
-
if (
|
|
170
|
-
transform.getType(transformType) == ReadableType.String &&
|
|
171
|
-
allowPercentageResolution
|
|
172
|
-
)
|
|
169
|
+
if (transform.getType(transformType) == ReadableType.String)
|
|
173
170
|
parseTranslateValue(transform.getString(transformType)!!, viewHeight.toDouble())
|
|
174
171
|
else transform.getDouble(transformType)
|
|
175
172
|
MatrixMathHelper.applyTranslate2D(helperMatrix, 0.0, translateValue)
|
|
@@ -210,7 +207,6 @@ public object TransformHelper {
|
|
|
210
207
|
viewWidth: Float,
|
|
211
208
|
viewHeight: Float,
|
|
212
209
|
transformOrigin: ReadableArray?,
|
|
213
|
-
allowPercentageResolution: Boolean,
|
|
214
210
|
): DoubleArray? {
|
|
215
211
|
if (transformOrigin == null || (viewHeight == 0f && viewWidth == 0f)) {
|
|
216
212
|
return null
|
|
@@ -224,12 +220,10 @@ public object TransformHelper {
|
|
|
224
220
|
when (transformOrigin.getType(i)) {
|
|
225
221
|
ReadableType.Number -> origin[i] = transformOrigin.getDouble(i)
|
|
226
222
|
ReadableType.String -> {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
origin[i] = (if (i == 0) viewWidth else viewHeight) * valPercent / 100.0
|
|
232
|
-
}
|
|
223
|
+
val part = transformOrigin.getString(i)!!
|
|
224
|
+
if (part.endsWith("%")) {
|
|
225
|
+
val valPercent = part.dropLast(1).toDouble()
|
|
226
|
+
origin[i] = (if (i == 0) viewWidth else viewHeight) * valPercent / 100.0
|
|
233
227
|
}
|
|
234
228
|
}
|
|
235
229
|
else -> {}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt
CHANGED
|
@@ -11,8 +11,10 @@ import com.facebook.proguard.annotations.DoNotStripAny
|
|
|
11
11
|
import com.facebook.react.bridge.NativeMap
|
|
12
12
|
import com.facebook.react.bridge.RuntimeExecutor
|
|
13
13
|
import com.facebook.soloader.SoLoader
|
|
14
|
+
import com.facebook.soloader.annotation.SoLoaderLibrary
|
|
14
15
|
import kotlin.jvm.JvmStatic
|
|
15
16
|
|
|
17
|
+
@SoLoaderLibrary("uimanagerjni")
|
|
16
18
|
@DoNotStripAny
|
|
17
19
|
internal object UIConstantsProviderBinding {
|
|
18
20
|
init {
|
|
@@ -58,6 +58,7 @@ public class UIImplementation {
|
|
|
58
58
|
/**
|
|
59
59
|
* @deprecated This method is a stub and always returns null.
|
|
60
60
|
*/
|
|
61
|
+
@Deprecated
|
|
61
62
|
protected ReactShadowNode createRootShadowNode() {
|
|
62
63
|
return null;
|
|
63
64
|
}
|
|
@@ -65,6 +66,7 @@ public class UIImplementation {
|
|
|
65
66
|
/**
|
|
66
67
|
* @deprecated This method is a stub and always returns null.
|
|
67
68
|
*/
|
|
69
|
+
@Deprecated
|
|
68
70
|
protected ReactShadowNode createShadowNode(String className) {
|
|
69
71
|
return null;
|
|
70
72
|
}
|
|
@@ -72,6 +74,7 @@ public class UIImplementation {
|
|
|
72
74
|
/**
|
|
73
75
|
* @deprecated This method is a stub and always returns null.
|
|
74
76
|
*/
|
|
77
|
+
@Deprecated
|
|
75
78
|
public final ReactShadowNode resolveShadowNode(int reactTag) {
|
|
76
79
|
return null;
|
|
77
80
|
}
|
|
@@ -79,6 +82,7 @@ public class UIImplementation {
|
|
|
79
82
|
/**
|
|
80
83
|
* @deprecated This method is a stub and always returns null.
|
|
81
84
|
*/
|
|
85
|
+
@Deprecated
|
|
82
86
|
protected final @Nullable ViewManager resolveViewManager(String className) {
|
|
83
87
|
return null;
|
|
84
88
|
}
|
|
@@ -14,16 +14,11 @@ import android.content.ContextWrapper
|
|
|
14
14
|
import android.view.View
|
|
15
15
|
import android.widget.EditText
|
|
16
16
|
import androidx.core.view.ViewCompat
|
|
17
|
-
import com.facebook.react.bridge.CatalystInstance
|
|
18
17
|
import com.facebook.react.bridge.ReactContext
|
|
19
18
|
import com.facebook.react.bridge.ReactNoCrashSoftException
|
|
20
19
|
import com.facebook.react.bridge.ReactSoftExceptionLogger
|
|
21
20
|
import com.facebook.react.bridge.UIManager
|
|
22
|
-
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
|
|
23
|
-
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
|
|
24
|
-
import com.facebook.react.common.build.ReactBuildConfig
|
|
25
21
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
26
|
-
import com.facebook.react.uimanager.common.ViewUtil.getUIManagerType
|
|
27
22
|
import com.facebook.react.uimanager.events.EventDispatcher
|
|
28
23
|
import com.facebook.react.uimanager.events.EventDispatcherProvider
|
|
29
24
|
|
|
@@ -38,78 +33,31 @@ public object UIManagerHelper {
|
|
|
38
33
|
/** @return a [UIManager] that can handle the react tag received by parameter. */
|
|
39
34
|
@JvmStatic
|
|
40
35
|
public fun getUIManagerForReactTag(context: ReactContext, reactTag: Int): UIManager? =
|
|
41
|
-
getUIManager(context,
|
|
36
|
+
getUIManager(context, UIManagerType.FABRIC)
|
|
42
37
|
|
|
43
38
|
/** @return a [UIManager] that can handle the react tag received by parameter. */
|
|
44
39
|
@JvmStatic
|
|
45
|
-
public fun getUIManager(context: ReactContext, @UIManagerType uiManagerType: Int): UIManager?
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
@JvmStatic
|
|
49
|
-
private fun getUIManager(
|
|
50
|
-
context: ReactContext,
|
|
51
|
-
@UIManagerType uiManagerType: Int,
|
|
52
|
-
returnNullIfCatalystIsInactive: Boolean,
|
|
53
|
-
): UIManager? {
|
|
54
|
-
if (ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE || context.isBridgeless()) {
|
|
55
|
-
val uiManager = context.getFabricUIManager()
|
|
56
|
-
if (uiManager == null) {
|
|
57
|
-
ReactSoftExceptionLogger.logSoftException(
|
|
58
|
-
TAG,
|
|
59
|
-
ReactNoCrashSoftException(
|
|
60
|
-
"Cannot get UIManager because the instance hasn't been initialized yet."
|
|
61
|
-
),
|
|
62
|
-
)
|
|
63
|
-
return null
|
|
64
|
-
}
|
|
65
|
-
return uiManager
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// The following code is compiled-out when `context.isBridgeless() == true &&
|
|
69
|
-
// ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true ` because:
|
|
70
|
-
// - BridgelessReactContext.isBridgeless() is set to true statically
|
|
71
|
-
// - BridgeReactContext is compiled-out when UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true
|
|
72
|
-
//
|
|
73
|
-
// To detect a potential regression we add the following assertion ERROR
|
|
74
|
-
LegacyArchitectureLogger.assertLegacyArchitecture(
|
|
75
|
-
"UIManagerHelper.getUIManager(context, uiManagerType)",
|
|
76
|
-
LegacyArchitectureLogLevel.ERROR,
|
|
77
|
-
)
|
|
78
|
-
if (!context.hasCatalystInstance()) {
|
|
40
|
+
public fun getUIManager(context: ReactContext, @UIManagerType uiManagerType: Int): UIManager? {
|
|
41
|
+
if (!context.hasActiveReactInstance()) {
|
|
79
42
|
ReactSoftExceptionLogger.logSoftException(
|
|
80
43
|
TAG,
|
|
81
44
|
ReactNoCrashSoftException(
|
|
82
|
-
"Cannot get UIManager because the context doesn't contain
|
|
45
|
+
"Cannot get UIManager because the context doesn't contain an active React instance."
|
|
83
46
|
),
|
|
84
47
|
)
|
|
85
48
|
return null
|
|
86
49
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (
|
|
50
|
+
|
|
51
|
+
val uiManager = context.getFabricUIManager()
|
|
52
|
+
if (uiManager == null) {
|
|
90
53
|
ReactSoftExceptionLogger.logSoftException(
|
|
91
54
|
TAG,
|
|
92
55
|
ReactNoCrashSoftException(
|
|
93
|
-
"Cannot get UIManager because the
|
|
94
|
-
" CatalystInstance."
|
|
56
|
+
"Cannot get UIManager because the instance hasn't been initialized yet."
|
|
95
57
|
),
|
|
96
58
|
)
|
|
97
|
-
if (returnNullIfCatalystIsInactive) {
|
|
98
|
-
return null
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
val catalystInstance: CatalystInstance = context.getCatalystInstance()
|
|
102
|
-
try {
|
|
103
|
-
return if (uiManagerType == UIManagerType.Companion.FABRIC) context.getFabricUIManager()
|
|
104
|
-
else catalystInstance.getNativeModule<UIManagerModule>(UIManagerModule::class.java)
|
|
105
|
-
} catch (_: IllegalArgumentException) {
|
|
106
|
-
// TODO T67518514 Clean this up once we migrate everything over to bridgeless mode
|
|
107
|
-
ReactSoftExceptionLogger.logSoftException(
|
|
108
|
-
TAG,
|
|
109
|
-
ReactNoCrashSoftException("Cannot get UIManager for UIManagerType: $uiManagerType"),
|
|
110
|
-
)
|
|
111
|
-
return catalystInstance.getNativeModule<UIManagerModule>(UIManagerModule::class.java)
|
|
112
59
|
}
|
|
60
|
+
return uiManager
|
|
113
61
|
}
|
|
114
62
|
|
|
115
63
|
/** @return the [EventDispatcher] that handles events for the given [ReactContext]. */
|
|
@@ -170,15 +118,7 @@ public object UIManagerHelper {
|
|
|
170
118
|
public fun getSurfaceId(view: View): Int {
|
|
171
119
|
if (view is ReactRoot) {
|
|
172
120
|
val rootView = view as ReactRoot
|
|
173
|
-
return
|
|
174
|
-
else -1
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
val reactTag = view.id
|
|
178
|
-
|
|
179
|
-
// In non-Fabric we don't have (or use) SurfaceId
|
|
180
|
-
if (getUIManagerType(reactTag) == UIManagerType.LEGACY) {
|
|
181
|
-
return -1
|
|
121
|
+
return rootView.getRootViewTag()
|
|
182
122
|
}
|
|
183
123
|
|
|
184
124
|
var context = view.context
|
|
@@ -192,7 +132,7 @@ public object UIManagerHelper {
|
|
|
192
132
|
ReactSoftExceptionLogger.logSoftException(
|
|
193
133
|
TAG,
|
|
194
134
|
IllegalStateException(
|
|
195
|
-
"Fabric View [$
|
|
135
|
+
"Fabric View [${view.id}] does not have SurfaceId associated with it"
|
|
196
136
|
),
|
|
197
137
|
)
|
|
198
138
|
}
|
|
@@ -10,7 +10,6 @@ package com.facebook.react.uimanager;
|
|
|
10
10
|
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_UI_MANAGER_MODULE_CONSTANTS_END;
|
|
11
11
|
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_UI_MANAGER_MODULE_CONSTANTS_START;
|
|
12
12
|
import static com.facebook.react.uimanager.common.UIManagerType.FABRIC;
|
|
13
|
-
import static com.facebook.react.uimanager.common.UIManagerType.LEGACY;
|
|
14
13
|
|
|
15
14
|
import android.content.ComponentCallbacks2;
|
|
16
15
|
import android.content.res.Configuration;
|
|
@@ -44,7 +43,6 @@ import com.facebook.react.common.build.ReactBuildConfig;
|
|
|
44
43
|
import com.facebook.react.module.annotations.ReactModule;
|
|
45
44
|
import com.facebook.react.uimanager.common.ViewUtil;
|
|
46
45
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
47
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
48
46
|
import com.facebook.react.uimanager.internal.LegacyArchitectureShadowNodeLogger;
|
|
49
47
|
import com.facebook.systrace.Systrace;
|
|
50
48
|
import com.facebook.systrace.SystraceMessage;
|
|
@@ -511,9 +509,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
511
509
|
int reactTag, Dynamic commandId, @Nullable ReadableArray commandArgs) {
|
|
512
510
|
// Fabric dispatchCommands should go through the JSI API - this will crash in Fabric.
|
|
513
511
|
@Nullable
|
|
514
|
-
UIManager uiManager =
|
|
515
|
-
UIManagerHelper.getUIManager(
|
|
516
|
-
getReactApplicationContext(), ViewUtil.getUIManagerType(reactTag));
|
|
512
|
+
UIManager uiManager = UIManagerHelper.getUIManager(getReactApplicationContext(), FABRIC);
|
|
517
513
|
if (uiManager == null) {
|
|
518
514
|
return;
|
|
519
515
|
}
|
|
@@ -567,16 +563,13 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
567
563
|
return null;
|
|
568
564
|
}
|
|
569
565
|
|
|
566
|
+
@Override
|
|
570
567
|
@ReactMethod
|
|
571
568
|
public void sendAccessibilityEvent(int tag, int eventType) {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
UIManagerHelper.getUIManager(getReactApplicationContext(), uiManagerType);
|
|
577
|
-
if (fabricUIManager != null) {
|
|
578
|
-
fabricUIManager.sendAccessibilityEvent(tag, eventType);
|
|
579
|
-
}
|
|
569
|
+
// TODO: T65793557 Refactor sendAccessibilityEvent to use ViewCommands
|
|
570
|
+
UIManager fabricUIManager = UIManagerHelper.getUIManager(getReactApplicationContext(), FABRIC);
|
|
571
|
+
if (fabricUIManager != null) {
|
|
572
|
+
fabricUIManager.sendAccessibilityEvent(tag, eventType);
|
|
580
573
|
}
|
|
581
574
|
}
|
|
582
575
|
|
|
@@ -601,10 +594,12 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
601
594
|
*/
|
|
602
595
|
public void prependUIBlock(UIBlock block) {}
|
|
603
596
|
|
|
597
|
+
@Override
|
|
604
598
|
public void addUIManagerEventListener(UIManagerListener listener) {
|
|
605
599
|
mUIManagerListeners.add(listener);
|
|
606
600
|
}
|
|
607
601
|
|
|
602
|
+
@Override
|
|
608
603
|
public void removeUIManagerEventListener(UIManagerListener listener) {
|
|
609
604
|
mUIManagerListeners.remove(listener);
|
|
610
605
|
}
|
|
@@ -631,6 +626,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
631
626
|
* Updates the styles of the {@link ReactShadowNode} based on the Measure specs received by
|
|
632
627
|
* parameters. offsetX and offsetY aren't used in non-Fabric, so they're ignored here.
|
|
633
628
|
*/
|
|
629
|
+
@Override
|
|
634
630
|
public void updateRootLayoutSpecs(
|
|
635
631
|
final int rootViewTag,
|
|
636
632
|
final int widthMeasureSpec,
|
|
@@ -665,9 +661,6 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
665
661
|
@Override
|
|
666
662
|
public void receiveEvent(
|
|
667
663
|
int surfaceId, int reactTag, String eventName, @Nullable WritableMap event) {
|
|
668
|
-
assert
|
|
669
|
-
getReactApplicationContext()
|
|
670
|
-
.getJSModule(RCTEventEmitter.class)
|
|
671
|
-
.receiveEvent(reactTag, eventName, event);
|
|
664
|
+
assert false;
|
|
672
665
|
}
|
|
673
666
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
package com.facebook.react.uimanager.common
|
|
9
9
|
|
|
10
10
|
import android.view.View
|
|
11
|
+
import com.facebook.react.common.annotations.internal.LegacyArchitecture
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Utility object providing helper methods for working with React Native views.
|
|
@@ -33,53 +34,51 @@ public object ViewUtil {
|
|
|
33
34
|
* https://github.com/facebook/react/pull/12587
|
|
34
35
|
*
|
|
35
36
|
* @param viewTag tag of the view this is event is dispatched to
|
|
37
|
+
* @deprecated Fabric is now the only supported UIManager. This method always returns
|
|
38
|
+
* [UIManagerType.FABRIC].
|
|
36
39
|
*/
|
|
40
|
+
@Deprecated(
|
|
41
|
+
"Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
|
|
42
|
+
ReplaceWith("UIManagerType.FABRIC"),
|
|
43
|
+
)
|
|
44
|
+
@LegacyArchitecture
|
|
37
45
|
@JvmStatic
|
|
38
46
|
@UIManagerType
|
|
39
|
-
public fun getUIManagerType(viewTag: Int): Int =
|
|
40
|
-
if (viewTag % 2 == 0) {
|
|
41
|
-
UIManagerType.FABRIC
|
|
42
|
-
} else {
|
|
43
|
-
UIManagerType.LEGACY
|
|
44
|
-
}
|
|
47
|
+
public fun getUIManagerType(viewTag: Int): Int = UIManagerType.FABRIC
|
|
45
48
|
|
|
46
49
|
/**
|
|
47
50
|
* Overload for [getUIManagerType] that uses the view's id to determine if it originated from
|
|
48
51
|
* Fabric
|
|
52
|
+
*
|
|
53
|
+
* @deprecated Fabric is now the only supported UIManager. This method always returns
|
|
54
|
+
* [UIManagerType.FABRIC].
|
|
49
55
|
*/
|
|
50
|
-
@
|
|
56
|
+
@Deprecated(
|
|
57
|
+
"Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
|
|
58
|
+
ReplaceWith("UIManagerType.FABRIC"),
|
|
59
|
+
)
|
|
60
|
+
@LegacyArchitecture
|
|
61
|
+
@JvmStatic
|
|
62
|
+
@UIManagerType
|
|
63
|
+
public fun getUIManagerType(view: View): Int = UIManagerType.FABRIC
|
|
51
64
|
|
|
52
65
|
/**
|
|
53
66
|
* Version of getUIManagerType that uses both surfaceId and viewTag heuristics
|
|
54
67
|
*
|
|
55
68
|
* @param viewTag tag of the view this is event is dispatched to
|
|
56
69
|
* @param surfaceId ID of the corresponding surface
|
|
70
|
+
* @deprecated Fabric is now the only supported UIManager. This method always returns
|
|
71
|
+
* [UIManagerType.FABRIC].
|
|
57
72
|
*/
|
|
58
|
-
@
|
|
73
|
+
@Deprecated(
|
|
74
|
+
"Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
|
|
75
|
+
ReplaceWith("UIManagerType.FABRIC"),
|
|
76
|
+
)
|
|
77
|
+
@LegacyArchitecture
|
|
78
|
+
@Suppress("UNUSED_PARAMETER")
|
|
59
79
|
@JvmStatic
|
|
60
80
|
@UIManagerType
|
|
61
|
-
public fun getUIManagerType(viewTag: Int, surfaceId: Int): Int
|
|
62
|
-
// We have a contract that Fabric events *always* have a SurfaceId passed in, and non-Fabric
|
|
63
|
-
// events NEVER have a SurfaceId passed in (the default/placeholder of -1 is passed in instead).
|
|
64
|
-
//
|
|
65
|
-
// Why does this matter?
|
|
66
|
-
// Events can be sent to Views that are part of the View hierarchy *but not directly managed
|
|
67
|
-
// by React Native*. For example, embedded custom hierarchies, Litho hierarchies, etc.
|
|
68
|
-
// In those cases it's important to know that the Event should be sent to the Fabric or
|
|
69
|
-
// non-Fabric UIManager, and we cannot use the ViewTag for inference since it's not controlled
|
|
70
|
-
// by RN and is essentially a random number.
|
|
71
|
-
// At some point it would be great to pass the SurfaceContext here instead.
|
|
72
|
-
@UIManagerType
|
|
73
|
-
val uiManagerType = if (surfaceId == -1) UIManagerType.LEGACY else UIManagerType.FABRIC
|
|
74
|
-
if (uiManagerType == UIManagerType.LEGACY && !isRootTag(viewTag)) {
|
|
75
|
-
// TODO (T123064648): Some events for Fabric still didn't have the surfaceId set, so if it's
|
|
76
|
-
// not a React RootView, double check if the tag belongs to Fabric.
|
|
77
|
-
if (viewTag % 2 == 0) {
|
|
78
|
-
return UIManagerType.FABRIC
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return uiManagerType
|
|
82
|
-
}
|
|
81
|
+
public fun getUIManagerType(viewTag: Int, surfaceId: Int): Int = UIManagerType.FABRIC
|
|
83
82
|
|
|
84
83
|
/**
|
|
85
84
|
* @param viewTag react tag
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt
CHANGED
|
@@ -134,9 +134,11 @@ internal class BackgroundImageDrawable(
|
|
|
134
134
|
// So we draw in reverse (last drawn in canvas appears closest)
|
|
135
135
|
for (index in layers.indices.reversed()) {
|
|
136
136
|
val backgroundImageLayer = layers[index]
|
|
137
|
-
val size = backgroundSize?.let { it.getOrNull(index % it.size) }
|
|
138
|
-
val repeat =
|
|
139
|
-
|
|
137
|
+
val size = backgroundSize?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
|
|
138
|
+
val repeat =
|
|
139
|
+
backgroundRepeat?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
|
|
140
|
+
val position =
|
|
141
|
+
backgroundPosition?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
|
|
140
142
|
|
|
141
143
|
// 2. Calculate the size of a single tile.
|
|
142
144
|
val (tileWidth, tileHeight) =
|