@depup/react-native 0.85.0-depup.1 → 0.86.0-depup.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Animated/AnimatedImplementation.js +6 -6
- package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
- package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
- package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
- package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/RCTBlobCollector.h +1 -1
- package/Libraries/Blob/RCTBlobCollector.mm +14 -26
- package/Libraries/Blob/RCTBlobManager.mm +11 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
- package/Libraries/Components/Keyboard/Keyboard.js +4 -2
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
- package/Libraries/Components/Pressable/Pressable.js +2 -2
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
- package/Libraries/Components/ScrollView/ScrollView.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
- package/Libraries/Components/TextInput/TextInput.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
- package/Libraries/Components/Touchable/PooledClass.js +4 -4
- package/Libraries/Components/Touchable/Touchable.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
- package/Libraries/Components/View/View.js +82 -77
- 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 +1 -1
- 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 -24
- package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
- package/Libraries/Modal/Modal.js +12 -7
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
- package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.mm +1 -2
- package/Libraries/Network/XMLHttpRequest.js +29 -12
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +2 -3
- package/Libraries/ReactNative/AppContainer-prod.js +1 -2
- package/Libraries/ReactNative/AppContainer.js +0 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
- package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
- package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
- package/Libraries/ReactNative/RendererImplementation.js +26 -142
- 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 +1 -31
- 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/HMRClient.js +28 -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 +10 -10
- 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 +1 -1
- 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.h +5 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +26 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
- package/React/CoreModules/RCTDevLoadingView.mm +17 -0
- package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
- package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
- package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
- package/React/CoreModules/RCTRedBox+Internal.h +42 -0
- package/React/CoreModules/RCTRedBox.mm +30 -454
- package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
- package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
- package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
- package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
- package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
- package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
- package/React/CoreModules/RCTRedBoxController.mm +447 -0
- package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
- package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
- package/React/CoreModules/RCTWebSocketModule.mm +45 -6
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
- package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
- package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
- package/React/DevSupport/RCTPackagerConnection.mm +13 -11
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +148 -43
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +122 -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/hermes-engine/build.gradle.kts +12 -13
- 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 +33 -88
- 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 +6 -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/FrameTimingSequence.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +135 -35
- 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 +71 -29
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +121 -51
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +25 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +26 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +134 -57
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +7 -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 +25 -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 +40 -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/NetworkEventUtil.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.kt +2 -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 +1 -1
- 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 +68 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +18 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +14 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +84 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +41 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
- package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +17 -1
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
- 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 +167 -69
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +36 -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 +24 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +25 -4
- package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
- package/ReactCommon/React-Fabric.podspec +13 -0
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- 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 +46 -1
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +50 -0
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +1 -1
- package/ReactCommon/jsinspector-modern/HostTargetTracing.h +4 -4
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +18 -2
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +17 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +19 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +7 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +33 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +6 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +12 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +3 -2
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +7 -3
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +52 -29
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +6 -6
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +12 -5
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +3 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +42 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -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/debug/CMakeLists.txt +2 -1
- package/ReactCommon/react/debug/React-debug.podspec +7 -1
- package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
- package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
- package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
- package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
- package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +49 -21
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +60 -25
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +267 -141
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +28 -14
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +48 -20
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +106 -43
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +11 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +14 -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 +2 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +14 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +2 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +60 -25
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +25 -11
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
- package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
- 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/PerformanceObserver.cpp +18 -6
- package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +28 -13
- 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 +62 -25
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +10 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +5 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
- package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
- package/ReactCommon/react/renderer/animations/utils.h +12 -1
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
- package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
- package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
- package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
- package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +52 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
- package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
- package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
- package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
- package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
- package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
- package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
- package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
- package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/Props.cpp +20 -0
- package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
- package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
- package/ReactCommon/react/renderer/core/conversions.h +4 -0
- package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
- package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
- package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
- package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
- package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
- package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
- package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
- package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
- package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
- package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
- package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +2 -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 +152 -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/{jsinspector-modern → react/utils}/Base64.h +2 -2
- 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/changes.json +12 -12
- 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 +31 -31
- 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 +53 -0
- package/scripts/codegen/generate-artifacts-executor/generateAppDependencyProvider.js +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +15 -7
- package/scripts/codegen/generate-artifacts-executor/generatePackageSwift.js +2 -2
- package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +4 -3
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +4 -3
- package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +19 -8
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +4 -4
- package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
- package/scripts/codegen/generate-artifacts-executor/utils.js +49 -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 +26 -2
- package/scripts/react_native_pods_utils/script_phases.rb +9 -3
- package/scripts/replace-rncore-version.js +91 -14
- 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 +66 -37
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -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/setup/setUpDefaultReactNativeEnvironment.js +6 -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_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
- package/types_generated/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +3 -4
- package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +5 -2
- package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +14 -2
- package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +8 -6
- package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +4 -2
- package/types_generated/Libraries/Network/XMLHttpRequest.d.ts +23 -4
- package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +2 -3
- package/types_generated/Libraries/{Utilities/IPerformanceLogger.d.ts → ReactNative/IPerformanceLogger.flow.d.ts} +12 -6
- package/types_generated/Libraries/ReactNative/RendererImplementation.d.ts +12 -25
- package/types_generated/Libraries/ReactNative/RendererProxy.d.ts +1 -16
- package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +1 -16
- package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +3 -3
- package/types_generated/Libraries/Utilities/BackHandler.d.ts +6 -2
- package/types_generated/index.d.ts +11 -2
- package/types_generated/src/private/components/virtualcollection/FlingConstants.d.ts +20 -0
- package/types_generated/src/private/components/virtualcollection/Virtual.d.ts +46 -0
- package/types_generated/src/private/components/virtualcollection/VirtualCollectionView.d.ts +81 -0
- package/types_generated/src/private/components/virtualcollection/column/VirtualColumn.d.ts +23 -0
- package/types_generated/src/private/components/virtualcollection/column/VirtualColumnGenerator.d.ts +17 -0
- package/types_generated/src/private/components/virtualcollection/dom/getScrollParent.d.ts +21 -0
- package/types_generated/src/private/components/virtualcollection/row/VirtualRow.d.ts +23 -0
- package/types_generated/src/private/webapis/dom/events/Event.d.ts +1 -9
- package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +1 -13
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +5 -2
- package/types_generated/src/private/webapis/dom/nodes/internals/NodeInternals.d.ts +8 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19668
- 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
- package/types_generated/Libraries/Renderer/shims/ReactNative.d.ts +0 -16
- package/types_generated/Libraries/Utilities/createPerformanceLogger.d.ts +0 -23
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt
CHANGED
|
@@ -21,4 +21,32 @@ internal interface SynchronousEventReceiver {
|
|
|
21
21
|
@EventCategoryDef eventCategory: Int,
|
|
22
22
|
experimentalIsSynchronous: Boolean,
|
|
23
23
|
)
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Receives an event with a specific timestamp. The default implementation delegates to the
|
|
27
|
+
* non-timestamped version for backward compatibility with existing implementations.
|
|
28
|
+
*
|
|
29
|
+
* @param eventTimestamp timestamp when the event was triggered (in milliseconds since boot, from
|
|
30
|
+
* SystemClock.uptimeMillis())
|
|
31
|
+
*/
|
|
32
|
+
fun receiveEvent(
|
|
33
|
+
surfaceId: Int,
|
|
34
|
+
reactTag: Int,
|
|
35
|
+
eventName: String,
|
|
36
|
+
canCoalesceEvent: Boolean,
|
|
37
|
+
params: WritableMap?,
|
|
38
|
+
@EventCategoryDef eventCategory: Int,
|
|
39
|
+
experimentalIsSynchronous: Boolean,
|
|
40
|
+
eventTimestamp: Long,
|
|
41
|
+
) {
|
|
42
|
+
receiveEvent(
|
|
43
|
+
surfaceId,
|
|
44
|
+
reactTag,
|
|
45
|
+
eventName,
|
|
46
|
+
canCoalesceEvent,
|
|
47
|
+
params,
|
|
48
|
+
eventCategory,
|
|
49
|
+
experimentalIsSynchronous,
|
|
50
|
+
)
|
|
51
|
+
}
|
|
24
52
|
}
|
|
@@ -132,15 +132,14 @@ internal object TouchesHelper {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
for (touchData in changedTouches) {
|
|
135
|
-
val eventData =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
135
|
+
val eventData = touchData?.let { td ->
|
|
136
|
+
val ed = td.copy()
|
|
137
|
+
val changedTouchesArray = getWritableArray(/* copyObjects */ true, changedTouches)
|
|
138
|
+
val touchesArray = getWritableArray(/* copyObjects */ true, touches)
|
|
139
|
+
ed.putArray(CHANGED_TOUCHES_KEY, changedTouchesArray)
|
|
140
|
+
ed.putArray(TOUCHES_KEY, touchesArray)
|
|
141
|
+
ed
|
|
142
|
+
}
|
|
144
143
|
|
|
145
144
|
eventEmitter.receiveEvent(
|
|
146
145
|
event.surfaceId,
|
|
@@ -150,6 +149,7 @@ internal object TouchesHelper {
|
|
|
150
149
|
0,
|
|
151
150
|
eventData,
|
|
152
151
|
event.getEventCategory(),
|
|
152
|
+
event.timestampMs,
|
|
153
153
|
)
|
|
154
154
|
}
|
|
155
155
|
} finally {
|
|
@@ -14,10 +14,34 @@ import android.os.Build
|
|
|
14
14
|
internal object AndroidVersion {
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* This is the version code for Android
|
|
18
|
-
*
|
|
17
|
+
* This is the version code for Android 15 (SDK Level 35). Internally at Meta this code is also
|
|
18
|
+
* compiled against SDK 34, so we need to retain this constant instead of using
|
|
19
|
+
* [Build.VERSION_CODES.VANILLA_ICE_CREAM] directly.
|
|
19
20
|
*/
|
|
20
|
-
|
|
21
|
+
internal const val VERSION_CODE_VANILLA_ICE_CREAM: Int = 35
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This is the version code for Android 16 (SDK Level 36). Internally at Meta this code is also
|
|
25
|
+
* compiled against SDK 34, so we need to retain this constant instead of using
|
|
26
|
+
* [Build.VERSION_CODES.BAKLAVA] directly.
|
|
27
|
+
*/
|
|
28
|
+
internal const val VERSION_CODE_BAKLAVA: Int = 36
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* android.R.attr.windowOptOutEdgeToEdgeEnforcement added in API 35. Internally at Meta this code
|
|
32
|
+
* is compiled against an SDK that may not have this attribute defined.
|
|
33
|
+
* https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/res/res/values/public-final.xml;l=3848
|
|
34
|
+
*/
|
|
35
|
+
internal const val ATTR_WINDOW_OPT_OUT_EDGE_TO_EDGE_ENFORCEMENT: Int = 0x0101069a
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* This method is used to check if the current device is running Android 15 (SDK Level 35) or
|
|
39
|
+
* higher and the app is targeting Android 15 (SDK Level 35) or higher.
|
|
40
|
+
*/
|
|
41
|
+
@JvmStatic
|
|
42
|
+
internal fun isAtLeastTargetSdk35(context: Context): Boolean =
|
|
43
|
+
Build.VERSION.SDK_INT >= VERSION_CODE_VANILLA_ICE_CREAM &&
|
|
44
|
+
context.applicationInfo.targetSdkVersion >= VERSION_CODE_VANILLA_ICE_CREAM
|
|
21
45
|
|
|
22
46
|
/**
|
|
23
47
|
* This method is used to check if the current device is running Android 16 (SDK Level 36) or
|
|
@@ -197,6 +197,9 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
197
197
|
|
|
198
198
|
dialog?.let { nonNullDialog ->
|
|
199
199
|
if (nonNullDialog.isShowing) {
|
|
200
|
+
nonNullDialog.window?.let { window ->
|
|
201
|
+
(context as ThemedReactContext).onExtraWindowDestroy(window)
|
|
202
|
+
}
|
|
200
203
|
val dialogContext =
|
|
201
204
|
ContextUtils.findContextOfType(nonNullDialog.context, Activity::class.java)
|
|
202
205
|
if (dialogContext == null || !dialogContext.isFinishing) {
|
|
@@ -341,6 +344,7 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
341
344
|
newDialog.show()
|
|
342
345
|
updateSystemAppearance()
|
|
343
346
|
window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
|
|
347
|
+
(context as ThemedReactContext).onExtraWindowCreate(window)
|
|
344
348
|
}
|
|
345
349
|
}
|
|
346
350
|
|
|
@@ -18,7 +18,6 @@ import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
|
|
|
18
18
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
19
19
|
import com.facebook.react.uimanager.UIManagerHelper
|
|
20
20
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
21
|
-
import com.facebook.react.uimanager.common.ViewUtil.getUIManagerType
|
|
22
21
|
import com.facebook.react.views.scroll.ReactScrollViewHelper.HasSmoothScroll
|
|
23
22
|
import com.facebook.react.views.view.ReactViewGroup
|
|
24
23
|
import java.lang.ref.WeakReference
|
|
@@ -47,7 +46,7 @@ internal class MaintainVisibleScrollPositionHelper<ScrollViewT>(
|
|
|
47
46
|
checkNotNull(
|
|
48
47
|
UIManagerHelper.getUIManager(
|
|
49
48
|
checkNotNull(scrollView?.context as ReactContext?),
|
|
50
|
-
|
|
49
|
+
UIManagerType.FABRIC,
|
|
51
50
|
)
|
|
52
51
|
)
|
|
53
52
|
|
|
@@ -83,18 +82,6 @@ internal class MaintainVisibleScrollPositionHelper<ScrollViewT>(
|
|
|
83
82
|
uIManager.removeUIManagerEventListener(this)
|
|
84
83
|
}
|
|
85
84
|
|
|
86
|
-
/**
|
|
87
|
-
* Update the scroll position of the managed ScrollView. This should be called after layout has
|
|
88
|
-
* been updated.
|
|
89
|
-
*/
|
|
90
|
-
fun updateScrollPosition() {
|
|
91
|
-
// On Fabric this will be called internally in `didMountItems`.
|
|
92
|
-
if (scrollView == null || getUIManagerType(scrollView.id) == UIManagerType.FABRIC) {
|
|
93
|
-
return
|
|
94
|
-
}
|
|
95
|
-
updateScrollPositionInternal()
|
|
96
|
-
}
|
|
97
|
-
|
|
98
85
|
private fun updateScrollPositionInternal() {
|
|
99
86
|
val config = config ?: return
|
|
100
87
|
val firstVisibleViewRef = firstVisibleViewRef ?: return
|
|
@@ -8,11 +8,7 @@
|
|
|
8
8
|
package com.facebook.react.views.scroll
|
|
9
9
|
|
|
10
10
|
import com.facebook.react.module.annotations.ReactModule
|
|
11
|
-
import com.facebook.react.uimanager.ReactStylesDiffMap
|
|
12
|
-
import com.facebook.react.uimanager.StateWrapper
|
|
13
11
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
14
|
-
import com.facebook.react.uimanager.common.UIManagerType
|
|
15
|
-
import com.facebook.react.uimanager.common.ViewUtil
|
|
16
12
|
import com.facebook.react.views.view.ReactViewGroup
|
|
17
13
|
import com.facebook.react.views.view.ReactViewManager
|
|
18
14
|
|
|
@@ -21,28 +17,11 @@ import com.facebook.react.views.view.ReactViewManager
|
|
|
21
17
|
public class ReactHorizontalScrollContainerViewManager : ReactViewManager() {
|
|
22
18
|
public override fun getName(): String = REACT_CLASS
|
|
23
19
|
|
|
24
|
-
protected override fun createViewInstance(
|
|
25
|
-
reactTag: Int,
|
|
26
|
-
context: ThemedReactContext,
|
|
27
|
-
initialProps: ReactStylesDiffMap?,
|
|
28
|
-
stateWrapper: StateWrapper?,
|
|
29
|
-
): ReactViewGroup {
|
|
30
|
-
check(uiManagerType == null)
|
|
31
|
-
uiManagerType = ViewUtil.getUIManagerType(reactTag)
|
|
32
|
-
val view = super.createViewInstance(reactTag, context, initialProps, stateWrapper)
|
|
33
|
-
uiManagerType = null
|
|
34
|
-
return view
|
|
35
|
-
}
|
|
36
|
-
|
|
37
20
|
public override fun createViewInstance(context: ThemedReactContext): ReactViewGroup {
|
|
38
|
-
return
|
|
39
|
-
UIManagerType.FABRIC -> ReactViewGroup(context)
|
|
40
|
-
else -> ReactHorizontalScrollContainerLegacyView(context)
|
|
41
|
-
}
|
|
21
|
+
return ReactViewGroup(context)
|
|
42
22
|
}
|
|
43
23
|
|
|
44
24
|
public companion object {
|
|
45
25
|
public const val REACT_CLASS: String = "AndroidHorizontalScrollContentView"
|
|
46
|
-
@UIManagerType private var uiManagerType: Int? = null
|
|
47
26
|
}
|
|
48
27
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -101,6 +101,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
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, "scrollX", 0, 0);
|
|
104
|
+
private final @Nullable FpsListener mFpsListener;
|
|
104
105
|
|
|
105
106
|
private Rect mOverflowInset = new Rect();
|
|
106
107
|
private @Nullable VirtualViewContainerState mVirtualViewContainerState;
|
|
@@ -113,7 +114,6 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
113
114
|
private boolean mRemoveClippedSubviews;
|
|
114
115
|
private boolean mScrollEnabled = true;
|
|
115
116
|
private boolean mSendMomentumEvents;
|
|
116
|
-
private @Nullable FpsListener mFpsListener = null;
|
|
117
117
|
private @Nullable String mScrollPerfTag;
|
|
118
118
|
private @Nullable Drawable mEndBackground;
|
|
119
119
|
private int mEndFillColor = Color.TRANSPARENT;
|
|
@@ -158,7 +158,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
158
158
|
/**
|
|
159
159
|
* Set all default values here as opposed to in the constructor or field defaults. It is important
|
|
160
160
|
* that these properties are set during the constructor, but also on-demand whenever an existing
|
|
161
|
-
*
|
|
161
|
+
* ReactHorizontalScrollView is recycled.
|
|
162
162
|
*/
|
|
163
163
|
private void initView() {
|
|
164
164
|
mOverflowInset = new Rect();
|
|
@@ -177,7 +177,6 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
177
177
|
mRemoveClippedSubviews = false;
|
|
178
178
|
mScrollEnabled = true;
|
|
179
179
|
mSendMomentumEvents = false;
|
|
180
|
-
mFpsListener = null;
|
|
181
180
|
mScrollPerfTag = null;
|
|
182
181
|
mEndBackground = null;
|
|
183
182
|
mEndFillColor = Color.TRANSPARENT;
|
|
@@ -240,6 +239,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
240
239
|
}
|
|
241
240
|
}
|
|
242
241
|
|
|
242
|
+
@Override
|
|
243
243
|
public boolean getScrollEnabled() {
|
|
244
244
|
return mScrollEnabled;
|
|
245
245
|
}
|
|
@@ -460,14 +460,6 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
460
460
|
return mOverflowInset;
|
|
461
461
|
}
|
|
462
462
|
|
|
463
|
-
@Override
|
|
464
|
-
public boolean getClipToPadding() {
|
|
465
|
-
if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
|
|
466
|
-
return mOverflow != Overflow.VISIBLE;
|
|
467
|
-
}
|
|
468
|
-
return super.getClipToPadding();
|
|
469
|
-
}
|
|
470
|
-
|
|
471
463
|
@Override
|
|
472
464
|
public void onDraw(Canvas canvas) {
|
|
473
465
|
if (mOverflow != Overflow.VISIBLE) {
|
|
@@ -552,7 +544,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
552
544
|
|
|
553
545
|
/**
|
|
554
546
|
* Since ReactHorizontalScrollView handles layout changes on JS side, it does not call
|
|
555
|
-
* super.
|
|
547
|
+
* super.onLayout due to which mIsLayoutDirty flag in HorizontalScrollView remains true and
|
|
556
548
|
* prevents scrolling to child when requestChildFocus is called. Overriding this method and
|
|
557
549
|
* scrolling to child without checking any layout dirty flag. This will fix focus navigation issue
|
|
558
550
|
* for KeyEvents which are not handled in HorizontalScrollView, for example: KEYCODE_TAB.
|
|
@@ -568,7 +560,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
568
560
|
/**
|
|
569
561
|
* In rare cases where an app overrides the built-in ReactScrollView by overriding it, and also
|
|
570
562
|
* needs to customize scroll into view on focus behaviors, this protected method can be used to
|
|
571
|
-
*
|
|
563
|
+
* unblock such customization.
|
|
572
564
|
*/
|
|
573
565
|
protected void requestChildFocusWithoutScroll(View child, View focused) {
|
|
574
566
|
super.requestChildFocus(child, focused);
|
|
@@ -866,6 +858,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
866
858
|
float hScroll = ev.getAxisValue(MotionEvent.AXIS_HSCROLL);
|
|
867
859
|
if (hScroll != 0) {
|
|
868
860
|
// Perform the scroll
|
|
861
|
+
enableFpsListener();
|
|
869
862
|
boolean result = super.dispatchGenericMotionEvent(ev);
|
|
870
863
|
// Schedule snap alignment to run after scrolling stops
|
|
871
864
|
if (result
|
|
@@ -873,9 +866,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
873
866
|
|| mSnapInterval != 0
|
|
874
867
|
|| mSnapOffsets != null
|
|
875
868
|
|| mSnapToAlignment != SNAP_ALIGNMENT_DISABLED)) {
|
|
876
|
-
// Cancel any pending runnable and reschedule
|
|
869
|
+
// Cancel any pending post-touch runnable and reschedule
|
|
877
870
|
if (mPostTouchRunnable != null) {
|
|
878
871
|
removeCallbacks(mPostTouchRunnable);
|
|
872
|
+
mPostTouchRunnable = null;
|
|
879
873
|
}
|
|
880
874
|
mPostTouchRunnable =
|
|
881
875
|
new Runnable() {
|
|
@@ -889,9 +883,12 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
889
883
|
velocityX = 0;
|
|
890
884
|
}
|
|
891
885
|
flingAndSnap(velocityX);
|
|
886
|
+
handlePostTouchScrolling(velocityX, 0);
|
|
892
887
|
}
|
|
893
888
|
};
|
|
894
889
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
890
|
+
} else {
|
|
891
|
+
handlePostTouchScrolling(0, 0);
|
|
895
892
|
}
|
|
896
893
|
return result;
|
|
897
894
|
}
|
|
@@ -1008,10 +1005,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1008
1005
|
return nextFocus;
|
|
1009
1006
|
}
|
|
1010
1007
|
|
|
1011
|
-
@Nullable View
|
|
1008
|
+
@Nullable View nextFocusableView = findNextFocusableView(this, focused, direction);
|
|
1012
1009
|
|
|
1013
|
-
if (
|
|
1014
|
-
return
|
|
1010
|
+
if (nextFocusableView != null) {
|
|
1011
|
+
return nextFocusableView;
|
|
1015
1012
|
}
|
|
1016
1013
|
}
|
|
1017
1014
|
|
|
@@ -1219,6 +1216,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1219
1216
|
}
|
|
1220
1217
|
ReactScrollViewHelper.notifyUserDrivenScrollEnded_internal(
|
|
1221
1218
|
ReactHorizontalScrollView.this);
|
|
1219
|
+
disableFpsListener();
|
|
1222
1220
|
} else {
|
|
1223
1221
|
if (mPagingEnabled && !mSnappingToPage) {
|
|
1224
1222
|
// If we have pagingEnabled and we have not snapped to the page
|
|
@@ -1599,6 +1597,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1599
1597
|
* <p>`smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
|
|
1600
1598
|
* scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
|
|
1601
1599
|
*/
|
|
1600
|
+
@Override
|
|
1602
1601
|
public void reactSmoothScrollTo(int x, int y) {
|
|
1603
1602
|
ReactScrollViewHelper.smoothScrollTo(this, x, y);
|
|
1604
1603
|
setPendingContentOffsets(x, y);
|
|
@@ -1679,8 +1678,6 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1679
1678
|
// does not work in RTL.
|
|
1680
1679
|
if (v.getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
|
|
1681
1680
|
adjustPositionForContentChangeRTL(left, right, oldLeft, oldRight);
|
|
1682
|
-
} else if (mMaintainVisibleContentPositionHelper != null) {
|
|
1683
|
-
mMaintainVisibleContentPositionHelper.updateScrollPosition();
|
|
1684
1681
|
}
|
|
1685
1682
|
ReactScrollViewHelper.emitLayoutChangeEvent(this);
|
|
1686
1683
|
}
|
|
@@ -1700,7 +1697,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1700
1697
|
|
|
1701
1698
|
if (mScroller != null && !mScroller.isFinished()) {
|
|
1702
1699
|
// Calculate the velocity and position of the fling animation at the time of this layout
|
|
1703
|
-
// event, which may be later than the last ScrollView tick. These values are not
|
|
1700
|
+
// event, which may be later than the last ScrollView tick. These values are not committed to
|
|
1704
1701
|
// the underlying ScrollView, which will recalculate positions on its next tick.
|
|
1705
1702
|
int scrollerXBeforeTick = mScroller.getCurrX();
|
|
1706
1703
|
boolean hasMoreTicks = mScroller.computeScrollOffset();
|
|
@@ -1742,6 +1739,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1742
1739
|
}
|
|
1743
1740
|
|
|
1744
1741
|
@Nullable
|
|
1742
|
+
@Override
|
|
1745
1743
|
public StateWrapper getStateWrapper() {
|
|
1746
1744
|
return mStateWrapper;
|
|
1747
1745
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<2aa191314924bd0f969fba0e64b86142>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -106,6 +106,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
106
106
|
private final VelocityHelper mVelocityHelper = new VelocityHelper();
|
|
107
107
|
private final Rect mTempRect = new Rect();
|
|
108
108
|
private final ValueAnimator DEFAULT_FLING_ANIMATOR = ObjectAnimator.ofInt(this, "scrollY", 0, 0);
|
|
109
|
+
private final @Nullable FpsListener mFpsListener;
|
|
109
110
|
|
|
110
111
|
private Rect mOverflowInset;
|
|
111
112
|
private @Nullable VirtualViewContainerState mVirtualViewContainerState;
|
|
@@ -118,7 +119,6 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
118
119
|
private boolean mRemoveClippedSubviews;
|
|
119
120
|
private boolean mScrollEnabled;
|
|
120
121
|
private boolean mSendMomentumEvents;
|
|
121
|
-
private @Nullable FpsListener mFpsListener;
|
|
122
122
|
private @Nullable String mScrollPerfTag;
|
|
123
123
|
private @Nullable Drawable mEndBackground;
|
|
124
124
|
private int mEndFillColor;
|
|
@@ -300,6 +300,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
300
300
|
mScrollEnabled = scrollEnabled;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
+
@Override
|
|
303
304
|
public boolean getScrollEnabled() {
|
|
304
305
|
return mScrollEnabled;
|
|
305
306
|
}
|
|
@@ -699,6 +700,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
699
700
|
float vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL);
|
|
700
701
|
if (vScroll != 0) {
|
|
701
702
|
// Perform the scroll
|
|
703
|
+
enableFpsListener();
|
|
702
704
|
boolean result = super.dispatchGenericMotionEvent(ev);
|
|
703
705
|
// Schedule snap alignment to run after scrolling stops
|
|
704
706
|
if (result
|
|
@@ -709,6 +711,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
709
711
|
// Cancel any pending post-touch runnable and reschedule
|
|
710
712
|
if (mPostTouchRunnable != null) {
|
|
711
713
|
removeCallbacks(mPostTouchRunnable);
|
|
714
|
+
mPostTouchRunnable = null;
|
|
712
715
|
}
|
|
713
716
|
mPostTouchRunnable =
|
|
714
717
|
new Runnable() {
|
|
@@ -722,9 +725,12 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
722
725
|
velocityY = 0;
|
|
723
726
|
}
|
|
724
727
|
flingAndSnap(velocityY);
|
|
728
|
+
handlePostTouchScrolling(0, velocityY);
|
|
725
729
|
}
|
|
726
730
|
};
|
|
727
731
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
732
|
+
} else {
|
|
733
|
+
handlePostTouchScrolling(0, 0);
|
|
728
734
|
}
|
|
729
735
|
return result;
|
|
730
736
|
}
|
|
@@ -787,14 +793,6 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
787
793
|
}
|
|
788
794
|
}
|
|
789
795
|
|
|
790
|
-
@Override
|
|
791
|
-
public boolean getClipToPadding() {
|
|
792
|
-
if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
|
|
793
|
-
return mOverflow != Overflow.VISIBLE;
|
|
794
|
-
}
|
|
795
|
-
return super.getClipToPadding();
|
|
796
|
-
}
|
|
797
|
-
|
|
798
796
|
@Override
|
|
799
797
|
public void getClippingRect(Rect outClippingRect) {
|
|
800
798
|
outClippingRect.set(Assertions.assertNotNull(mClippingRect));
|
|
@@ -888,6 +886,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
888
886
|
}
|
|
889
887
|
|
|
890
888
|
@Nullable
|
|
889
|
+
@Override
|
|
891
890
|
public StateWrapper getStateWrapper() {
|
|
892
891
|
return mStateWrapper;
|
|
893
892
|
}
|
|
@@ -1353,6 +1352,7 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
1353
1352
|
* <p>`smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
|
|
1354
1353
|
* scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
|
|
1355
1354
|
*/
|
|
1355
|
+
@Override
|
|
1356
1356
|
public void reactSmoothScrollTo(int x, int y) {
|
|
1357
1357
|
ReactScrollViewHelper.smoothScrollTo(this, x, y);
|
|
1358
1358
|
setPendingContentOffsets(x, y);
|
|
@@ -1463,10 +1463,6 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
1463
1463
|
return;
|
|
1464
1464
|
}
|
|
1465
1465
|
|
|
1466
|
-
if (mMaintainVisibleContentPositionHelper != null) {
|
|
1467
|
-
mMaintainVisibleContentPositionHelper.updateScrollPosition();
|
|
1468
|
-
}
|
|
1469
|
-
|
|
1470
1466
|
if (isShown() && isContentReady()) {
|
|
1471
1467
|
int currentScrollY = getScrollY();
|
|
1472
1468
|
int maxScrollY = getMaxScrollY();
|
|
@@ -1524,11 +1520,12 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
1524
1520
|
* and that you are **not** overriding the NestedScrollView content view to pass in a `translateY`
|
|
1525
1521
|
* style. `translateY` must never be set from ReactJS while using this feature!
|
|
1526
1522
|
*/
|
|
1527
|
-
public void
|
|
1528
|
-
|
|
1523
|
+
public void setScrollAwayPaddingEnabledUnstable(int topPadding, int bottomPadding) {
|
|
1524
|
+
setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true);
|
|
1529
1525
|
}
|
|
1530
1526
|
|
|
1531
|
-
public void
|
|
1527
|
+
public void setScrollAwayPaddingEnabledUnstable(
|
|
1528
|
+
int topPadding, int bottomPadding, boolean updateState) {
|
|
1532
1529
|
int count = getChildCount();
|
|
1533
1530
|
|
|
1534
1531
|
Assertions.assertCondition(
|
|
@@ -1545,17 +1542,18 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
1545
1542
|
// Add the topPadding value as the bottom padding for the NestedScrollView.
|
|
1546
1543
|
// Otherwise, we'll push down the contents of the scroll view down too
|
|
1547
1544
|
// far off screen.
|
|
1548
|
-
setPadding(0, 0, 0, topPadding);
|
|
1545
|
+
setPadding(0, 0, 0, topPadding + bottomPadding);
|
|
1549
1546
|
}
|
|
1550
1547
|
|
|
1551
1548
|
if (updateState) {
|
|
1552
|
-
updateScrollAwayState(topPadding);
|
|
1549
|
+
updateScrollAwayState(topPadding, bottomPadding);
|
|
1553
1550
|
}
|
|
1554
1551
|
setRemoveClippedSubviews(mRemoveClippedSubviews);
|
|
1555
1552
|
}
|
|
1556
1553
|
|
|
1557
|
-
private void updateScrollAwayState(int scrollAwayPaddingTop) {
|
|
1554
|
+
private void updateScrollAwayState(int scrollAwayPaddingTop, int scrollAwayPaddingBottom) {
|
|
1558
1555
|
getReactScrollViewScrollState().setScrollAwayPaddingTop(scrollAwayPaddingTop);
|
|
1556
|
+
getReactScrollViewScrollState().setScrollAwayPaddingBottom(scrollAwayPaddingBottom);
|
|
1559
1557
|
ReactScrollViewHelper.forceUpdateState(this);
|
|
1560
1558
|
}
|
|
1561
1559
|
|
|
@@ -1564,7 +1562,8 @@ class ReactNestedScrollView extends NestedScrollView
|
|
|
1564
1562
|
mReactScrollViewScrollState = scrollState;
|
|
1565
1563
|
if (ReactNativeFeatureFlags.enableViewCulling()
|
|
1566
1564
|
|| ReactNativeFeatureFlags.useTraitHiddenOnAndroid()) {
|
|
1567
|
-
|
|
1565
|
+
setScrollAwayPaddingEnabledUnstable(
|
|
1566
|
+
scrollState.getScrollAwayPaddingTop(), scrollState.getScrollAwayPaddingBottom(), false);
|
|
1568
1567
|
|
|
1569
1568
|
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1570
1569
|
scrollTo(scrollPosition.x, scrollPosition.y);
|
|
@@ -98,6 +98,7 @@ public class ReactScrollView extends ScrollView
|
|
|
98
98
|
private final VelocityHelper mVelocityHelper = new VelocityHelper();
|
|
99
99
|
private final Rect mTempRect = new Rect();
|
|
100
100
|
private final ValueAnimator DEFAULT_FLING_ANIMATOR = ObjectAnimator.ofInt(this, "scrollY", 0, 0);
|
|
101
|
+
private final @Nullable FpsListener mFpsListener;
|
|
101
102
|
|
|
102
103
|
private Rect mOverflowInset;
|
|
103
104
|
private @Nullable VirtualViewContainerState mVirtualViewContainerState;
|
|
@@ -110,7 +111,6 @@ public class ReactScrollView extends ScrollView
|
|
|
110
111
|
private boolean mRemoveClippedSubviews;
|
|
111
112
|
private boolean mScrollEnabled;
|
|
112
113
|
private boolean mSendMomentumEvents;
|
|
113
|
-
private @Nullable FpsListener mFpsListener;
|
|
114
114
|
private @Nullable String mScrollPerfTag;
|
|
115
115
|
private @Nullable Drawable mEndBackground;
|
|
116
116
|
private int mEndFillColor;
|
|
@@ -292,6 +292,7 @@ public class ReactScrollView extends ScrollView
|
|
|
292
292
|
mScrollEnabled = scrollEnabled;
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
+
@Override
|
|
295
296
|
public boolean getScrollEnabled() {
|
|
296
297
|
return mScrollEnabled;
|
|
297
298
|
}
|
|
@@ -691,6 +692,7 @@ public class ReactScrollView extends ScrollView
|
|
|
691
692
|
float vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL);
|
|
692
693
|
if (vScroll != 0) {
|
|
693
694
|
// Perform the scroll
|
|
695
|
+
enableFpsListener();
|
|
694
696
|
boolean result = super.dispatchGenericMotionEvent(ev);
|
|
695
697
|
// Schedule snap alignment to run after scrolling stops
|
|
696
698
|
if (result
|
|
@@ -701,6 +703,7 @@ public class ReactScrollView extends ScrollView
|
|
|
701
703
|
// Cancel any pending post-touch runnable and reschedule
|
|
702
704
|
if (mPostTouchRunnable != null) {
|
|
703
705
|
removeCallbacks(mPostTouchRunnable);
|
|
706
|
+
mPostTouchRunnable = null;
|
|
704
707
|
}
|
|
705
708
|
mPostTouchRunnable =
|
|
706
709
|
new Runnable() {
|
|
@@ -714,9 +717,12 @@ public class ReactScrollView extends ScrollView
|
|
|
714
717
|
velocityY = 0;
|
|
715
718
|
}
|
|
716
719
|
flingAndSnap(velocityY);
|
|
720
|
+
handlePostTouchScrolling(0, velocityY);
|
|
717
721
|
}
|
|
718
722
|
};
|
|
719
723
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
724
|
+
} else {
|
|
725
|
+
handlePostTouchScrolling(0, 0);
|
|
720
726
|
}
|
|
721
727
|
return result;
|
|
722
728
|
}
|
|
@@ -779,14 +785,6 @@ public class ReactScrollView extends ScrollView
|
|
|
779
785
|
}
|
|
780
786
|
}
|
|
781
787
|
|
|
782
|
-
@Override
|
|
783
|
-
public boolean getClipToPadding() {
|
|
784
|
-
if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
|
|
785
|
-
return mOverflow != Overflow.VISIBLE;
|
|
786
|
-
}
|
|
787
|
-
return super.getClipToPadding();
|
|
788
|
-
}
|
|
789
|
-
|
|
790
788
|
@Override
|
|
791
789
|
public void getClippingRect(Rect outClippingRect) {
|
|
792
790
|
outClippingRect.set(Assertions.assertNotNull(mClippingRect));
|
|
@@ -880,6 +878,7 @@ public class ReactScrollView extends ScrollView
|
|
|
880
878
|
}
|
|
881
879
|
|
|
882
880
|
@Nullable
|
|
881
|
+
@Override
|
|
883
882
|
public StateWrapper getStateWrapper() {
|
|
884
883
|
return mStateWrapper;
|
|
885
884
|
}
|
|
@@ -1345,6 +1344,7 @@ public class ReactScrollView extends ScrollView
|
|
|
1345
1344
|
* <p>`smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
|
|
1346
1345
|
* scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
|
|
1347
1346
|
*/
|
|
1347
|
+
@Override
|
|
1348
1348
|
public void reactSmoothScrollTo(int x, int y) {
|
|
1349
1349
|
ReactScrollViewHelper.smoothScrollTo(this, x, y);
|
|
1350
1350
|
setPendingContentOffsets(x, y);
|
|
@@ -1455,10 +1455,6 @@ public class ReactScrollView extends ScrollView
|
|
|
1455
1455
|
return;
|
|
1456
1456
|
}
|
|
1457
1457
|
|
|
1458
|
-
if (mMaintainVisibleContentPositionHelper != null) {
|
|
1459
|
-
mMaintainVisibleContentPositionHelper.updateScrollPosition();
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
1458
|
if (isShown() && isContentReady()) {
|
|
1463
1459
|
int currentScrollY = getScrollY();
|
|
1464
1460
|
int maxScrollY = getMaxScrollY();
|
|
@@ -1516,11 +1512,12 @@ public class ReactScrollView extends ScrollView
|
|
|
1516
1512
|
* and that you are **not** overriding the ScrollView content view to pass in a `translateY`
|
|
1517
1513
|
* style. `translateY` must never be set from ReactJS while using this feature!
|
|
1518
1514
|
*/
|
|
1519
|
-
public void
|
|
1520
|
-
|
|
1515
|
+
public void setScrollAwayPaddingEnabledUnstable(int topPadding, int bottomPadding) {
|
|
1516
|
+
setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true);
|
|
1521
1517
|
}
|
|
1522
1518
|
|
|
1523
|
-
public void
|
|
1519
|
+
public void setScrollAwayPaddingEnabledUnstable(
|
|
1520
|
+
int topPadding, int bottomPadding, boolean updateState) {
|
|
1524
1521
|
int count = getChildCount();
|
|
1525
1522
|
|
|
1526
1523
|
Assertions.assertCondition(
|
|
@@ -1537,17 +1534,18 @@ public class ReactScrollView extends ScrollView
|
|
|
1537
1534
|
// Add the topPadding value as the bottom padding for the ScrollView.
|
|
1538
1535
|
// Otherwise, we'll push down the contents of the scroll view down too
|
|
1539
1536
|
// far off screen.
|
|
1540
|
-
setPadding(0, 0, 0, topPadding);
|
|
1537
|
+
setPadding(0, 0, 0, topPadding + bottomPadding);
|
|
1541
1538
|
}
|
|
1542
1539
|
|
|
1543
1540
|
if (updateState) {
|
|
1544
|
-
updateScrollAwayState(topPadding);
|
|
1541
|
+
updateScrollAwayState(topPadding, bottomPadding);
|
|
1545
1542
|
}
|
|
1546
1543
|
setRemoveClippedSubviews(mRemoveClippedSubviews);
|
|
1547
1544
|
}
|
|
1548
1545
|
|
|
1549
|
-
private void updateScrollAwayState(int scrollAwayPaddingTop) {
|
|
1546
|
+
private void updateScrollAwayState(int scrollAwayPaddingTop, int scrollAwayPaddingBottom) {
|
|
1550
1547
|
getReactScrollViewScrollState().setScrollAwayPaddingTop(scrollAwayPaddingTop);
|
|
1548
|
+
getReactScrollViewScrollState().setScrollAwayPaddingBottom(scrollAwayPaddingBottom);
|
|
1551
1549
|
ReactScrollViewHelper.forceUpdateState(this);
|
|
1552
1550
|
}
|
|
1553
1551
|
|
|
@@ -1556,7 +1554,8 @@ public class ReactScrollView extends ScrollView
|
|
|
1556
1554
|
mReactScrollViewScrollState = scrollState;
|
|
1557
1555
|
if (ReactNativeFeatureFlags.enableViewCulling()
|
|
1558
1556
|
|| ReactNativeFeatureFlags.useTraitHiddenOnAndroid()) {
|
|
1559
|
-
|
|
1557
|
+
setScrollAwayPaddingEnabledUnstable(
|
|
1558
|
+
scrollState.getScrollAwayPaddingTop(), scrollState.getScrollAwayPaddingBottom(), false);
|
|
1560
1559
|
|
|
1561
1560
|
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1562
1561
|
scrollTo(scrollPosition.x, scrollPosition.y);
|