react-native-tvos 0.77.0-0rc5 → 0.78.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/animations/Animation.js +22 -1
- package/Libraries/Animated/animations/DecayAnimation.js +1 -0
- package/Libraries/Animated/animations/SpringAnimation.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +1 -0
- package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
- package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
- package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
- package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
- package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
- package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
- package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
- package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/Animated/useAnimatedProps.js +14 -56
- package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
- package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/TV/TVFocusGuideView.js +0 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
- package/Libraries/Components/TextInput/TextInput.js +6 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +8 -7
- package/Libraries/Components/View/ViewPropTypes.js +0 -9
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -16
- package/Libraries/Core/setUpDeveloperTools.js +2 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
- package/Libraries/Image/AssetSourceResolver.js +11 -0
- package/Libraries/Image/RCTImageLoader.mm +9 -1
- package/Libraries/Image/RCTImageView.mm +3 -3
- package/Libraries/Inspector/BorderBox.js +26 -14
- package/Libraries/Inspector/BoxInspector.js +60 -42
- package/Libraries/Inspector/ElementBox.js +55 -48
- package/Libraries/Inspector/StyleInspector.js +36 -30
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Lists/FlatList.d.ts +1 -1
- package/Libraries/Modal/Modal.js +2 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
- package/Libraries/Network/RCTNetworking.android.js +24 -16
- package/Libraries/Network/RCTNetworking.ios.js +1 -46
- package/Libraries/Network/RCTNetworking.js.flow +1 -46
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/ReactNative/UIManagerProperties.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
- package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
- package/Libraries/StyleSheet/processTransform.js +6 -0
- package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
- package/Libraries/Text/Text.d.ts +6 -1
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +26 -1
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
- package/Libraries/Text/TextProps.js +2 -2
- package/Libraries/Utilities/BackHandler.android.js +5 -4
- package/Libraries/Utilities/BackHandler.ios.js +3 -4
- package/Libraries/Utilities/HMRClient.js +0 -28
- package/Libraries/Utilities/HMRClientProdShim.js +0 -1
- package/README-core.md +2 -2
- package/React/Base/RCTConvert.mm +3 -1
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTDevSettings.h +0 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -0
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
- package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +107 -34
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -4
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
- package/React/Fabric/RCTScheduler.mm +1 -1
- package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -2
- package/React/React-RCTFBReactNativeSpec.podspec +1 -0
- package/React/React-RCTFabric.podspec +3 -2
- package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
- package/React/Views/RCTComponentData.mm +1 -5
- package/React/Views/RCTLayout.m +3 -0
- package/React/Views/RCTShadowView.h +3 -3
- package/React/Views/RCTShadowView.m +52 -20
- package/React/Views/RCTTVView.m +5 -2
- package/React/Views/RCTView.m +6 -2
- package/React/Views/RCTViewManager.m +0 -7
- package/React/Views/ScrollView/RCTScrollView.m +109 -45
- package/React-Core.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +123 -227
- package/ReactAndroid/build.gradle.kts +8 -13
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
- package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
- package/ReactAndroid/gradle.properties +3 -3
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
- package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +39 -8
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
- package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +56 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +91 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +14 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
- package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
- package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
- package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
- package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
- package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
- package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
- package/ReactCommon/React-Fabric.podspec +8 -0
- package/ReactCommon/React-FabricComponents.podspec +2 -2
- package/ReactCommon/React-FabricImage.podspec +4 -1
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
- package/ReactCommon/cxxreact/Instance.cpp +6 -6
- package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
- package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
- package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
- package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/cxxreact/SystraceSection.h +8 -141
- package/ReactCommon/cxxreact/TraceSection.h +181 -0
- package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
- package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
- package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
- package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
- package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
- package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
- package/ReactCommon/jsi/jsi/decorator.h +61 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
- package/ReactCommon/jsi/jsi/jsi.h +81 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
- package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
- package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
- package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
- package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
- package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
- package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
- package/ReactCommon/react/renderer/animations/primitives.h +1 -1
- package/ReactCommon/react/renderer/animations/utils.h +3 -4
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +85 -29
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
- package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
- package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
- package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
- package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
- package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
- package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
- package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
- package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
- package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
- package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
- package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +16 -5
- package/ReactCommon/react/renderer/core/Props.h +11 -4
- package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
- package/ReactCommon/react/renderer/core/RawProps.h +10 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
- package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
- package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/RawValue.h +315 -22
- package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
- package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
- package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
- package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
- package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
- package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
- package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
- package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
- package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
- package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +11 -5
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
- package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
- package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
- package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
- package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
- package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
- package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
- package/ReactCommon/yoga/yoga/YGValue.h +3 -0
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
- package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
- package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
- package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
- package/ReactCommon/yoga/yoga/node/Node.h +5 -5
- package/ReactCommon/yoga/yoga/style/Style.h +14 -12
- package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
- package/gradle/libs.versions.toml +6 -2
- package/index.js +5 -0
- package/package.json +17 -15
- package/react-native.config.js +6 -0
- package/scripts/cocoapods/codegen_utils.rb +4 -4
- package/scripts/cocoapods/new_architecture.rb +3 -3
- package/scripts/cocoapods/utils.rb +4 -3
- package/scripts/codegen/generate-artifacts-executor.js +8 -4
- package/scripts/generate-codegen-artifacts.js +6 -1
- package/scripts/react-native-xcode.sh +1 -1
- package/scripts/react_native_pods.rb +3 -3
- package/scripts/xcode/ccache-clang++.sh +1 -1
- package/scripts/xcode/ccache-clang.sh +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-utils.rb +2 -2
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/featureflags/README.md +5 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +32 -26
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
- package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
- package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
- package/src/private/specs/modules/NativeFantom.js +37 -0
- package/src/private/utilities/ensureInstance.js +21 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/performance/Performance.js +0 -12
- package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
- package/types/index.d.ts +1 -0
- package/types/public/ReactNativeTVTypes.d.ts +49 -51
- package/Libraries/HeapCapture/HeapCapture.js +0 -29
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
- package/Libraries/Performance/SamplingProfiler.js +0 -39
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
- package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
- package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
- package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
- package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
- package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
- package/ReactCommon/React-nativeconfig.podspec +0 -36
- package/ReactCommon/cxxreact/tests/main.cpp +0 -15
- package/ReactCommon/react/config/CMakeLists.txt +0 -20
- package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
- package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
- package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
- package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -26,6 +26,7 @@ import android.view.KeyEvent;
|
|
|
26
26
|
import android.view.MotionEvent;
|
|
27
27
|
import android.view.View;
|
|
28
28
|
import android.view.ViewGroup;
|
|
29
|
+
import android.view.accessibility.AccessibilityNodeInfo;
|
|
29
30
|
import android.widget.HorizontalScrollView;
|
|
30
31
|
import android.widget.OverScroller;
|
|
31
32
|
import androidx.annotation.Nullable;
|
|
@@ -33,6 +34,7 @@ import androidx.core.view.ViewCompat;
|
|
|
33
34
|
import com.facebook.common.logging.FLog;
|
|
34
35
|
import com.facebook.infer.annotation.Assertions;
|
|
35
36
|
import com.facebook.infer.annotation.Nullsafe;
|
|
37
|
+
import com.facebook.react.R;
|
|
36
38
|
import com.facebook.react.animated.NativeAnimatedModule;
|
|
37
39
|
import com.facebook.react.bridge.ReactContext;
|
|
38
40
|
import com.facebook.react.common.ReactConstants;
|
|
@@ -143,6 +145,20 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
143
145
|
setClipChildren(false);
|
|
144
146
|
}
|
|
145
147
|
|
|
148
|
+
@Override
|
|
149
|
+
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
|
|
150
|
+
super.onInitializeAccessibilityNodeInfo(info);
|
|
151
|
+
|
|
152
|
+
// Expose the testID prop as the resource-id name of the view. Black-box E2E/UI testing
|
|
153
|
+
// frameworks, which interact with the UI through the accessibility framework, do not have
|
|
154
|
+
// access to view tags. This allows developers/testers to avoid polluting the
|
|
155
|
+
// content-description with test identifiers.
|
|
156
|
+
final String testId = (String) this.getTag(R.id.react_test_id);
|
|
157
|
+
if (testId != null) {
|
|
158
|
+
info.setViewIdResourceName(testId);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
146
162
|
public boolean getScrollEnabled() {
|
|
147
163
|
return mScrollEnabled;
|
|
148
164
|
}
|
|
@@ -112,7 +112,7 @@ public class ReactHorizontalScrollViewManager extends ViewGroupManager<ReactHori
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
@ReactProp(name = "snapToAlignment")
|
|
115
|
-
public void setSnapToAlignment(ReactHorizontalScrollView view, String alignment) {
|
|
115
|
+
public void setSnapToAlignment(ReactHorizontalScrollView view, @Nullable String alignment) {
|
|
116
116
|
view.setSnapToAlignment(ReactScrollViewHelper.parseSnapToAlignment(alignment));
|
|
117
117
|
}
|
|
118
118
|
|
|
@@ -169,7 +169,7 @@ public class ReactHorizontalScrollViewManager extends ViewGroupManager<ReactHori
|
|
|
169
169
|
* @param scrollPerfTag
|
|
170
170
|
*/
|
|
171
171
|
@ReactProp(name = "scrollPerfTag")
|
|
172
|
-
public void setScrollPerfTag(ReactHorizontalScrollView view, String scrollPerfTag) {
|
|
172
|
+
public void setScrollPerfTag(ReactHorizontalScrollView view, @Nullable String scrollPerfTag) {
|
|
173
173
|
view.setScrollPerfTag(scrollPerfTag);
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -180,7 +180,7 @@ public class ReactHorizontalScrollViewManager extends ViewGroupManager<ReactHori
|
|
|
180
180
|
|
|
181
181
|
/** Controls overScroll behaviour */
|
|
182
182
|
@ReactProp(name = "overScrollMode")
|
|
183
|
-
public void setOverScrollMode(ReactHorizontalScrollView view, String value) {
|
|
183
|
+
public void setOverScrollMode(ReactHorizontalScrollView view, @Nullable String value) {
|
|
184
184
|
view.setOverScrollMode(ReactScrollViewHelper.parseOverScrollMode(value));
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.views.scroll
|
|
9
|
+
|
|
10
|
+
import android.view.View
|
|
11
|
+
import android.view.ViewGroup
|
|
12
|
+
import android.view.accessibility.AccessibilityEvent
|
|
13
|
+
import androidx.core.view.AccessibilityDelegateCompat
|
|
14
|
+
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
|
|
15
|
+
import com.facebook.react.R
|
|
16
|
+
import com.facebook.react.bridge.AssertionException
|
|
17
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger
|
|
18
|
+
import com.facebook.react.bridge.ReadableMap
|
|
19
|
+
import com.facebook.react.uimanager.ReactAccessibilityDelegate
|
|
20
|
+
import com.facebook.react.uimanager.ReactAccessibilityDelegate.AccessibilityRole
|
|
21
|
+
|
|
22
|
+
internal class ReactScrollViewAccessibilityDelegate : AccessibilityDelegateCompat() {
|
|
23
|
+
|
|
24
|
+
private val TAG: String = ReactScrollViewAccessibilityDelegate::class.java.simpleName
|
|
25
|
+
|
|
26
|
+
override fun onInitializeAccessibilityEvent(host: View, event: AccessibilityEvent) {
|
|
27
|
+
super.onInitializeAccessibilityEvent(host, event)
|
|
28
|
+
if (host is ReactScrollView || host is ReactHorizontalScrollView) {
|
|
29
|
+
onInitializeAccessibilityEventInternal(host, event)
|
|
30
|
+
} else {
|
|
31
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
32
|
+
TAG,
|
|
33
|
+
AssertionException(
|
|
34
|
+
"ReactScrollViewAccessibilityDelegate should only be used with ReactScrollView or ReactHorizontalScrollView, not with class: ${host.javaClass.simpleName}"))
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
|
|
39
|
+
super.onInitializeAccessibilityNodeInfo(host, info)
|
|
40
|
+
if (host is ReactScrollView || host is ReactHorizontalScrollView) {
|
|
41
|
+
onInitializeAccessibilityNodeInfoInternal(host, info)
|
|
42
|
+
} else {
|
|
43
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
44
|
+
TAG,
|
|
45
|
+
AssertionException(
|
|
46
|
+
"ReactScrollViewAccessibilityDelegate should only be used with ReactScrollView or ReactHorizontalScrollView, not with class: ${host.javaClass.simpleName}"))
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private fun onInitializeAccessibilityEventInternal(view: View, event: AccessibilityEvent) {
|
|
51
|
+
val accessibilityCollection =
|
|
52
|
+
view.getTag(R.id.accessibility_collection) as? ReadableMap ?: return
|
|
53
|
+
|
|
54
|
+
event.itemCount = accessibilityCollection.getInt("itemCount")
|
|
55
|
+
|
|
56
|
+
val contentView = (view as? ViewGroup)?.getChildAt(0) as? ViewGroup ?: return
|
|
57
|
+
|
|
58
|
+
var firstVisibleIndex: Int? = null
|
|
59
|
+
var lastVisibleIndex: Int? = null
|
|
60
|
+
|
|
61
|
+
for (index in 0..<contentView.childCount) {
|
|
62
|
+
val nextChild = contentView.getChildAt(index)
|
|
63
|
+
val isVisible: Boolean =
|
|
64
|
+
if (view is ReactScrollView) {
|
|
65
|
+
view.isPartiallyScrolledInView(nextChild)
|
|
66
|
+
} else if (view is ReactHorizontalScrollView) {
|
|
67
|
+
view.isPartiallyScrolledInView(nextChild)
|
|
68
|
+
} else {
|
|
69
|
+
return
|
|
70
|
+
}
|
|
71
|
+
var accessibilityCollectionItem: ReadableMap? =
|
|
72
|
+
nextChild.getTag(R.id.accessibility_collection_item) as ReadableMap
|
|
73
|
+
|
|
74
|
+
if (nextChild !is ViewGroup) {
|
|
75
|
+
return
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// If this child's accessibilityCollectionItem is null, we'll check one more
|
|
79
|
+
// nested child.
|
|
80
|
+
// Happens when getItemLayout is not passed in FlatList which adds an additional
|
|
81
|
+
// View in the hierarchy.
|
|
82
|
+
if (nextChild.childCount > 0 && accessibilityCollectionItem == null) {
|
|
83
|
+
val nestedNextChild = nextChild.getChildAt(0)
|
|
84
|
+
if (nestedNextChild != null) {
|
|
85
|
+
val nestedChildAccessibility =
|
|
86
|
+
nestedNextChild.getTag(R.id.accessibility_collection_item) as? ReadableMap
|
|
87
|
+
if (nestedChildAccessibility != null) {
|
|
88
|
+
accessibilityCollectionItem = nestedChildAccessibility
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (isVisible && accessibilityCollectionItem != null) {
|
|
94
|
+
if (firstVisibleIndex == null) {
|
|
95
|
+
firstVisibleIndex = accessibilityCollectionItem.getInt("itemIndex")
|
|
96
|
+
}
|
|
97
|
+
lastVisibleIndex = accessibilityCollectionItem.getInt("itemIndex")
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (firstVisibleIndex != null && lastVisibleIndex != null) {
|
|
101
|
+
event.fromIndex = firstVisibleIndex
|
|
102
|
+
event.toIndex = lastVisibleIndex
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private fun onInitializeAccessibilityNodeInfoInternal(
|
|
108
|
+
view: View,
|
|
109
|
+
info: AccessibilityNodeInfoCompat
|
|
110
|
+
) {
|
|
111
|
+
val accessibilityRole = AccessibilityRole.fromViewTag(view)
|
|
112
|
+
|
|
113
|
+
if (accessibilityRole != null) {
|
|
114
|
+
ReactAccessibilityDelegate.setRole(info, accessibilityRole, view.context)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
val accessibilityCollection = view.getTag(R.id.accessibility_collection) as? ReadableMap
|
|
118
|
+
|
|
119
|
+
if (accessibilityCollection != null) {
|
|
120
|
+
val rowCount = accessibilityCollection.getInt("rowCount")
|
|
121
|
+
val columnCount = accessibilityCollection.getInt("columnCount")
|
|
122
|
+
val hierarchical = accessibilityCollection.getBoolean("hierarchical")
|
|
123
|
+
|
|
124
|
+
val collectionInfoCompat =
|
|
125
|
+
AccessibilityNodeInfoCompat.CollectionInfoCompat.obtain(
|
|
126
|
+
rowCount, columnCount, hierarchical)
|
|
127
|
+
info.setCollectionInfo(collectionInfoCompat)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (view is ReactScrollView) {
|
|
131
|
+
info.isScrollable = view.scrollEnabled
|
|
132
|
+
} else if (view is ReactHorizontalScrollView) {
|
|
133
|
+
info.isScrollable = view.scrollEnabled
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java
CHANGED
|
@@ -123,7 +123,7 @@ public class ReactScrollViewManager extends ViewGroupManager<ReactScrollView>
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
@ReactProp(name = "snapToAlignment")
|
|
126
|
-
public void setSnapToAlignment(ReactScrollView view, String alignment) {
|
|
126
|
+
public void setSnapToAlignment(ReactScrollView view, @Nullable String alignment) {
|
|
127
127
|
view.setSnapToAlignment(ReactScrollViewHelper.parseSnapToAlignment(alignment));
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -186,7 +186,7 @@ public class ReactScrollViewManager extends ViewGroupManager<ReactScrollView>
|
|
|
186
186
|
|
|
187
187
|
/** Controls overScroll behaviour */
|
|
188
188
|
@ReactProp(name = "overScrollMode")
|
|
189
|
-
public void setOverScrollMode(ReactScrollView view, String value) {
|
|
189
|
+
public void setOverScrollMode(ReactScrollView view, @Nullable String value) {
|
|
190
190
|
view.setOverScrollMode(ReactScrollViewHelper.parseOverScrollMode(value));
|
|
191
191
|
}
|
|
192
192
|
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.views.switchview
|
|
9
|
+
|
|
10
|
+
import android.content.Context
|
|
11
|
+
import android.view.View
|
|
12
|
+
import android.widget.CompoundButton
|
|
13
|
+
import androidx.annotation.ColorInt
|
|
14
|
+
import com.facebook.react.bridge.ReactContext
|
|
15
|
+
import com.facebook.react.bridge.ReadableArray
|
|
16
|
+
import com.facebook.react.bridge.ReadableMap
|
|
17
|
+
import com.facebook.react.uimanager.BaseViewManager
|
|
18
|
+
import com.facebook.react.uimanager.PixelUtil
|
|
19
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
20
|
+
import com.facebook.react.uimanager.UIManagerHelper
|
|
21
|
+
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
22
|
+
import com.facebook.react.uimanager.ViewProps
|
|
23
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
24
|
+
import com.facebook.react.viewmanagers.AndroidSwitchManagerDelegate
|
|
25
|
+
import com.facebook.react.viewmanagers.AndroidSwitchManagerInterface
|
|
26
|
+
import com.facebook.yoga.YogaMeasureMode
|
|
27
|
+
import com.facebook.yoga.YogaMeasureOutput
|
|
28
|
+
|
|
29
|
+
internal class ReactSwitchManager :
|
|
30
|
+
BaseViewManager<ReactSwitch, ReactSwitchShadowNode>(),
|
|
31
|
+
AndroidSwitchManagerInterface<ReactSwitch> {
|
|
32
|
+
|
|
33
|
+
private val delegate: ViewManagerDelegate<ReactSwitch> = AndroidSwitchManagerDelegate(this)
|
|
34
|
+
|
|
35
|
+
override fun getName(): String = REACT_CLASS
|
|
36
|
+
|
|
37
|
+
override fun createShadowNodeInstance(): ReactSwitchShadowNode = ReactSwitchShadowNode()
|
|
38
|
+
|
|
39
|
+
override fun getShadowNodeClass(): Class<ReactSwitchShadowNode> =
|
|
40
|
+
ReactSwitchShadowNode::class.java
|
|
41
|
+
|
|
42
|
+
override fun createViewInstance(context: ThemedReactContext): ReactSwitch =
|
|
43
|
+
ReactSwitch(context).apply { showText = false }
|
|
44
|
+
|
|
45
|
+
override fun setBackgroundColor(view: ReactSwitch, @ColorInt backgroundColor: Int) {
|
|
46
|
+
view.setBackgroundColor(backgroundColor)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@ReactProp(name = "disabled", defaultBoolean = false)
|
|
50
|
+
override fun setDisabled(view: ReactSwitch, disabled: Boolean) {
|
|
51
|
+
view.isEnabled = !disabled
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@ReactProp(name = ViewProps.ENABLED, defaultBoolean = true)
|
|
55
|
+
override fun setEnabled(view: ReactSwitch, enabled: Boolean) {
|
|
56
|
+
view.isEnabled = enabled
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@ReactProp(name = ViewProps.ON)
|
|
60
|
+
override fun setOn(view: ReactSwitch, on: Boolean) {
|
|
61
|
+
setValueInternal(view, on)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@ReactProp(name = "value")
|
|
65
|
+
override fun setValue(view: ReactSwitch, value: Boolean) {
|
|
66
|
+
setValueInternal(view, value)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@ReactProp(name = "thumbTintColor", customType = "Color")
|
|
70
|
+
override fun setThumbTintColor(view: ReactSwitch, color: Int?) {
|
|
71
|
+
setThumbColor(view, color)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@ReactProp(name = "thumbColor", customType = "Color")
|
|
75
|
+
override fun setThumbColor(view: ReactSwitch, color: Int?) {
|
|
76
|
+
view.setThumbColor(color)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@ReactProp(name = "trackColorForFalse", customType = "Color")
|
|
80
|
+
override fun setTrackColorForFalse(view: ReactSwitch, color: Int?) {
|
|
81
|
+
view.setTrackColorForFalse(color)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@ReactProp(name = "trackColorForTrue", customType = "Color")
|
|
85
|
+
override fun setTrackColorForTrue(view: ReactSwitch, color: Int?) {
|
|
86
|
+
view.setTrackColorForTrue(color)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@ReactProp(name = "trackTintColor", customType = "Color")
|
|
90
|
+
override fun setTrackTintColor(view: ReactSwitch, color: Int?) {
|
|
91
|
+
view.setTrackColor(color)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
override fun setNativeValue(view: ReactSwitch, value: Boolean) {
|
|
95
|
+
setValueInternal(view, value)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
override fun receiveCommand(view: ReactSwitch, commandId: String, args: ReadableArray?) {
|
|
99
|
+
when (commandId) {
|
|
100
|
+
"setNativeValue" -> setValueInternal(view, args?.getBoolean(0) ?: false)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
override fun addEventEmitters(reactContext: ThemedReactContext, view: ReactSwitch) {
|
|
105
|
+
view.setOnCheckedChangeListener(ON_CHECKED_CHANGE_LISTENER)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
override fun updateExtraData(root: ReactSwitch, extraData: Any) {
|
|
109
|
+
// Do nothing
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
override fun getDelegate(): ViewManagerDelegate<ReactSwitch> = delegate
|
|
113
|
+
|
|
114
|
+
override fun measure(
|
|
115
|
+
context: Context,
|
|
116
|
+
localData: ReadableMap?,
|
|
117
|
+
props: ReadableMap?,
|
|
118
|
+
state: ReadableMap?,
|
|
119
|
+
width: Float,
|
|
120
|
+
widthMode: YogaMeasureMode,
|
|
121
|
+
height: Float,
|
|
122
|
+
heightMode: YogaMeasureMode,
|
|
123
|
+
attachmentsPositions: FloatArray?
|
|
124
|
+
): Long {
|
|
125
|
+
val view = ReactSwitch(context).apply { showText = false }
|
|
126
|
+
val measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
|
127
|
+
view.measure(measureSpec, measureSpec)
|
|
128
|
+
return YogaMeasureOutput.make(
|
|
129
|
+
PixelUtil.toDIPFromPixel(view.measuredWidth.toFloat()),
|
|
130
|
+
PixelUtil.toDIPFromPixel(view.measuredHeight.toFloat()))
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private fun setValueInternal(view: ReactSwitch, value: Boolean) {
|
|
134
|
+
// Temporarily remove the listener to avoid triggering JS events
|
|
135
|
+
view.setOnCheckedChangeListener(null)
|
|
136
|
+
view.setOn(value)
|
|
137
|
+
view.setOnCheckedChangeListener(ON_CHECKED_CHANGE_LISTENER)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
internal companion object {
|
|
141
|
+
public const val REACT_CLASS: String = "AndroidSwitch"
|
|
142
|
+
|
|
143
|
+
private val ON_CHECKED_CHANGE_LISTENER =
|
|
144
|
+
CompoundButton.OnCheckedChangeListener { buttonView, isChecked ->
|
|
145
|
+
val reactContext = buttonView.context as ReactContext
|
|
146
|
+
val reactTag = buttonView.id
|
|
147
|
+
UIManagerHelper.getEventDispatcherForReactTag(reactContext, reactTag)
|
|
148
|
+
?.dispatchEvent(
|
|
149
|
+
ReactSwitchEvent(UIManagerHelper.getSurfaceId(reactContext), reactTag, isChecked))
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.views.switchview
|
|
9
|
+
|
|
10
|
+
import android.view.View
|
|
11
|
+
import com.facebook.react.uimanager.LayoutShadowNode
|
|
12
|
+
import com.facebook.yoga.YogaMeasureFunction
|
|
13
|
+
import com.facebook.yoga.YogaMeasureMode
|
|
14
|
+
import com.facebook.yoga.YogaMeasureOutput
|
|
15
|
+
import com.facebook.yoga.YogaNode
|
|
16
|
+
|
|
17
|
+
internal class ReactSwitchShadowNode : LayoutShadowNode(), YogaMeasureFunction {
|
|
18
|
+
private var width = 0
|
|
19
|
+
private var height = 0
|
|
20
|
+
private var measured = false
|
|
21
|
+
|
|
22
|
+
init {
|
|
23
|
+
initMeasureFunction()
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private fun initMeasureFunction() {
|
|
27
|
+
setMeasureFunction(this)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
override fun measure(
|
|
31
|
+
node: YogaNode,
|
|
32
|
+
width: Float,
|
|
33
|
+
widthMode: YogaMeasureMode,
|
|
34
|
+
height: Float,
|
|
35
|
+
heightMode: YogaMeasureMode
|
|
36
|
+
): Long {
|
|
37
|
+
if (!measured) {
|
|
38
|
+
// Create a switch with the default config and measure it; since we don't (currently)
|
|
39
|
+
// support setting custom switch text, this is fine, as all switches will measure the same
|
|
40
|
+
// on a specific device/theme/locale combination.
|
|
41
|
+
val reactSwitch = ReactSwitch(themedContext)
|
|
42
|
+
reactSwitch.showText = false
|
|
43
|
+
val spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
|
44
|
+
reactSwitch.measure(spec, spec)
|
|
45
|
+
this.width = reactSwitch.measuredWidth
|
|
46
|
+
this.height = reactSwitch.measuredHeight
|
|
47
|
+
measured = true
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return YogaMeasureOutput.make(this.width, this.height)
|
|
51
|
+
}
|
|
52
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java
CHANGED
|
@@ -21,7 +21,6 @@ import com.facebook.infer.annotation.Assertions;
|
|
|
21
21
|
import com.facebook.react.bridge.ReadableArray;
|
|
22
22
|
import com.facebook.react.bridge.ReadableMap;
|
|
23
23
|
import com.facebook.react.common.ReactConstants;
|
|
24
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
25
24
|
import com.facebook.react.uimanager.IllegalViewOperationException;
|
|
26
25
|
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
27
26
|
import com.facebook.react.uimanager.NativeViewHierarchyOptimizer;
|
|
@@ -35,7 +34,6 @@ import com.facebook.react.views.text.internal.ReactTextInlineImageShadowNode;
|
|
|
35
34
|
import com.facebook.react.views.text.internal.span.CustomLetterSpacingSpan;
|
|
36
35
|
import com.facebook.react.views.text.internal.span.CustomLineHeightSpan;
|
|
37
36
|
import com.facebook.react.views.text.internal.span.CustomStyleSpan;
|
|
38
|
-
import com.facebook.react.views.text.internal.span.LegacyLineHeightSpan;
|
|
39
37
|
import com.facebook.react.views.text.internal.span.ReactAbsoluteSizeSpan;
|
|
40
38
|
import com.facebook.react.views.text.internal.span.ReactBackgroundColorSpan;
|
|
41
39
|
import com.facebook.react.views.text.internal.span.ReactClickableSpan;
|
|
@@ -231,11 +229,7 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
|
|
|
231
229
|
if (!Float.isNaN(effectiveLineHeight)
|
|
232
230
|
&& (parentTextAttributes == null
|
|
233
231
|
|| parentTextAttributes.getEffectiveLineHeight() != effectiveLineHeight)) {
|
|
234
|
-
|
|
235
|
-
ops.add(new SetSpanOperation(start, end, new CustomLineHeightSpan(effectiveLineHeight)));
|
|
236
|
-
} else {
|
|
237
|
-
ops.add(new SetSpanOperation(start, end, new LegacyLineHeightSpan(effectiveLineHeight)));
|
|
238
|
-
}
|
|
232
|
+
ops.add(new SetSpanOperation(start, end, new CustomLineHeightSpan(effectiveLineHeight)));
|
|
239
233
|
}
|
|
240
234
|
ops.add(new SetSpanOperation(start, end, new ReactTagSpan(textShadowNode.getReactTag())));
|
|
241
235
|
}
|
|
@@ -61,6 +61,7 @@ public class TextAttributeProps {
|
|
|
61
61
|
public static final short TA_KEY_LINE_BREAK_STRATEGY = 25;
|
|
62
62
|
public static final short TA_KEY_ROLE = 26;
|
|
63
63
|
public static final short TA_KEY_TEXT_TRANSFORM = 27;
|
|
64
|
+
public static final short TA_KEY_MAX_FONT_SIZE_MULTIPLIER = 29;
|
|
64
65
|
|
|
65
66
|
public static final int UNSET = -1;
|
|
66
67
|
|
|
@@ -81,6 +82,7 @@ public class TextAttributeProps {
|
|
|
81
82
|
protected float mLineHeight = Float.NaN;
|
|
82
83
|
protected boolean mIsColorSet = false;
|
|
83
84
|
protected boolean mAllowFontScaling = true;
|
|
85
|
+
protected float mMaxFontSizeMultiplier = Float.NaN;
|
|
84
86
|
protected int mColor;
|
|
85
87
|
protected boolean mIsBackgroundColorSet = false;
|
|
86
88
|
protected int mBackgroundColor;
|
|
@@ -227,6 +229,9 @@ public class TextAttributeProps {
|
|
|
227
229
|
case TA_KEY_TEXT_TRANSFORM:
|
|
228
230
|
result.setTextTransform(entry.getStringValue());
|
|
229
231
|
break;
|
|
232
|
+
case TA_KEY_MAX_FONT_SIZE_MULTIPLIER:
|
|
233
|
+
result.setMaxFontSizeMultiplier((float) entry.getDoubleValue());
|
|
234
|
+
break;
|
|
230
235
|
}
|
|
231
236
|
}
|
|
232
237
|
|
|
@@ -243,6 +248,8 @@ public class TextAttributeProps {
|
|
|
243
248
|
result.setLineHeight(getFloatProp(props, ViewProps.LINE_HEIGHT, ReactConstants.UNSET));
|
|
244
249
|
result.setLetterSpacing(getFloatProp(props, ViewProps.LETTER_SPACING, Float.NaN));
|
|
245
250
|
result.setAllowFontScaling(getBooleanProp(props, ViewProps.ALLOW_FONT_SCALING, true));
|
|
251
|
+
result.setMaxFontSizeMultiplier(
|
|
252
|
+
getFloatProp(props, ViewProps.MAX_FONT_SIZE_MULTIPLIER, Float.NaN));
|
|
246
253
|
result.setFontSize(getFloatProp(props, ViewProps.FONT_SIZE, ReactConstants.UNSET));
|
|
247
254
|
result.setColor(props.hasKey(ViewProps.COLOR) ? props.getInt(ViewProps.COLOR, 0) : null);
|
|
248
255
|
result.setColor(
|
|
@@ -411,7 +418,14 @@ public class TextAttributeProps {
|
|
|
411
418
|
mAllowFontScaling = allowFontScaling;
|
|
412
419
|
setFontSize(mFontSizeInput);
|
|
413
420
|
setLineHeight(mLineHeightInput);
|
|
414
|
-
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
private void setMaxFontSizeMultiplier(float maxFontSizeMultiplier) {
|
|
425
|
+
if (maxFontSizeMultiplier != mMaxFontSizeMultiplier) {
|
|
426
|
+
mMaxFontSizeMultiplier = maxFontSizeMultiplier;
|
|
427
|
+
setFontSize(mFontSizeInput);
|
|
428
|
+
setLineHeight(mLineHeightInput);
|
|
415
429
|
}
|
|
416
430
|
}
|
|
417
431
|
|
|
@@ -420,7 +434,7 @@ public class TextAttributeProps {
|
|
|
420
434
|
if (fontSize != ReactConstants.UNSET) {
|
|
421
435
|
fontSize =
|
|
422
436
|
mAllowFontScaling
|
|
423
|
-
? (float) Math.ceil(PixelUtil.toPixelFromSP(fontSize))
|
|
437
|
+
? (float) Math.ceil(PixelUtil.toPixelFromSP(fontSize, mMaxFontSizeMultiplier))
|
|
424
438
|
: (float) Math.ceil(PixelUtil.toPixelFromDIP(fontSize));
|
|
425
439
|
}
|
|
426
440
|
mFontSize = (int) fontSize;
|
|
@@ -32,14 +32,12 @@ import com.facebook.react.bridge.WritableArray;
|
|
|
32
32
|
import com.facebook.react.common.ReactConstants;
|
|
33
33
|
import com.facebook.react.common.build.ReactBuildConfig;
|
|
34
34
|
import com.facebook.react.common.mapbuffer.MapBuffer;
|
|
35
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
36
35
|
import com.facebook.react.uimanager.PixelUtil;
|
|
37
36
|
import com.facebook.react.uimanager.ReactAccessibilityDelegate.AccessibilityRole;
|
|
38
37
|
import com.facebook.react.uimanager.ReactAccessibilityDelegate.Role;
|
|
39
38
|
import com.facebook.react.views.text.internal.span.CustomLetterSpacingSpan;
|
|
40
39
|
import com.facebook.react.views.text.internal.span.CustomLineHeightSpan;
|
|
41
40
|
import com.facebook.react.views.text.internal.span.CustomStyleSpan;
|
|
42
|
-
import com.facebook.react.views.text.internal.span.LegacyLineHeightSpan;
|
|
43
41
|
import com.facebook.react.views.text.internal.span.ReactAbsoluteSizeSpan;
|
|
44
42
|
import com.facebook.react.views.text.internal.span.ReactBackgroundColorSpan;
|
|
45
43
|
import com.facebook.react.views.text.internal.span.ReactClickableSpan;
|
|
@@ -319,15 +317,9 @@ public class TextLayoutManager {
|
|
|
319
317
|
textAttributes.mTextShadowColor)));
|
|
320
318
|
}
|
|
321
319
|
if (!Float.isNaN(textAttributes.getEffectiveLineHeight())) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
start, end, new CustomLineHeightSpan(textAttributes.getEffectiveLineHeight())));
|
|
326
|
-
} else {
|
|
327
|
-
ops.add(
|
|
328
|
-
new SetSpanOperation(
|
|
329
|
-
start, end, new LegacyLineHeightSpan(textAttributes.getEffectiveLineHeight())));
|
|
330
|
-
}
|
|
320
|
+
ops.add(
|
|
321
|
+
new SetSpanOperation(
|
|
322
|
+
start, end, new CustomLineHeightSpan(textAttributes.getEffectiveLineHeight())));
|
|
331
323
|
}
|
|
332
324
|
|
|
333
325
|
ops.add(new SetSpanOperation(start, end, new ReactTagSpan(reactTag)));
|
|
@@ -629,8 +621,8 @@ public class TextLayoutManager {
|
|
|
629
621
|
&& ((maximumNumberOfLines != ReactConstants.UNSET
|
|
630
622
|
&& maximumNumberOfLines != 0
|
|
631
623
|
&& layout.getLineCount() > maximumNumberOfLines)
|
|
632
|
-
|| (heightYogaMeasureMode != YogaMeasureMode.UNDEFINED
|
|
633
|
-
|
|
624
|
+
|| (heightYogaMeasureMode != YogaMeasureMode.UNDEFINED && layout.getHeight() > height)
|
|
625
|
+
|| (text.length() == 1 && layout.getLineWidth(0) > width))) {
|
|
634
626
|
// TODO: We could probably use a smarter algorithm here. This will require 0(n)
|
|
635
627
|
// measurements based on the number of points the font size needs to be reduced by.
|
|
636
628
|
currentFontSize -= Math.max(1, (int) PixelUtil.toPixelFromDIP(1));
|
|
@@ -648,6 +640,9 @@ public class TextLayoutManager {
|
|
|
648
640
|
text.getSpanFlags(span));
|
|
649
641
|
text.removeSpan(span);
|
|
650
642
|
}
|
|
643
|
+
if (boring != null) {
|
|
644
|
+
boring = BoringLayout.isBoring(text, paint);
|
|
645
|
+
}
|
|
651
646
|
layout =
|
|
652
647
|
createLayout(
|
|
653
648
|
text,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.views.text.frescosupport
|
|
9
|
+
|
|
10
|
+
import android.view.View
|
|
11
|
+
import com.facebook.drawee.backends.pipeline.Fresco
|
|
12
|
+
import com.facebook.drawee.controller.AbstractDraweeControllerBuilder
|
|
13
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
14
|
+
import com.facebook.react.uimanager.BaseViewManager
|
|
15
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Manages Images embedded in Text nodes using Fresco. Since they are used only as a virtual nodes
|
|
19
|
+
* any type of native view operation will throw an [IllegalStateException].
|
|
20
|
+
*/
|
|
21
|
+
@ReactModule(name = FrescoBasedReactTextInlineImageViewManager.REACT_CLASS)
|
|
22
|
+
internal class FrescoBasedReactTextInlineImageViewManager
|
|
23
|
+
@JvmOverloads
|
|
24
|
+
constructor(
|
|
25
|
+
private val draweeControllerBuilder:
|
|
26
|
+
@JvmSuppressWildcards
|
|
27
|
+
AbstractDraweeControllerBuilder<*, *, *, *>? =
|
|
28
|
+
null,
|
|
29
|
+
private val callerContext: Any? = null
|
|
30
|
+
) : BaseViewManager<View, FrescoBasedReactTextInlineImageShadowNode>() {
|
|
31
|
+
|
|
32
|
+
override fun getName(): String = REACT_CLASS
|
|
33
|
+
|
|
34
|
+
public override fun createViewInstance(context: ThemedReactContext): View {
|
|
35
|
+
throw IllegalStateException("RCTTextInlineImage doesn't map into a native view")
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override fun createShadowNodeInstance(): FrescoBasedReactTextInlineImageShadowNode =
|
|
39
|
+
FrescoBasedReactTextInlineImageShadowNode(
|
|
40
|
+
draweeControllerBuilder ?: Fresco.newDraweeControllerBuilder(), callerContext)
|
|
41
|
+
|
|
42
|
+
override fun getShadowNodeClass(): Class<FrescoBasedReactTextInlineImageShadowNode> =
|
|
43
|
+
FrescoBasedReactTextInlineImageShadowNode::class.java
|
|
44
|
+
|
|
45
|
+
override fun updateExtraData(root: View, extraData: Any) = Unit
|
|
46
|
+
|
|
47
|
+
public companion object {
|
|
48
|
+
public const val REACT_CLASS: String = "RCTTextInlineImage"
|
|
49
|
+
}
|
|
50
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt
CHANGED
|
@@ -14,7 +14,7 @@ public class ShadowStyleSpan(
|
|
|
14
14
|
private val dx: Float,
|
|
15
15
|
private val dy: Float,
|
|
16
16
|
private val radius: Float,
|
|
17
|
-
|
|
17
|
+
public val color: Int
|
|
18
18
|
) : CharacterStyle(), ReactSpan {
|
|
19
19
|
public override fun updateDrawState(textPaint: TextPaint) {
|
|
20
20
|
textPaint.setShadowLayer(radius, dx, dy, color)
|
|
@@ -55,7 +55,6 @@ import com.facebook.react.bridge.ReactContext;
|
|
|
55
55
|
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
56
56
|
import com.facebook.react.common.ReactConstants;
|
|
57
57
|
import com.facebook.react.common.build.ReactBuildConfig;
|
|
58
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
59
58
|
import com.facebook.react.uimanager.BackgroundStyleApplicator;
|
|
60
59
|
import com.facebook.react.uimanager.LengthPercentage;
|
|
61
60
|
import com.facebook.react.uimanager.LengthPercentageType;
|
|
@@ -77,7 +76,6 @@ import com.facebook.react.views.text.TextLayoutManager;
|
|
|
77
76
|
import com.facebook.react.views.text.internal.span.CustomLetterSpacingSpan;
|
|
78
77
|
import com.facebook.react.views.text.internal.span.CustomLineHeightSpan;
|
|
79
78
|
import com.facebook.react.views.text.internal.span.CustomStyleSpan;
|
|
80
|
-
import com.facebook.react.views.text.internal.span.LegacyLineHeightSpan;
|
|
81
79
|
import com.facebook.react.views.text.internal.span.ReactAbsoluteSizeSpan;
|
|
82
80
|
import com.facebook.react.views.text.internal.span.ReactBackgroundColorSpan;
|
|
83
81
|
import com.facebook.react.views.text.internal.span.ReactForegroundColorSpan;
|
|
@@ -913,13 +911,7 @@ public class ReactEditText extends AppCompatEditText {
|
|
|
913
911
|
|
|
914
912
|
float lineHeight = mTextAttributes.getEffectiveLineHeight();
|
|
915
913
|
if (!Float.isNaN(lineHeight)) {
|
|
916
|
-
|
|
917
|
-
workingText.setSpan(
|
|
918
|
-
new CustomLineHeightSpan(lineHeight), 0, workingText.length(), spanFlags);
|
|
919
|
-
} else {
|
|
920
|
-
workingText.setSpan(
|
|
921
|
-
new LegacyLineHeightSpan(lineHeight), 0, workingText.length(), spanFlags);
|
|
922
|
-
}
|
|
914
|
+
workingText.setSpan(new CustomLineHeightSpan(lineHeight), 0, workingText.length(), spanFlags);
|
|
923
915
|
}
|
|
924
916
|
}
|
|
925
917
|
|