react-native-tvos 0.83.1-0 → 0.84.0-0rc0
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/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
- package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/RCTImagePlugins.h +1 -0
- package/Libraries/Image/RCTImagePlugins.mm +30 -17
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
- package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/RCTSettingsManager.mm +1 -1
- package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/README.md +56 -18
- package/React/Base/RCTAssert.m +2 -2
- package/React/Base/RCTBridge.h +0 -4
- package/React/Base/RCTBridge.mm +1 -12
- package/React/Base/RCTBundleManager.h +59 -7
- package/React/Base/RCTBundleManager.m +112 -1
- package/React/Base/RCTBundleURLProvider.h +24 -0
- package/React/Base/RCTBundleURLProvider.mm +49 -4
- package/React/Base/RCTConvert.mm +2 -0
- package/React/Base/RCTModuleData.mm +2 -2
- package/React/Base/RCTUtils.h +4 -0
- package/React/Base/RCTUtils.mm +60 -3
- package/React/Base/RCTVersion.m +3 -3
- package/React/CoreModules/CoreModulesPlugins.mm +97 -35
- package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
- package/React/CoreModules/RCTAppState.mm +1 -1
- package/React/CoreModules/RCTDevLoadingView.mm +116 -36
- package/React/CoreModules/RCTDevSettings.h +36 -1
- package/React/CoreModules/RCTDevSettings.mm +44 -8
- package/React/CoreModules/RCTExceptionsManager.mm +5 -2
- package/React/CoreModules/RCTPlatform.mm +3 -2
- package/React/CoreModules/RCTStatusBarManager.mm +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +1 -2
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/CxxModule/RCTCxxUtils.mm +2 -12
- package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
- package/React/DevSupport/RCTPackagerConnection.h +4 -2
- package/React/DevSupport/RCTPackagerConnection.mm +30 -33
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +40 -4
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
- package/React/Modules/RCTEventEmitter.m +1 -0
- package/React/Views/RCTModalHostView.h +2 -0
- package/React/Views/RCTTVView.m +2 -0
- package/ReactAndroid/api/ReactAndroid.api +14 -73
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
- package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
- package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
- package/ReactCommon/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
- package/ReactCommon/jsi/jsi/jsi.h +73 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
- package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
- package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
- package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
- package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
- package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
- package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
- package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
- package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
- package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
- package/ReactCommon/react/networking/React-networking.podspec +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
- package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
- package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
- package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +307 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +323 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +133 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +246 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +93 -94
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
- package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +23 -8
- package/ReactCommon/react/renderer/core/Props.h +6 -4
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
- package/ReactCommon/react/renderer/debug/flags.h +3 -2
- package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
- package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
- package/ReactCommon/react/runtime/ReactInstance.h +5 -1
- package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
- package/ReactCommon/react/runtime/TimerManager.h +7 -12
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
- package/ReactCommon/yoga/yoga/style/Style.h +8 -8
- package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
- package/flow/HermesInternalType.js +6 -6
- package/flow/bom.js.flow +35 -28
- package/flow/cssom.js.flow +3 -3
- package/flow/dom.js.flow +34 -33
- package/index.js +3 -0
- package/index.js.flow +8 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +12 -12
- package/react-native.config.js +0 -17
- package/scripts/cocoapods/new_architecture.rb +7 -1
- package/scripts/cocoapods/spm.rb +28 -10
- package/scripts/cocoapods/utils.rb +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +6 -1
- package/scripts/react_native_pods.rb +8 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +39 -31
- package/sdks/hermes-engine/hermes-utils.rb +7 -14
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -0
- package/React/CxxModule/RCTCxxModule.h +0 -29
- package/React/CxxModule/RCTCxxModule.mm +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
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.uimanager.events
|
|
9
|
+
|
|
10
|
+
import android.view.KeyEvent as AndroidKeyEvent
|
|
11
|
+
import com.facebook.react.bridge.Arguments
|
|
12
|
+
import com.facebook.react.bridge.WritableMap
|
|
13
|
+
|
|
14
|
+
internal abstract class KeyEvent(
|
|
15
|
+
surfaceId: Int,
|
|
16
|
+
viewTag: Int,
|
|
17
|
+
keyEvent: AndroidKeyEvent,
|
|
18
|
+
) : Event<KeyEvent>(surfaceId, viewTag) {
|
|
19
|
+
|
|
20
|
+
// Extract all needed data from keyEvent immediately to avoid storing the AndroidKeyEvent itself
|
|
21
|
+
private val keyCode: Int = keyEvent.keyCode
|
|
22
|
+
private val unicodeChar: Int = keyEvent.unicodeChar
|
|
23
|
+
private val isAltPressed: Boolean = keyEvent.isAltPressed
|
|
24
|
+
private val isCtrlPressed: Boolean = keyEvent.isCtrlPressed
|
|
25
|
+
private val isMetaPressed: Boolean = keyEvent.isMetaPressed
|
|
26
|
+
private val isShiftPressed: Boolean = keyEvent.isShiftPressed
|
|
27
|
+
|
|
28
|
+
override fun canCoalesce(): Boolean = false
|
|
29
|
+
|
|
30
|
+
override fun getEventCategory(): Int = EventCategoryDef.DISCRETE
|
|
31
|
+
|
|
32
|
+
override fun getEventData(): WritableMap {
|
|
33
|
+
val eventData = Arguments.createMap()
|
|
34
|
+
|
|
35
|
+
eventData.putInt("target", viewTag)
|
|
36
|
+
|
|
37
|
+
// W3C KeyboardEvent properties
|
|
38
|
+
eventData.putString("key", getKeyString())
|
|
39
|
+
eventData.putString("code", getCodeString())
|
|
40
|
+
|
|
41
|
+
// Modifier keys
|
|
42
|
+
eventData.putBoolean("altKey", isAltPressed)
|
|
43
|
+
eventData.putBoolean("ctrlKey", isCtrlPressed)
|
|
44
|
+
eventData.putBoolean("metaKey", isMetaPressed)
|
|
45
|
+
eventData.putBoolean("shiftKey", isShiftPressed)
|
|
46
|
+
|
|
47
|
+
// Additional properties
|
|
48
|
+
eventData.putDouble("timestamp", timestampMs.toDouble())
|
|
49
|
+
|
|
50
|
+
return eventData
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private fun getKeyString(): String {
|
|
54
|
+
return when {
|
|
55
|
+
unicodeChar != 0 && !Character.isISOControl(unicodeChar) -> unicodeChar.toChar().toString()
|
|
56
|
+
else -> KEY_NAME_MAP[keyCode] ?: UNIDENTIFIED
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private fun getCodeString(): String {
|
|
61
|
+
return CODE_MAP[keyCode] ?: UNIDENTIFIED
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
internal companion object {
|
|
65
|
+
private const val UNIDENTIFIED = "Unidentified"
|
|
66
|
+
|
|
67
|
+
private val CODE_MAP: Map<Int, String> by
|
|
68
|
+
lazy(LazyThreadSafetyMode.PUBLICATION) {
|
|
69
|
+
mapOf(
|
|
70
|
+
// Letter keys
|
|
71
|
+
AndroidKeyEvent.KEYCODE_A to "KeyA",
|
|
72
|
+
AndroidKeyEvent.KEYCODE_B to "KeyB",
|
|
73
|
+
AndroidKeyEvent.KEYCODE_C to "KeyC",
|
|
74
|
+
AndroidKeyEvent.KEYCODE_D to "KeyD",
|
|
75
|
+
AndroidKeyEvent.KEYCODE_E to "KeyE",
|
|
76
|
+
AndroidKeyEvent.KEYCODE_F to "KeyF",
|
|
77
|
+
AndroidKeyEvent.KEYCODE_G to "KeyG",
|
|
78
|
+
AndroidKeyEvent.KEYCODE_H to "KeyH",
|
|
79
|
+
AndroidKeyEvent.KEYCODE_I to "KeyI",
|
|
80
|
+
AndroidKeyEvent.KEYCODE_J to "KeyJ",
|
|
81
|
+
AndroidKeyEvent.KEYCODE_K to "KeyK",
|
|
82
|
+
AndroidKeyEvent.KEYCODE_L to "KeyL",
|
|
83
|
+
AndroidKeyEvent.KEYCODE_M to "KeyM",
|
|
84
|
+
AndroidKeyEvent.KEYCODE_N to "KeyN",
|
|
85
|
+
AndroidKeyEvent.KEYCODE_O to "KeyO",
|
|
86
|
+
AndroidKeyEvent.KEYCODE_P to "KeyP",
|
|
87
|
+
AndroidKeyEvent.KEYCODE_Q to "KeyQ",
|
|
88
|
+
AndroidKeyEvent.KEYCODE_R to "KeyR",
|
|
89
|
+
AndroidKeyEvent.KEYCODE_S to "KeyS",
|
|
90
|
+
AndroidKeyEvent.KEYCODE_T to "KeyT",
|
|
91
|
+
AndroidKeyEvent.KEYCODE_U to "KeyU",
|
|
92
|
+
AndroidKeyEvent.KEYCODE_V to "KeyV",
|
|
93
|
+
AndroidKeyEvent.KEYCODE_W to "KeyW",
|
|
94
|
+
AndroidKeyEvent.KEYCODE_X to "KeyX",
|
|
95
|
+
AndroidKeyEvent.KEYCODE_Y to "KeyY",
|
|
96
|
+
AndroidKeyEvent.KEYCODE_Z to "KeyZ",
|
|
97
|
+
// Digit keys
|
|
98
|
+
AndroidKeyEvent.KEYCODE_0 to "Digit0",
|
|
99
|
+
AndroidKeyEvent.KEYCODE_1 to "Digit1",
|
|
100
|
+
AndroidKeyEvent.KEYCODE_2 to "Digit2",
|
|
101
|
+
AndroidKeyEvent.KEYCODE_3 to "Digit3",
|
|
102
|
+
AndroidKeyEvent.KEYCODE_4 to "Digit4",
|
|
103
|
+
AndroidKeyEvent.KEYCODE_5 to "Digit5",
|
|
104
|
+
AndroidKeyEvent.KEYCODE_6 to "Digit6",
|
|
105
|
+
AndroidKeyEvent.KEYCODE_7 to "Digit7",
|
|
106
|
+
AndroidKeyEvent.KEYCODE_8 to "Digit8",
|
|
107
|
+
AndroidKeyEvent.KEYCODE_9 to "Digit9",
|
|
108
|
+
// Special keys
|
|
109
|
+
AndroidKeyEvent.KEYCODE_ENTER to "Enter",
|
|
110
|
+
AndroidKeyEvent.KEYCODE_SPACE to "Space",
|
|
111
|
+
AndroidKeyEvent.KEYCODE_TAB to "Tab",
|
|
112
|
+
AndroidKeyEvent.KEYCODE_DEL to "Backspace",
|
|
113
|
+
AndroidKeyEvent.KEYCODE_ESCAPE to "Escape",
|
|
114
|
+
// Modifier keys
|
|
115
|
+
AndroidKeyEvent.KEYCODE_SHIFT_LEFT to "ShiftLeft",
|
|
116
|
+
AndroidKeyEvent.KEYCODE_SHIFT_RIGHT to "ShiftRight",
|
|
117
|
+
AndroidKeyEvent.KEYCODE_CTRL_LEFT to "ControlLeft",
|
|
118
|
+
AndroidKeyEvent.KEYCODE_CTRL_RIGHT to "ControlRight",
|
|
119
|
+
AndroidKeyEvent.KEYCODE_ALT_LEFT to "AltLeft",
|
|
120
|
+
AndroidKeyEvent.KEYCODE_ALT_RIGHT to "AltRight",
|
|
121
|
+
AndroidKeyEvent.KEYCODE_META_LEFT to "MetaLeft",
|
|
122
|
+
AndroidKeyEvent.KEYCODE_META_RIGHT to "MetaRight",
|
|
123
|
+
// Arrow keys
|
|
124
|
+
AndroidKeyEvent.KEYCODE_DPAD_UP to "ArrowUp",
|
|
125
|
+
AndroidKeyEvent.KEYCODE_DPAD_DOWN to "ArrowDown",
|
|
126
|
+
AndroidKeyEvent.KEYCODE_DPAD_LEFT to "ArrowLeft",
|
|
127
|
+
AndroidKeyEvent.KEYCODE_DPAD_RIGHT to "ArrowRight",
|
|
128
|
+
AndroidKeyEvent.KEYCODE_DPAD_CENTER to "Enter",
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
private val KEY_NAME_MAP: Map<Int, String> by
|
|
133
|
+
lazy(LazyThreadSafetyMode.PUBLICATION) {
|
|
134
|
+
mapOf(
|
|
135
|
+
AndroidKeyEvent.KEYCODE_ENTER to "Enter",
|
|
136
|
+
AndroidKeyEvent.KEYCODE_DPAD_CENTER to "Enter",
|
|
137
|
+
AndroidKeyEvent.KEYCODE_SPACE to " ",
|
|
138
|
+
AndroidKeyEvent.KEYCODE_TAB to "Tab",
|
|
139
|
+
AndroidKeyEvent.KEYCODE_DEL to "Backspace",
|
|
140
|
+
AndroidKeyEvent.KEYCODE_ESCAPE to "Escape",
|
|
141
|
+
AndroidKeyEvent.KEYCODE_SHIFT_LEFT to "Shift",
|
|
142
|
+
AndroidKeyEvent.KEYCODE_SHIFT_RIGHT to "Shift",
|
|
143
|
+
AndroidKeyEvent.KEYCODE_CTRL_LEFT to "Control",
|
|
144
|
+
AndroidKeyEvent.KEYCODE_CTRL_RIGHT to "Control",
|
|
145
|
+
AndroidKeyEvent.KEYCODE_ALT_LEFT to "Alt",
|
|
146
|
+
AndroidKeyEvent.KEYCODE_ALT_RIGHT to "Alt",
|
|
147
|
+
AndroidKeyEvent.KEYCODE_META_LEFT to "Meta",
|
|
148
|
+
AndroidKeyEvent.KEYCODE_META_RIGHT to "Meta",
|
|
149
|
+
AndroidKeyEvent.KEYCODE_DPAD_UP to "ArrowUp",
|
|
150
|
+
AndroidKeyEvent.KEYCODE_DPAD_DOWN to "ArrowDown",
|
|
151
|
+
AndroidKeyEvent.KEYCODE_DPAD_LEFT to "ArrowLeft",
|
|
152
|
+
AndroidKeyEvent.KEYCODE_DPAD_RIGHT to "ArrowRight",
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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.uimanager.events
|
|
9
|
+
|
|
10
|
+
import android.view.KeyEvent as AndroidKeyEvent
|
|
11
|
+
|
|
12
|
+
/** An event representing a key release (keyup). Corresponds to W3C KeyboardEvent specification. */
|
|
13
|
+
internal class KeyUpEvent(
|
|
14
|
+
surfaceId: Int,
|
|
15
|
+
viewTag: Int,
|
|
16
|
+
keyEvent: AndroidKeyEvent,
|
|
17
|
+
) : KeyEvent(surfaceId, viewTag, keyEvent) {
|
|
18
|
+
|
|
19
|
+
override fun getEventName(): String = EVENT_NAME
|
|
20
|
+
|
|
21
|
+
companion object {
|
|
22
|
+
private const val EVENT_NAME: String = "topKeyUp"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -29,7 +29,8 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
29
29
|
private lateinit var _eventName: String
|
|
30
30
|
private var coalescingKey = UNSET_COALESCING_KEY
|
|
31
31
|
private var pointersEventData: List<WritableMap>? = null
|
|
32
|
-
private
|
|
32
|
+
private var eventState: PointerEventState? = null
|
|
33
|
+
private var activeHitPathViewIds: List<Int>? = null
|
|
33
34
|
|
|
34
35
|
private fun init(
|
|
35
36
|
eventName: String,
|
|
@@ -37,12 +38,14 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
37
38
|
eventState: PointerEventState,
|
|
38
39
|
motionEventToCopy: MotionEvent,
|
|
39
40
|
coalescingKey: Short,
|
|
41
|
+
activeHitPathViewIds: List<Int>?,
|
|
40
42
|
) {
|
|
41
43
|
super.init(eventState.getSurfaceId(), targetTag, motionEventToCopy.eventTime)
|
|
42
44
|
this._eventName = eventName
|
|
43
45
|
this.motionEvent = MotionEvent.obtain(motionEventToCopy)
|
|
44
46
|
this.coalescingKey = coalescingKey
|
|
45
47
|
this.eventState = eventState
|
|
48
|
+
this.activeHitPathViewIds = activeHitPathViewIds
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
override fun getEventName(): String = _eventName
|
|
@@ -84,7 +87,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
84
87
|
return@EventAnimationDriverMatchSpec false
|
|
85
88
|
}
|
|
86
89
|
if (isBubblingEvent(eventName)) {
|
|
87
|
-
for (viewTarget in eventState.hitPathForActivePointer) {
|
|
90
|
+
for (viewTarget in checkNotNull(eventState).hitPathForActivePointer) {
|
|
88
91
|
if (viewTarget.getViewId() == viewTag) {
|
|
89
92
|
return@EventAnimationDriverMatchSpec true
|
|
90
93
|
}
|
|
@@ -97,10 +100,10 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
97
100
|
}
|
|
98
101
|
|
|
99
102
|
override fun onDispose() {
|
|
103
|
+
eventState = null
|
|
100
104
|
pointersEventData = null
|
|
101
|
-
val motionEvent = motionEvent
|
|
102
|
-
this.motionEvent = null
|
|
103
105
|
motionEvent?.recycle()
|
|
106
|
+
motionEvent = null
|
|
104
107
|
|
|
105
108
|
// Either `this` is in the event pool, or motionEvent
|
|
106
109
|
// is null. It is in theory not possible for a PointerEvent to
|
|
@@ -137,6 +140,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
137
140
|
val pointerEvent = Arguments.createMap()
|
|
138
141
|
val motionEvent = checkNotNull(motionEvent)
|
|
139
142
|
val pointerId = motionEvent.getPointerId(index)
|
|
143
|
+
val eventState = checkNotNull(eventState)
|
|
140
144
|
|
|
141
145
|
// https://www.w3.org/TR/pointerevents/#pointerevent-interface
|
|
142
146
|
pointerEvent.putDouble("pointerId", pointerId.toDouble())
|
|
@@ -212,6 +216,13 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
212
216
|
pointerEvent.putDouble("pressure", pressure)
|
|
213
217
|
pointerEvent.putDouble("tangentialPressure", 0.0)
|
|
214
218
|
|
|
219
|
+
if (activeHitPathViewIds != null) {
|
|
220
|
+
pointerEvent.putArray(
|
|
221
|
+
"hitPathForEventListener",
|
|
222
|
+
Arguments.makeNativeArray(activeHitPathViewIds),
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
|
|
215
226
|
addModifierKeyData(pointerEvent, motionEvent.metaState)
|
|
216
227
|
|
|
217
228
|
return pointerEvent
|
|
@@ -295,6 +306,9 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
295
306
|
|
|
296
307
|
val hitPathForActivePointer: List<ViewTarget>
|
|
297
308
|
get() = checkNotNull(hitPathByPointerId[activePointerId])
|
|
309
|
+
|
|
310
|
+
val hitPathViewIdsForActivePointer: List<Int>
|
|
311
|
+
get() = checkNotNull(hitPathByPointerId[activePointerId]).map { it.getViewId() }
|
|
298
312
|
}
|
|
299
313
|
|
|
300
314
|
companion object {
|
|
@@ -309,6 +323,15 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
309
323
|
targetTag: Int,
|
|
310
324
|
eventState: PointerEventState,
|
|
311
325
|
motionEventToCopy: MotionEvent?,
|
|
326
|
+
): PointerEvent = obtain(eventName, targetTag, eventState, motionEventToCopy, null)
|
|
327
|
+
|
|
328
|
+
@JvmStatic
|
|
329
|
+
fun obtain(
|
|
330
|
+
eventName: String,
|
|
331
|
+
targetTag: Int,
|
|
332
|
+
eventState: PointerEventState,
|
|
333
|
+
motionEventToCopy: MotionEvent?,
|
|
334
|
+
activeHitPathViewIds: List<Int>?,
|
|
312
335
|
): PointerEvent {
|
|
313
336
|
var event = EVENTS_POOL.acquire()
|
|
314
337
|
if (event == null) {
|
|
@@ -320,6 +343,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
320
343
|
eventState,
|
|
321
344
|
Assertions.assertNotNull(motionEventToCopy),
|
|
322
345
|
0.toShort(),
|
|
346
|
+
activeHitPathViewIds,
|
|
323
347
|
)
|
|
324
348
|
return event
|
|
325
349
|
}
|
|
@@ -342,6 +366,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
342
366
|
eventState,
|
|
343
367
|
Assertions.assertNotNull(motionEventToCopy),
|
|
344
368
|
coalescingKey,
|
|
369
|
+
null,
|
|
345
370
|
)
|
|
346
371
|
return event
|
|
347
372
|
}
|
|
@@ -372,15 +372,18 @@ public class ReactImageView(
|
|
|
372
372
|
public override fun hasOverlappingRendering(): Boolean = false
|
|
373
373
|
|
|
374
374
|
public override fun onDraw(canvas: Canvas) {
|
|
375
|
-
BackgroundStyleApplicator.
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
375
|
+
BackgroundStyleApplicator.clipToPaddingBoxWithAntiAliasing(this, canvas) {
|
|
376
|
+
try {
|
|
377
|
+
super.onDraw(canvas)
|
|
378
|
+
} catch (e: RuntimeException) {
|
|
379
|
+
// Only provide updates if downloadListener is set (shouldNotify is true)
|
|
380
|
+
if (downloadListener != null) {
|
|
381
|
+
val eventDispatcher =
|
|
382
|
+
UIManagerHelper.getEventDispatcherForReactTag(context as ReactContext, id)
|
|
383
|
+
eventDispatcher?.dispatchEvent(
|
|
384
|
+
createErrorEvent(UIManagerHelper.getSurfaceId(this), id, e)
|
|
385
|
+
)
|
|
386
|
+
}
|
|
384
387
|
}
|
|
385
388
|
}
|
|
386
389
|
}
|
|
@@ -646,7 +646,7 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
|
|
646
646
|
|
|
647
647
|
override fun onInterceptHoverEvent(event: MotionEvent): Boolean {
|
|
648
648
|
eventDispatcher?.let { jSPointerDispatcher?.handleMotionEvent(event, it, true) }
|
|
649
|
-
return super.
|
|
649
|
+
return super.onInterceptHoverEvent(event)
|
|
650
650
|
}
|
|
651
651
|
|
|
652
652
|
override fun onHoverEvent(event: MotionEvent): Boolean {
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -28,6 +28,7 @@ import android.view.KeyEvent;
|
|
|
28
28
|
import android.view.MotionEvent;
|
|
29
29
|
import android.view.View;
|
|
30
30
|
import android.view.ViewGroup;
|
|
31
|
+
import android.view.ViewParent;
|
|
31
32
|
import android.view.accessibility.AccessibilityNodeInfo;
|
|
32
33
|
import android.widget.HorizontalScrollView;
|
|
33
34
|
import android.widget.OverScroller;
|
|
@@ -134,6 +135,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
134
135
|
private @Nullable MaintainVisibleScrollPositionHelper mMaintainVisibleContentPositionHelper;
|
|
135
136
|
private int mFadingEdgeLengthStart = 0;
|
|
136
137
|
private int mFadingEdgeLengthEnd = 0;
|
|
138
|
+
private boolean mEmittedOverScrollSinceScrollBegin = false;
|
|
137
139
|
|
|
138
140
|
public ReactHorizontalScrollView(Context context) {
|
|
139
141
|
this(context, null);
|
|
@@ -298,6 +300,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
298
300
|
|
|
299
301
|
@Override
|
|
300
302
|
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
|
|
303
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
301
307
|
if (removeClippedSubviews && mClippingRect == null) {
|
|
302
308
|
mClippingRect = new Rect();
|
|
303
309
|
}
|
|
@@ -733,6 +739,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
733
739
|
}
|
|
734
740
|
ReactScrollViewHelper.emitScrollBeginDragEvent(this);
|
|
735
741
|
mDragging = true;
|
|
742
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
736
743
|
enableFpsListener();
|
|
737
744
|
getFlingAnimator().cancel();
|
|
738
745
|
}
|
|
@@ -748,6 +755,20 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
748
755
|
return handled;
|
|
749
756
|
}
|
|
750
757
|
|
|
758
|
+
private boolean isDescendantOf(View parent, View view) {
|
|
759
|
+
if (view == null || parent == null) {
|
|
760
|
+
return false;
|
|
761
|
+
}
|
|
762
|
+
ViewParent p = view.getParent();
|
|
763
|
+
while (p != null && p.getParent() != null) {
|
|
764
|
+
if (p == parent) {
|
|
765
|
+
return true;
|
|
766
|
+
}
|
|
767
|
+
p = p.getParent();
|
|
768
|
+
}
|
|
769
|
+
return false;
|
|
770
|
+
}
|
|
771
|
+
|
|
751
772
|
@Override
|
|
752
773
|
public boolean arrowScroll(int direction) {
|
|
753
774
|
boolean handled = false;
|
|
@@ -759,7 +780,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
759
780
|
View currentFocused = findFocus();
|
|
760
781
|
View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, direction);
|
|
761
782
|
View rootChild = getContentView();
|
|
762
|
-
if (rootChild
|
|
783
|
+
if (isDescendantOf(rootChild, nextFocused)) {
|
|
763
784
|
if (!isScrolledInView(nextFocused) && !isMostlyScrolledInView(nextFocused)) {
|
|
764
785
|
smoothScrollToNextPage(direction);
|
|
765
786
|
}
|
|
@@ -842,8 +863,13 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
842
863
|
@Override
|
|
843
864
|
public void run() {
|
|
844
865
|
mPostTouchRunnable = null;
|
|
845
|
-
//
|
|
846
|
-
|
|
866
|
+
// +1/-1 velocity if scrolling right or left. This is to ensure that the
|
|
867
|
+
// next/previous page is picked rather than sliding backwards to the current page
|
|
868
|
+
int velocityX = (int) Math.signum(hScroll);
|
|
869
|
+
if (mDisableIntervalMomentum) {
|
|
870
|
+
velocityX = 0;
|
|
871
|
+
}
|
|
872
|
+
flingAndSnap(velocityX);
|
|
847
873
|
}
|
|
848
874
|
};
|
|
849
875
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
@@ -1060,6 +1086,13 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1060
1086
|
// END FB SCROLLVIEW CHANGE
|
|
1061
1087
|
}
|
|
1062
1088
|
|
|
1089
|
+
if (ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()
|
|
1090
|
+
&& clampedX
|
|
1091
|
+
&& mEmittedOverScrollSinceScrollBegin == false) {
|
|
1092
|
+
ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f);
|
|
1093
|
+
mEmittedOverScrollSinceScrollBegin = true;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1063
1096
|
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
|
|
1064
1097
|
}
|
|
1065
1098
|
|
|
@@ -132,6 +132,7 @@ public class ReactScrollView extends ScrollView
|
|
|
132
132
|
private @Nullable MaintainVisibleScrollPositionHelper mMaintainVisibleContentPositionHelper;
|
|
133
133
|
private int mFadingEdgeLengthStart;
|
|
134
134
|
private int mFadingEdgeLengthEnd;
|
|
135
|
+
private boolean mEmittedOverScrollSinceScrollBegin;
|
|
135
136
|
|
|
136
137
|
public ReactScrollView(Context context) {
|
|
137
138
|
this(context, null);
|
|
@@ -194,6 +195,7 @@ public class ReactScrollView extends ScrollView
|
|
|
194
195
|
mMaintainVisibleContentPositionHelper = null;
|
|
195
196
|
mFadingEdgeLengthStart = 0;
|
|
196
197
|
mFadingEdgeLengthEnd = 0;
|
|
198
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
/* package */ void recycleView() {
|
|
@@ -629,6 +631,7 @@ public class ReactScrollView extends ScrollView
|
|
|
629
631
|
}
|
|
630
632
|
ReactScrollViewHelper.emitScrollBeginDragEvent(this);
|
|
631
633
|
mDragging = true;
|
|
634
|
+
mEmittedOverScrollSinceScrollBegin = false;
|
|
632
635
|
enableFpsListener();
|
|
633
636
|
getFlingAnimator().cancel();
|
|
634
637
|
}
|
|
@@ -696,8 +699,13 @@ public class ReactScrollView extends ScrollView
|
|
|
696
699
|
@Override
|
|
697
700
|
public void run() {
|
|
698
701
|
mPostTouchRunnable = null;
|
|
699
|
-
//
|
|
700
|
-
|
|
702
|
+
// +1/-1 velocity if scrolling down or up. This is to ensure that the
|
|
703
|
+
// next/previous page is picked rather than sliding backwards to the current page
|
|
704
|
+
int velocityY = (int) -Math.signum(vScroll);
|
|
705
|
+
if (mDisableIntervalMomentum) {
|
|
706
|
+
velocityY = 0;
|
|
707
|
+
}
|
|
708
|
+
flingAndSnap(velocityY);
|
|
701
709
|
}
|
|
702
710
|
};
|
|
703
711
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
@@ -722,6 +730,10 @@ public class ReactScrollView extends ScrollView
|
|
|
722
730
|
|
|
723
731
|
@Override
|
|
724
732
|
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
|
|
733
|
+
if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
|
|
725
737
|
if (removeClippedSubviews && mClippingRect == null) {
|
|
726
738
|
mClippingRect = new Rect();
|
|
727
739
|
}
|
|
@@ -776,8 +788,6 @@ public class ReactScrollView extends ScrollView
|
|
|
776
788
|
if (mPagingEnabled) {
|
|
777
789
|
flingAndSnap(correctedVelocityY);
|
|
778
790
|
} else if (mScroller != null) {
|
|
779
|
-
// FB SCROLLVIEW CHANGE
|
|
780
|
-
|
|
781
791
|
// We provide our own version of fling that uses a different call to the standard OverScroller
|
|
782
792
|
// which takes into account the possibility of adding new content while the ScrollView is
|
|
783
793
|
// animating. Because we give essentially no max Y for the fling, the fling will continue as
|
|
@@ -802,8 +812,6 @@ public class ReactScrollView extends ScrollView
|
|
|
802
812
|
);
|
|
803
813
|
|
|
804
814
|
ViewCompat.postInvalidateOnAnimation(this);
|
|
805
|
-
|
|
806
|
-
// END FB SCROLLVIEW CHANGE
|
|
807
815
|
} else {
|
|
808
816
|
super.fling(correctedVelocityY);
|
|
809
817
|
}
|
|
@@ -1262,11 +1270,8 @@ public class ReactScrollView extends ScrollView
|
|
|
1262
1270
|
@Override
|
|
1263
1271
|
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
|
|
1264
1272
|
if (mScroller != null && mContentView != null) {
|
|
1265
|
-
// FB SCROLLVIEW CHANGE
|
|
1266
|
-
|
|
1267
1273
|
// This is part two of the reimplementation of fling to fix the bounce-back bug. See #fling()
|
|
1268
|
-
// for
|
|
1269
|
-
// more information.
|
|
1274
|
+
// for more information.
|
|
1270
1275
|
|
|
1271
1276
|
if (!mScroller.isFinished() && mScroller.getCurrY() != mScroller.getFinalY()) {
|
|
1272
1277
|
int scrollRange = getMaxScrollY();
|
|
@@ -1275,8 +1280,13 @@ public class ReactScrollView extends ScrollView
|
|
|
1275
1280
|
scrollY = scrollRange;
|
|
1276
1281
|
}
|
|
1277
1282
|
}
|
|
1283
|
+
}
|
|
1278
1284
|
|
|
1279
|
-
|
|
1285
|
+
if (ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()
|
|
1286
|
+
&& clampedY
|
|
1287
|
+
&& mEmittedOverScrollSinceScrollBegin == false) {
|
|
1288
|
+
ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f);
|
|
1289
|
+
mEmittedOverScrollSinceScrollBegin = true;
|
|
1280
1290
|
}
|
|
1281
1291
|
|
|
1282
1292
|
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
|
|
@@ -49,6 +49,13 @@ internal class VirtualViewContainerStateExperimental(scrollView: ViewGroup) :
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
override fun remove(virtualView: VirtualView) {
|
|
53
|
+
super.remove(virtualView)
|
|
54
|
+
HPV.remove(virtualView.virtualViewID)
|
|
55
|
+
P.remove(virtualView.virtualViewID)
|
|
56
|
+
V.remove(virtualView.virtualViewID)
|
|
57
|
+
}
|
|
58
|
+
|
|
52
59
|
/**
|
|
53
60
|
* Perform mode update check on a single VirtualView. Does not check other VirtualViews in the
|
|
54
61
|
* collection. Use carefully
|
|
@@ -219,6 +219,7 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
219
219
|
node.contentDescription = accessibleTextSpan.description
|
|
220
220
|
node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK)
|
|
221
221
|
node.setBoundsInParent(bounds)
|
|
222
|
+
node.setClickable(true)
|
|
222
223
|
node.roleDescription = hostView.resources.getString(R.string.link_description)
|
|
223
224
|
node.className = AccessibilityRole.getValue(AccessibilityRole.BUTTON)
|
|
224
225
|
}
|
|
@@ -290,22 +291,26 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
290
291
|
init {
|
|
291
292
|
val accessibleLinks = mutableListOf<AccessibleLink>()
|
|
292
293
|
val spans = text.getSpans(0, text.length, ClickableSpan::class.java)
|
|
293
|
-
spans.sortBy { text.getSpanStart(it) }
|
|
294
|
-
for (i in spans.indices) {
|
|
295
|
-
val span = spans[i]
|
|
296
|
-
val start = text.getSpanStart(span)
|
|
297
|
-
val end = text.getSpanEnd(span)
|
|
298
|
-
// zero length spans, and out of range spans should not be included.
|
|
299
|
-
if (start == end || start < 0 || end < 0 || start > text.length || end > text.length) {
|
|
300
|
-
continue
|
|
301
|
-
}
|
|
302
294
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
295
|
+
// Do not generate virtual views if whole text is a single link
|
|
296
|
+
if (!isWholeTextSingleLink(text, spans)) {
|
|
297
|
+
spans.sortBy { text.getSpanStart(it) }
|
|
298
|
+
for (i in spans.indices) {
|
|
299
|
+
val span = spans[i]
|
|
300
|
+
val start = text.getSpanStart(span)
|
|
301
|
+
val end = text.getSpanEnd(span)
|
|
302
|
+
// zero length spans, and out of range spans should not be included.
|
|
303
|
+
if (start == end || start < 0 || end < 0 || start > text.length || end > text.length) {
|
|
304
|
+
continue
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
val link = AccessibleLink()
|
|
308
|
+
link.description = text.subSequence(start, end).toString()
|
|
309
|
+
link.start = start
|
|
310
|
+
link.end = end
|
|
311
|
+
link.id = i
|
|
312
|
+
accessibleLinks.add(link)
|
|
313
|
+
}
|
|
309
314
|
}
|
|
310
315
|
links = accessibleLinks
|
|
311
316
|
}
|
|
@@ -342,3 +347,14 @@ internal class ReactTextViewAccessibilityDelegate(
|
|
|
342
347
|
}
|
|
343
348
|
}
|
|
344
349
|
}
|
|
350
|
+
|
|
351
|
+
private fun isWholeTextSingleLink(text: Spanned, spans: Array<ClickableSpan>): Boolean {
|
|
352
|
+
if (spans.size != 1) {
|
|
353
|
+
return false
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
val span = spans[0]
|
|
357
|
+
val start = text.getSpanStart(span)
|
|
358
|
+
val end = text.getSpanEnd(span)
|
|
359
|
+
return start == 0 && end == text.length
|
|
360
|
+
}
|