react-native-tvos 0.85.3-0 → 0.86.0-0rc3
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.d.ts +1 -1
- package/Libraries/Components/ScrollView/ScrollView.js +4 -4
- 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/TV/TVViewPropTypes.js +9 -0
- 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 -91
- 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/TVViewConfig.js +1 -0
- 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/README.md +13 -1
- 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/ScrollView/RCTScrollViewComponentView.mm +35 -15
- 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 +32 -24
- 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 +33 -24
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +60 -11
- 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 +85 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +46 -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 +15 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +1 -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 +71 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
- 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/types/public/ReactNativeTVTypes.d.ts +9 -0
- 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
|
@@ -101,6 +101,7 @@ public class ReactScrollView extends ScrollView
|
|
|
101
101
|
private final VelocityHelper mVelocityHelper = new VelocityHelper();
|
|
102
102
|
private final Rect mTempRect = new Rect();
|
|
103
103
|
private final ValueAnimator DEFAULT_FLING_ANIMATOR = ObjectAnimator.ofInt(this, "scrollY", 0, 0);
|
|
104
|
+
private final @Nullable FpsListener mFpsListener;
|
|
104
105
|
|
|
105
106
|
private Rect mOverflowInset;
|
|
106
107
|
private @Nullable VirtualViewContainerState mVirtualViewContainerState;
|
|
@@ -113,7 +114,6 @@ public class ReactScrollView extends ScrollView
|
|
|
113
114
|
private boolean mRemoveClippedSubviews;
|
|
114
115
|
private boolean mScrollEnabled;
|
|
115
116
|
private boolean mSendMomentumEvents;
|
|
116
|
-
private @Nullable FpsListener mFpsListener;
|
|
117
117
|
private @Nullable String mScrollPerfTag;
|
|
118
118
|
private @Nullable Drawable mEndBackground;
|
|
119
119
|
private int mEndFillColor;
|
|
@@ -298,6 +298,7 @@ public class ReactScrollView extends ScrollView
|
|
|
298
298
|
mScrollEnabled = scrollEnabled;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
+
@Override
|
|
301
302
|
public boolean getScrollEnabled() {
|
|
302
303
|
return mScrollEnabled;
|
|
303
304
|
}
|
|
@@ -519,29 +520,39 @@ public class ReactScrollView extends ScrollView
|
|
|
519
520
|
}
|
|
520
521
|
|
|
521
522
|
/**
|
|
522
|
-
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
523
|
-
* Returns true if snap scrolling was performed, false otherwise.
|
|
523
|
+
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
524
|
+
* or scrollSnapOffset. Returns true if snap scrolling was performed, false otherwise.
|
|
524
525
|
*/
|
|
525
526
|
private boolean tryScrollSnapToChild(View focused) {
|
|
526
527
|
if (mSnapToAlignment != SNAP_ALIGNMENT_ITEM) {
|
|
527
528
|
return false;
|
|
528
529
|
}
|
|
529
530
|
|
|
530
|
-
kotlin.
|
|
531
|
+
kotlin.Triple<View, String, Integer> result =
|
|
532
|
+
ReactScrollViewHelper.findScrollSnap(focused, this);
|
|
531
533
|
if (result == null) {
|
|
532
534
|
return false;
|
|
533
535
|
}
|
|
534
536
|
|
|
535
537
|
View snapTarget = result.getFirst();
|
|
536
538
|
String alignment = result.getSecond();
|
|
539
|
+
Integer snapOffset = result.getThird();
|
|
537
540
|
|
|
538
541
|
Rect rect = new Rect();
|
|
539
542
|
snapTarget.getDrawingRect(rect);
|
|
540
543
|
offsetDescendantRectToMyCoords(snapTarget, rect);
|
|
541
544
|
|
|
542
|
-
int viewportHeight = getHeight() - getPaddingTop() - getPaddingBottom();
|
|
543
545
|
int maxScrollY = getMaxScrollY();
|
|
544
546
|
|
|
547
|
+
if (snapOffset != null) {
|
|
548
|
+
int targetOffset = ReactScrollViewHelper.computeScrollSnapTargetForOffset(
|
|
549
|
+
rect.top, snapOffset, mSnapInterval, maxScrollY);
|
|
550
|
+
reactSmoothScrollTo(getScrollX(), targetOffset);
|
|
551
|
+
return true;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
int viewportHeight = getHeight() - getPaddingTop() - getPaddingBottom();
|
|
555
|
+
|
|
545
556
|
Integer targetOffset = ReactScrollViewHelper.computeScrollSnapOffset(
|
|
546
557
|
rect.top, rect.bottom, viewportHeight, alignment, mSnapInterval, mSnapToItemPadding, maxScrollY);
|
|
547
558
|
if (targetOffset == null) {
|
|
@@ -783,6 +794,7 @@ public class ReactScrollView extends ScrollView
|
|
|
783
794
|
float vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL);
|
|
784
795
|
if (vScroll != 0) {
|
|
785
796
|
// Perform the scroll
|
|
797
|
+
enableFpsListener();
|
|
786
798
|
boolean result = super.dispatchGenericMotionEvent(ev);
|
|
787
799
|
// Schedule snap alignment to run after scrolling stops
|
|
788
800
|
if (result
|
|
@@ -793,6 +805,7 @@ public class ReactScrollView extends ScrollView
|
|
|
793
805
|
// Cancel any pending post-touch runnable and reschedule
|
|
794
806
|
if (mPostTouchRunnable != null) {
|
|
795
807
|
removeCallbacks(mPostTouchRunnable);
|
|
808
|
+
mPostTouchRunnable = null;
|
|
796
809
|
}
|
|
797
810
|
mPostTouchRunnable =
|
|
798
811
|
new Runnable() {
|
|
@@ -806,9 +819,12 @@ public class ReactScrollView extends ScrollView
|
|
|
806
819
|
velocityY = 0;
|
|
807
820
|
}
|
|
808
821
|
flingAndSnap(velocityY);
|
|
822
|
+
handlePostTouchScrolling(0, velocityY);
|
|
809
823
|
}
|
|
810
824
|
};
|
|
811
825
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
826
|
+
} else {
|
|
827
|
+
handlePostTouchScrolling(0, 0);
|
|
812
828
|
}
|
|
813
829
|
return result;
|
|
814
830
|
}
|
|
@@ -871,14 +887,6 @@ public class ReactScrollView extends ScrollView
|
|
|
871
887
|
}
|
|
872
888
|
}
|
|
873
889
|
|
|
874
|
-
@Override
|
|
875
|
-
public boolean getClipToPadding() {
|
|
876
|
-
if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
|
|
877
|
-
return mOverflow != Overflow.VISIBLE;
|
|
878
|
-
}
|
|
879
|
-
return super.getClipToPadding();
|
|
880
|
-
}
|
|
881
|
-
|
|
882
890
|
@Override
|
|
883
891
|
public void getClippingRect(Rect outClippingRect) {
|
|
884
892
|
outClippingRect.set(Assertions.assertNotNull(mClippingRect));
|
|
@@ -972,6 +980,7 @@ public class ReactScrollView extends ScrollView
|
|
|
972
980
|
}
|
|
973
981
|
|
|
974
982
|
@Nullable
|
|
983
|
+
@Override
|
|
975
984
|
public StateWrapper getStateWrapper() {
|
|
976
985
|
return mStateWrapper;
|
|
977
986
|
}
|
|
@@ -1437,6 +1446,7 @@ public class ReactScrollView extends ScrollView
|
|
|
1437
1446
|
* <p>`smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
|
|
1438
1447
|
* scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
|
|
1439
1448
|
*/
|
|
1449
|
+
@Override
|
|
1440
1450
|
public void reactSmoothScrollTo(int x, int y) {
|
|
1441
1451
|
if (mScrollAnimationEnabled || !UiModeUtils.isTVDevice(getContext())) {
|
|
1442
1452
|
ReactScrollViewHelper.smoothScrollTo(this, x, y);
|
|
@@ -1551,10 +1561,6 @@ public class ReactScrollView extends ScrollView
|
|
|
1551
1561
|
return;
|
|
1552
1562
|
}
|
|
1553
1563
|
|
|
1554
|
-
if (mMaintainVisibleContentPositionHelper != null) {
|
|
1555
|
-
mMaintainVisibleContentPositionHelper.updateScrollPosition();
|
|
1556
|
-
}
|
|
1557
|
-
|
|
1558
1564
|
if (isShown() && isContentReady()) {
|
|
1559
1565
|
int currentScrollY = getScrollY();
|
|
1560
1566
|
int maxScrollY = getMaxScrollY();
|
|
@@ -1612,11 +1618,12 @@ public class ReactScrollView extends ScrollView
|
|
|
1612
1618
|
* and that you are **not** overriding the ScrollView content view to pass in a `translateY`
|
|
1613
1619
|
* style. `translateY` must never be set from ReactJS while using this feature!
|
|
1614
1620
|
*/
|
|
1615
|
-
public void
|
|
1616
|
-
|
|
1621
|
+
public void setScrollAwayPaddingEnabledUnstable(int topPadding, int bottomPadding) {
|
|
1622
|
+
setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true);
|
|
1617
1623
|
}
|
|
1618
1624
|
|
|
1619
|
-
public void
|
|
1625
|
+
public void setScrollAwayPaddingEnabledUnstable(
|
|
1626
|
+
int topPadding, int bottomPadding, boolean updateState) {
|
|
1620
1627
|
int count = getChildCount();
|
|
1621
1628
|
|
|
1622
1629
|
Assertions.assertCondition(
|
|
@@ -1633,17 +1640,18 @@ public class ReactScrollView extends ScrollView
|
|
|
1633
1640
|
// Add the topPadding value as the bottom padding for the ScrollView.
|
|
1634
1641
|
// Otherwise, we'll push down the contents of the scroll view down too
|
|
1635
1642
|
// far off screen.
|
|
1636
|
-
setPadding(0, 0, 0, topPadding);
|
|
1643
|
+
setPadding(0, 0, 0, topPadding + bottomPadding);
|
|
1637
1644
|
}
|
|
1638
1645
|
|
|
1639
1646
|
if (updateState) {
|
|
1640
|
-
updateScrollAwayState(topPadding);
|
|
1647
|
+
updateScrollAwayState(topPadding, bottomPadding);
|
|
1641
1648
|
}
|
|
1642
1649
|
setRemoveClippedSubviews(mRemoveClippedSubviews);
|
|
1643
1650
|
}
|
|
1644
1651
|
|
|
1645
|
-
private void updateScrollAwayState(int scrollAwayPaddingTop) {
|
|
1652
|
+
private void updateScrollAwayState(int scrollAwayPaddingTop, int scrollAwayPaddingBottom) {
|
|
1646
1653
|
getReactScrollViewScrollState().setScrollAwayPaddingTop(scrollAwayPaddingTop);
|
|
1654
|
+
getReactScrollViewScrollState().setScrollAwayPaddingBottom(scrollAwayPaddingBottom);
|
|
1647
1655
|
ReactScrollViewHelper.forceUpdateState(this);
|
|
1648
1656
|
}
|
|
1649
1657
|
|
|
@@ -1652,7 +1660,8 @@ public class ReactScrollView extends ScrollView
|
|
|
1652
1660
|
mReactScrollViewScrollState = scrollState;
|
|
1653
1661
|
if (ReactNativeFeatureFlags.enableViewCulling()
|
|
1654
1662
|
|| ReactNativeFeatureFlags.useTraitHiddenOnAndroid()) {
|
|
1655
|
-
|
|
1663
|
+
setScrollAwayPaddingEnabledUnstable(
|
|
1664
|
+
scrollState.getScrollAwayPaddingTop(), scrollState.getScrollAwayPaddingBottom(), false);
|
|
1656
1665
|
|
|
1657
1666
|
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1658
1667
|
scrollTo(scrollPosition.x, scrollPosition.y);
|
|
@@ -31,7 +31,6 @@ import com.facebook.react.uimanager.ReactClippingViewGroup
|
|
|
31
31
|
import com.facebook.react.uimanager.StateWrapper
|
|
32
32
|
import com.facebook.react.uimanager.UIManagerHelper
|
|
33
33
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
34
|
-
import com.facebook.react.uimanager.common.ViewUtil
|
|
35
34
|
import com.facebook.react.views.view.ReactViewGroup
|
|
36
35
|
import java.lang.ref.WeakReference
|
|
37
36
|
import java.util.concurrent.CopyOnWriteArrayList
|
|
@@ -46,6 +45,7 @@ public object ReactScrollViewHelper {
|
|
|
46
45
|
private const val CONTENT_OFFSET_LEFT = "contentOffsetLeft"
|
|
47
46
|
private const val CONTENT_OFFSET_TOP = "contentOffsetTop"
|
|
48
47
|
private const val SCROLL_AWAY_PADDING_TOP = "scrollAwayPaddingTop"
|
|
48
|
+
private const val SCROLL_AWAY_PADDING_BOTTOM = "scrollAwayPaddingBottom"
|
|
49
49
|
|
|
50
50
|
public const val MOMENTUM_DELAY: Long = 20
|
|
51
51
|
public const val OVER_SCROLL_ALWAYS: String = "always"
|
|
@@ -351,9 +351,6 @@ public object ReactScrollViewHelper {
|
|
|
351
351
|
scrollY,
|
|
352
352
|
)
|
|
353
353
|
}
|
|
354
|
-
if (ViewUtil.getUIManagerType(scrollView.id) == UIManagerType.LEGACY) {
|
|
355
|
-
return
|
|
356
|
-
}
|
|
357
354
|
// NOTE: if the state wrapper is null, we shouldn't even update
|
|
358
355
|
// the scroll state because there is a chance of going out of sync!
|
|
359
356
|
if (scrollView.stateWrapper == null) {
|
|
@@ -377,6 +374,7 @@ public object ReactScrollViewHelper {
|
|
|
377
374
|
where T : HasScrollState?, T : HasStateWrapper?, T : ViewGroup {
|
|
378
375
|
val scrollState = scrollView.reactScrollViewScrollState
|
|
379
376
|
val scrollAwayPaddingTop = scrollState.scrollAwayPaddingTop
|
|
377
|
+
val scrollAwayPaddingBottom = scrollState.scrollAwayPaddingBottom
|
|
380
378
|
val scrollPos = scrollState.lastStateUpdateScroll
|
|
381
379
|
val scrollX = scrollPos.x
|
|
382
380
|
val scrollY = scrollPos.y
|
|
@@ -398,6 +396,10 @@ public object ReactScrollViewHelper {
|
|
|
398
396
|
SCROLL_AWAY_PADDING_TOP,
|
|
399
397
|
toDIPFromPixel(scrollAwayPaddingTop.toFloat()).toDouble(),
|
|
400
398
|
)
|
|
399
|
+
newStateData.putDouble(
|
|
400
|
+
SCROLL_AWAY_PADDING_BOTTOM,
|
|
401
|
+
toDIPFromPixel(scrollAwayPaddingBottom.toFloat()).toDouble(),
|
|
402
|
+
)
|
|
401
403
|
stateWrapper.updateState(newStateData)
|
|
402
404
|
}
|
|
403
405
|
}
|
|
@@ -418,9 +420,14 @@ public object ReactScrollViewHelper {
|
|
|
418
420
|
val scrollX = toPixelFromDIP(stateData.getDouble(CONTENT_OFFSET_LEFT)).toInt()
|
|
419
421
|
val scrollY = toPixelFromDIP(stateData.getDouble(CONTENT_OFFSET_TOP)).toInt()
|
|
420
422
|
val scrollAwayPaddingTop = toPixelFromDIP(stateData.getDouble(SCROLL_AWAY_PADDING_TOP)).toInt()
|
|
423
|
+
val scrollAwayPaddingBottom =
|
|
424
|
+
toPixelFromDIP(stateData.getDouble(SCROLL_AWAY_PADDING_BOTTOM)).toInt()
|
|
421
425
|
|
|
422
426
|
val scrollState =
|
|
423
|
-
scrollView.reactScrollViewScrollState.copy(
|
|
427
|
+
scrollView.reactScrollViewScrollState.copy(
|
|
428
|
+
scrollAwayPaddingTop = scrollAwayPaddingTop,
|
|
429
|
+
scrollAwayPaddingBottom = scrollAwayPaddingBottom,
|
|
430
|
+
)
|
|
424
431
|
scrollState.setLastStateUpdateScroll(scrollX, scrollY)
|
|
425
432
|
scrollView.reactScrollViewScrollState = scrollState
|
|
426
433
|
}
|
|
@@ -569,27 +576,67 @@ public object ReactScrollViewHelper {
|
|
|
569
576
|
|
|
570
577
|
/**
|
|
571
578
|
* Walks up the view hierarchy from the focused view to find a ReactViewGroup with
|
|
572
|
-
* scrollSnapAlign set. Returns a
|
|
579
|
+
* either scrollSnapAlign or scrollSnapOffset set. Returns a Triple of (snapTarget,
|
|
580
|
+
* alignment, offsetPx) or null if neither marker was found. Exactly one of
|
|
581
|
+
* alignment/offsetPx is non-null on return.
|
|
582
|
+
*
|
|
583
|
+
* Walk is inner→outer, latest marker wins. On a single view declaring both,
|
|
584
|
+
* scrollSnapOffset wins as the more specific config.
|
|
573
585
|
*
|
|
574
586
|
* Shared by [ReactScrollView] and [ReactHorizontalScrollView].
|
|
575
587
|
*/
|
|
576
588
|
@JvmStatic
|
|
577
|
-
public fun
|
|
589
|
+
public fun findScrollSnap(focused: View, scrollView: ViewGroup): Triple<View, String?, Int?>? {
|
|
578
590
|
var view: View? = focused
|
|
579
591
|
var snapTarget: View? = null
|
|
580
592
|
var alignment: String? = null
|
|
593
|
+
var offset: Int? = null
|
|
581
594
|
while (view != null && view !== scrollView) {
|
|
582
595
|
if (view is ReactViewGroup) {
|
|
583
|
-
val
|
|
584
|
-
|
|
585
|
-
|
|
596
|
+
val o = view.scrollSnapOffset
|
|
597
|
+
val a = view.scrollSnapAlign
|
|
598
|
+
if (o != null) {
|
|
599
|
+
offset = o
|
|
600
|
+
alignment = null
|
|
601
|
+
snapTarget = view
|
|
602
|
+
} else if (a != null) {
|
|
603
|
+
alignment = a
|
|
604
|
+
offset = null
|
|
586
605
|
snapTarget = view
|
|
587
606
|
}
|
|
588
607
|
}
|
|
589
608
|
val parent = view.parent
|
|
590
609
|
view = if (parent is View) parent else null
|
|
591
610
|
}
|
|
592
|
-
return if (
|
|
611
|
+
return if (snapTarget != null && (alignment != null || offset != null))
|
|
612
|
+
Triple(snapTarget, alignment, offset) else null
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Computes the target scroll offset for the per-item scrollSnapOffset path:
|
|
617
|
+
* land the snap target's leading edge at `snapOffset` pixels from the viewport origin.
|
|
618
|
+
*
|
|
619
|
+
* Returns the clamped target offset.
|
|
620
|
+
*
|
|
621
|
+
* Shared by [ReactScrollView] and [ReactHorizontalScrollView].
|
|
622
|
+
*
|
|
623
|
+
* @param focusedStart the start coordinate of the snap target in scroll view coordinates
|
|
624
|
+
* @param snapOffset the per-item pixel offset from the viewport origin
|
|
625
|
+
* @param snapInterval the snap interval (0 if not set)
|
|
626
|
+
* @param maxScrollOffset the maximum scroll offset for clamping
|
|
627
|
+
*/
|
|
628
|
+
@JvmStatic
|
|
629
|
+
public fun computeScrollSnapTargetForOffset(
|
|
630
|
+
focusedStart: Int,
|
|
631
|
+
snapOffset: Int,
|
|
632
|
+
snapInterval: Int,
|
|
633
|
+
maxScrollOffset: Int,
|
|
634
|
+
): Int {
|
|
635
|
+
var targetOffset = focusedStart - snapOffset
|
|
636
|
+
if (snapInterval > 0) {
|
|
637
|
+
targetOffset = (Math.floor(targetOffset.toDouble() / snapInterval) * snapInterval).toInt()
|
|
638
|
+
}
|
|
639
|
+
return Math.max(0, Math.min(targetOffset, maxScrollOffset))
|
|
593
640
|
}
|
|
594
641
|
|
|
595
642
|
/**
|
|
@@ -691,6 +738,8 @@ public object ReactScrollViewHelper {
|
|
|
691
738
|
val finalAnimatedPositionScroll: Point = Point(),
|
|
692
739
|
/** Get the padding on the top for nav bar */
|
|
693
740
|
var scrollAwayPaddingTop: Int = 0,
|
|
741
|
+
/** Get the padding on the bottom for tab bar */
|
|
742
|
+
var scrollAwayPaddingBottom: Int = 0,
|
|
694
743
|
/** Get the Fabric state of last scroll position */
|
|
695
744
|
val lastStateUpdateScroll: Point = Point(-1, -1),
|
|
696
745
|
/** Get true if the previous animation was canceled */
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.views.text
|
|
9
9
|
|
|
10
|
-
import android.content.Context
|
|
11
10
|
import android.graphics.Rect
|
|
12
11
|
import android.text.Layout
|
|
13
12
|
import android.text.TextPaint
|
|
13
|
+
import android.util.DisplayMetrics
|
|
14
14
|
import com.facebook.react.bridge.Arguments
|
|
15
15
|
import com.facebook.react.bridge.WritableArray
|
|
16
16
|
import com.facebook.react.bridge.buildReadableMap
|
|
@@ -22,8 +22,7 @@ internal object FontMetricsUtil {
|
|
|
22
22
|
private const val AMPLIFICATION_FACTOR = 100f
|
|
23
23
|
|
|
24
24
|
@JvmStatic
|
|
25
|
-
fun getFontMetrics(text: CharSequence, layout: Layout,
|
|
26
|
-
val dm = context.resources.displayMetrics
|
|
25
|
+
fun getFontMetrics(text: CharSequence, layout: Layout, dm: DisplayMetrics): WritableArray {
|
|
27
26
|
val lines = Arguments.createArray()
|
|
28
27
|
|
|
29
28
|
// To calculate xHeight and capHeight we have to render an "x" and "T" and manually measure
|
|
@@ -26,37 +26,29 @@ import android.view.View;
|
|
|
26
26
|
import android.view.ViewGroup;
|
|
27
27
|
import androidx.annotation.Nullable;
|
|
28
28
|
import androidx.appcompat.widget.AppCompatTextView;
|
|
29
|
-
import androidx.appcompat.widget.TintContextWrapper;
|
|
30
29
|
import androidx.core.view.AccessibilityDelegateCompat;
|
|
31
30
|
import androidx.core.view.ViewCompat;
|
|
32
31
|
import androidx.customview.widget.ExploreByTouchHelper;
|
|
33
32
|
import com.facebook.react.views.common.UiModeUtils;
|
|
34
33
|
import com.facebook.common.logging.FLog;
|
|
35
|
-
import com.facebook.infer.annotation.Assertions;
|
|
36
34
|
import com.facebook.infer.annotation.Nullsafe;
|
|
37
35
|
import com.facebook.react.bridge.Arguments;
|
|
38
|
-
import com.facebook.react.bridge.ReactContext;
|
|
39
36
|
import com.facebook.react.bridge.WritableMap;
|
|
40
37
|
import com.facebook.react.common.ReactConstants;
|
|
41
38
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI;
|
|
42
|
-
import com.facebook.react.common.build.ReactBuildConfig;
|
|
43
39
|
import com.facebook.react.internal.SystraceSection;
|
|
44
40
|
import com.facebook.react.uimanager.BackgroundStyleApplicator;
|
|
45
41
|
import com.facebook.react.uimanager.LengthPercentage;
|
|
46
42
|
import com.facebook.react.uimanager.LengthPercentageType;
|
|
47
43
|
import com.facebook.react.uimanager.PixelUtil;
|
|
48
44
|
import com.facebook.react.uimanager.ReactCompoundView;
|
|
49
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
50
45
|
import com.facebook.react.uimanager.ViewDefaults;
|
|
51
|
-
import com.facebook.react.uimanager.common.UIManagerType;
|
|
52
|
-
import com.facebook.react.uimanager.common.ViewUtil;
|
|
53
46
|
import com.facebook.react.uimanager.style.BorderRadiusProp;
|
|
54
47
|
import com.facebook.react.uimanager.style.BorderStyle;
|
|
55
48
|
import com.facebook.react.uimanager.style.LogicalEdge;
|
|
56
49
|
import com.facebook.react.uimanager.style.Overflow;
|
|
57
50
|
import com.facebook.react.views.text.internal.span.ReactFragmentIndexSpan;
|
|
58
51
|
import com.facebook.react.views.text.internal.span.ReactTagSpan;
|
|
59
|
-
import com.facebook.react.views.text.internal.span.TextInlineViewPlaceholderSpan;
|
|
60
52
|
import com.facebook.yoga.YogaMeasureMode;
|
|
61
53
|
|
|
62
54
|
@Nullsafe(Nullsafe.Mode.LOCAL)
|
|
@@ -206,164 +198,14 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
|
|
206
198
|
return json;
|
|
207
199
|
}
|
|
208
200
|
|
|
209
|
-
private ReactContext getReactContext() {
|
|
210
|
-
Context context = getContext();
|
|
211
|
-
return (context instanceof TintContextWrapper)
|
|
212
|
-
? (ReactContext) ((TintContextWrapper) context).getBaseContext()
|
|
213
|
-
: (ReactContext) context;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
201
|
@Override
|
|
217
202
|
protected void onLayout(
|
|
218
203
|
boolean changed, int textViewLeft, int textViewTop, int textViewRight, int textViewBottom) {
|
|
219
204
|
// TODO T62882314: Delete this method when Fabric is fully released in OSS
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* In general, {@link #setText} is called via {@link ReactTextViewManager#updateExtraData}
|
|
226
|
-
* before we are laid out. This ordering is a requirement because we utilize the data from
|
|
227
|
-
* setText in onLayout.
|
|
228
|
-
*
|
|
229
|
-
* <p>However, it's possible for us to get an extra layout before we've received our setText
|
|
230
|
-
* call. If this happens before the initial setText call, then getText() will have its default
|
|
231
|
-
* value which isn't a Spanned and we need to bail out. That's fine because we'll get a
|
|
232
|
-
* setText followed by a layout later.
|
|
233
|
-
*
|
|
234
|
-
* <p>The cause for the extra early layout is that an ancestor gets transitioned from a
|
|
235
|
-
* layout-only node to a non layout-only node.
|
|
236
|
-
*/
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
ReactContext reactContext = getReactContext();
|
|
241
|
-
UIManagerModule uiManager =
|
|
242
|
-
Assertions.assertNotNull(reactContext.getNativeModule(UIManagerModule.class));
|
|
243
|
-
|
|
244
|
-
Spanned text = (Spanned) getText();
|
|
245
|
-
Layout layout = getLayout();
|
|
246
|
-
if (layout == null) {
|
|
247
|
-
// Text layout is calculated during pre-draw phase, so in some cases it can be empty during
|
|
248
|
-
// layout phase, which usually happens before drawing.
|
|
249
|
-
// The text layout is created by private {@link assumeLayout} method, which we can try to
|
|
250
|
-
// invoke directly through reflection or indirectly through some methods that compute it
|
|
251
|
-
// (e.g. {@link getExtendedPaddingTop}).
|
|
252
|
-
// It is safer, however, to just early return here, as next measure/layout passes are way more
|
|
253
|
-
// likely to have the text layout computed.
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
TextInlineViewPlaceholderSpan[] placeholders =
|
|
258
|
-
text.getSpans(0, text.length(), TextInlineViewPlaceholderSpan.class);
|
|
259
|
-
int textViewWidth = textViewRight - textViewLeft;
|
|
260
|
-
int textViewHeight = textViewBottom - textViewTop;
|
|
261
|
-
|
|
262
|
-
for (TextInlineViewPlaceholderSpan placeholder : placeholders) {
|
|
263
|
-
View child = uiManager.resolveView(placeholder.getReactTag());
|
|
264
|
-
|
|
265
|
-
if (child == null) {
|
|
266
|
-
continue;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
int start = text.getSpanStart(placeholder);
|
|
270
|
-
int line = layout.getLineForOffset(start);
|
|
271
|
-
boolean isLineTruncated = layout.getEllipsisCount(line) > 0;
|
|
272
|
-
|
|
273
|
-
if ( // This truncation check works well on recent versions of Android (tested on 5.1.1 and
|
|
274
|
-
// 6.0.1) but not on Android 4.4.4. The reason is that getEllipsisCount is buggy on
|
|
275
|
-
// Android 4.4.4. Specifically, it incorrectly returns 0 if an inline view is the first
|
|
276
|
-
// thing to be truncated.
|
|
277
|
-
(isLineTruncated && start >= layout.getLineStart(line) + layout.getEllipsisStart(line))
|
|
278
|
-
||
|
|
279
|
-
|
|
280
|
-
// This truncation check works well on Android 4.4.4 but not on others (e.g. 6.0.1).
|
|
281
|
-
// On Android 4.4.4, getLineEnd returns the first truncated character whereas on 6.0.1,
|
|
282
|
-
// it appears to return the position after the last character on the line even if that
|
|
283
|
-
// character is truncated.
|
|
284
|
-
line >= mNumberOfLines
|
|
285
|
-
|| start >= layout.getLineEnd(line)) {
|
|
286
|
-
// On some versions of Android (e.g. 4.4.4, 5.1.1), getPrimaryHorizontal can infinite
|
|
287
|
-
// loop when called on a character that appears after the ellipsis. Avoid this bug by
|
|
288
|
-
// special casing the character truncation case.
|
|
289
|
-
child.setVisibility(View.GONE);
|
|
290
|
-
} else {
|
|
291
|
-
int width = placeholder.getWidth();
|
|
292
|
-
int height = placeholder.getHeight();
|
|
293
|
-
|
|
294
|
-
// Calculate if the direction of the placeholder character is Right-To-Left.
|
|
295
|
-
boolean isRtlChar = layout.isRtlCharAt(start);
|
|
296
|
-
|
|
297
|
-
boolean isRtlParagraph = layout.getParagraphDirection(line) == Layout.DIR_RIGHT_TO_LEFT;
|
|
298
|
-
|
|
299
|
-
int placeholderHorizontalPosition;
|
|
300
|
-
// There's a bug on Samsung devices where calling getPrimaryHorizontal on
|
|
301
|
-
// the last offset in the layout will result in an endless loop. Work around
|
|
302
|
-
// this bug by avoiding getPrimaryHorizontal in that case.
|
|
303
|
-
if (start == text.length() - 1) {
|
|
304
|
-
boolean endsWithNewLine =
|
|
305
|
-
text.length() > 0 && text.charAt(layout.getLineEnd(line) - 1) == '\n';
|
|
306
|
-
float lineWidth = endsWithNewLine ? layout.getLineMax(line) : layout.getLineWidth(line);
|
|
307
|
-
placeholderHorizontalPosition =
|
|
308
|
-
isRtlParagraph
|
|
309
|
-
// Equivalent to `layout.getLineLeft(line)` but `getLineLeft` returns incorrect
|
|
310
|
-
// values when the paragraph is RTL and `setSingleLine(true)`.
|
|
311
|
-
? textViewWidth - (int) lineWidth
|
|
312
|
-
: (int) layout.getLineRight(line) - width;
|
|
313
|
-
} else {
|
|
314
|
-
// The direction of the paragraph may not be exactly the direction the string is heading
|
|
315
|
-
// in at the
|
|
316
|
-
// position of the placeholder. So, if the direction of the character is the same as the
|
|
317
|
-
// paragraph
|
|
318
|
-
// use primary, secondary otherwise.
|
|
319
|
-
boolean characterAndParagraphDirectionMatch = isRtlParagraph == isRtlChar;
|
|
320
|
-
|
|
321
|
-
placeholderHorizontalPosition =
|
|
322
|
-
characterAndParagraphDirectionMatch
|
|
323
|
-
? (int) layout.getPrimaryHorizontal(start)
|
|
324
|
-
: (int) layout.getSecondaryHorizontal(start);
|
|
325
|
-
|
|
326
|
-
if (isRtlParagraph) {
|
|
327
|
-
// Adjust `placeholderHorizontalPosition` to work around an Android bug.
|
|
328
|
-
// The bug is when the paragraph is RTL and `setSingleLine(true)`, some layout
|
|
329
|
-
// methods such as `getPrimaryHorizontal`, `getSecondaryHorizontal`, and
|
|
330
|
-
// `getLineRight` return incorrect values. Their return values seem to be off
|
|
331
|
-
// by the same number of pixels so subtracting these values cancels out the error.
|
|
332
|
-
//
|
|
333
|
-
// The result is equivalent to bugless versions of
|
|
334
|
-
// `getPrimaryHorizontal`/`getSecondaryHorizontal`.
|
|
335
|
-
placeholderHorizontalPosition =
|
|
336
|
-
textViewWidth - ((int) layout.getLineRight(line) - placeholderHorizontalPosition);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
if (isRtlChar) {
|
|
340
|
-
placeholderHorizontalPosition -= width;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
int leftRelativeToTextView =
|
|
345
|
-
isRtlChar
|
|
346
|
-
? placeholderHorizontalPosition + getTotalPaddingRight()
|
|
347
|
-
: placeholderHorizontalPosition + getTotalPaddingLeft();
|
|
348
|
-
|
|
349
|
-
int left = textViewLeft + leftRelativeToTextView;
|
|
350
|
-
|
|
351
|
-
// Vertically align the inline view to the baseline of the line of text.
|
|
352
|
-
int topRelativeToTextView = getTotalPaddingTop() + layout.getLineBaseline(line) - height;
|
|
353
|
-
int top = textViewTop + topRelativeToTextView;
|
|
354
|
-
|
|
355
|
-
boolean isFullyClipped =
|
|
356
|
-
textViewWidth <= leftRelativeToTextView || textViewHeight <= topRelativeToTextView;
|
|
357
|
-
int layoutVisibility = isFullyClipped ? View.GONE : View.VISIBLE;
|
|
358
|
-
int layoutLeft = left;
|
|
359
|
-
int layoutTop = top;
|
|
360
|
-
int layoutRight = left + width;
|
|
361
|
-
int layoutBottom = top + height;
|
|
362
|
-
|
|
363
|
-
child.setVisibility(layoutVisibility);
|
|
364
|
-
child.layout(layoutLeft, layoutTop, layoutRight, layoutBottom);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
205
|
+
// In Fabric, setText is called via ReactTextViewManager#updateExtraData
|
|
206
|
+
// before we are laid out. This ordering is a requirement because we utilize the data from
|
|
207
|
+
// setText in onLayout. The early return here is safe because the text layout is handled
|
|
208
|
+
// correctly in Fabric.
|
|
367
209
|
}
|
|
368
210
|
|
|
369
211
|
@Override
|
|
@@ -604,6 +446,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
|
|
604
446
|
mShouldAdjustSpannableFontSize = true;
|
|
605
447
|
}
|
|
606
448
|
|
|
449
|
+
@Override
|
|
607
450
|
public void setLetterSpacing(float letterSpacing) {
|
|
608
451
|
if (Float.isNaN(letterSpacing)) {
|
|
609
452
|
return;
|
|
@@ -157,7 +157,7 @@ public constructor(
|
|
|
157
157
|
state.getMapBuffer(TX_STATE_KEY_PARAGRAPH_ATTRIBUTES.toInt())
|
|
158
158
|
val spanned: Spannable =
|
|
159
159
|
TextLayoutManager.getOrCreateSpannableForText(
|
|
160
|
-
view.context,
|
|
160
|
+
view.context.assets,
|
|
161
161
|
attributedString,
|
|
162
162
|
reactTextViewManagerCallback,
|
|
163
163
|
)
|