react-native-tvos 0.80.1-0 → 0.81.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +5 -1
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +10 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +39 -37
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppDelegate/RCTAppSetupUtils.h +1 -7
- package/Libraries/AppDelegate/RCTAppSetupUtils.mm +4 -16
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +2 -8
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +8 -7
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/React-RCTBlob.podspec +3 -2
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +10 -7
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +21 -18
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
- package/Libraries/Components/ScrollView/ScrollView.js +25 -15
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +10 -3
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TV/TVEventControl.js +7 -6
- package/Libraries/Components/TV/TVFocusGuideView.js +29 -24
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -12
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.flow.js +2 -6
- package/Libraries/Components/TextInput/TextInput.js +36 -37
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +17 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +16 -11
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +144 -54
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
- package/Libraries/Components/View/ViewPropTypes.js +8 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +27 -16
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +4 -6
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/Image.android.js +113 -107
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RCTImageURLLoaderWithAttribution.h +2 -1
- package/Libraries/Image/RCTImageUtils.mm +1 -1
- package/Libraries/Image/RCTResizeMode.h +3 -7
- package/Libraries/Image/React-RCTImage.podspec +4 -2
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +64 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +6 -7
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +9 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTInspectorNetworkReporter.h +64 -0
- package/Libraries/Network/RCTInspectorNetworkReporter.mm +105 -0
- package/Libraries/Network/RCTNetworkConversions.h +23 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.mm +31 -4
- package/Libraries/Network/React-RCTNetwork.podspec +2 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +2 -0
- package/Libraries/ReactNative/AppContainer-dev.js +2 -3
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
- package/Libraries/Required/RCTRequired.podspec +1 -1
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/React-RCTSettings.podspec +2 -1
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -2
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/React-RCTText.podspec +1 -1
- package/Libraries/Text/Text.d.ts +9 -0
- package/Libraries/Text/Text.js +255 -246
- package/Libraries/Text/TextAncestor.js +3 -9
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextProps.js +2 -5
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +0 -4
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/PlatformTypes.js +2 -2
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +27 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/React-RCTVibration.podspec +2 -1
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/React/Base/RCTBridge+Private.h +5 -0
- package/React/Base/RCTBridge.mm +108 -0
- package/React/Base/RCTBridgeDelegate.h +2 -0
- package/React/Base/RCTBridgeMethod.h +3 -2
- package/React/Base/RCTBridgeModule.h +6 -0
- package/React/Base/RCTBridgeProxy.mm +2 -0
- package/React/Base/RCTBundleManager.h +2 -0
- package/React/Base/RCTBundleManager.m +10 -0
- package/React/Base/RCTCallInvokerModule.h +2 -0
- package/React/Base/RCTCallableJSModules.m +6 -0
- package/React/Base/RCTDisplayLink.h +8 -1
- package/React/Base/RCTDisplayLink.m +15 -14
- package/React/Base/RCTJavaScriptExecutor.h +2 -0
- package/React/Base/RCTModuleData.mm +37 -0
- package/React/Base/RCTModuleMethod.mm +1 -0
- package/React/Base/RCTModuleRegistry.m +8 -0
- package/React/Base/RCTRootContentView.h +4 -0
- package/React/Base/RCTRootContentView.m +4 -0
- package/React/Base/RCTRootView.m +32 -0
- package/React/Base/RCTRootViewInternal.h +4 -0
- package/React/Base/RCTTVNavigationEventNotification.h +2 -0
- package/React/Base/RCTTVRemoteHandler.h +3 -0
- package/React/Base/RCTTVRemoteHandler.m +2 -0
- package/React/Base/RCTTVRemoteHandlerConstants.h +2 -0
- package/React/Base/RCTTVRemoteSelectHandler.h +2 -0
- package/React/Base/RCTTVRemoteSelectHandler.m +2 -0
- package/React/Base/RCTTouchHandler.m +2 -0
- package/React/Base/RCTTouchHandlerTV.m +2 -0
- package/React/Base/RCTUtils.h +0 -2
- package/React/Base/RCTUtils.mm +65 -35
- package/React/Base/RCTVersion.m +2 -2
- package/React/Base/RCTViewRegistry.m +16 -7
- package/React/Base/Surface/RCTSurface.mm +68 -0
- package/React/Base/Surface/RCTSurfaceRootShadowView.m +17 -0
- package/React/Base/Surface/RCTSurfaceView.h +3 -3
- package/React/Base/Surface/RCTSurfaceView.mm +2 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -3
- package/React/CoreModules/RCTLogBox.mm +4 -1
- package/React/CoreModules/RCTLogBoxView.h +2 -0
- package/React/CoreModules/RCTLogBoxView.mm +6 -0
- package/React/CoreModules/RCTStatusBarManager.mm +2 -0
- package/React/CoreModules/RCTTVNavigationEventEmitter.mm +3 -1
- package/React/CoreModules/React-CoreModules.podspec +4 -1
- package/React/CxxBridge/RCTCxxBridge.mm +47 -11
- package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +4 -0
- package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +4 -0
- package/React/CxxBridge/RCTObjcExecutor.h +4 -0
- package/React/CxxBridge/RCTObjcExecutor.mm +5 -1
- package/React/CxxModule/DispatchMessageQueueThread.h +4 -0
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/CxxModule/RCTCxxModule.mm +1 -1
- package/React/CxxModule/RCTCxxUtils.h +4 -0
- package/React/CxxModule/RCTCxxUtils.mm +4 -1
- package/React/CxxModule/RCTNativeModule.h +4 -0
- package/React/CxxModule/RCTNativeModule.mm +5 -1
- package/React/CxxUtils/RCTFollyConvert.h +8 -6
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -31
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +3 -28
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +153 -40
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +243 -108
- package/{ReactCommon/react/renderer/components/rncore → React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec}/ComponentDescriptors.cpp +2 -2
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +30 -0
- package/{ReactCommon/react/renderer/components/rncore → React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec}/EventEmitters.cpp +26 -1
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +194 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +663 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +535 -0
- package/{ReactCommon/react/renderer/components/rncore → React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec}/RCTComponentViewHelpers.h +4 -0
- package/{ReactCommon/react/renderer/components/rncore → React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec}/ShadowNodes.cpp +1 -1
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +98 -0
- package/{ReactCommon/react/renderer/components/rncore → React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec}/States.cpp +1 -1
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +32 -0
- package/React/Fabric/Mounting/ComponentViews/ActivityIndicator/RCTActivityIndicatorViewComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.mm +4 -4
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +0 -2
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +18 -2
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +4 -4
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +7 -1
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +4 -4
- package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +2 -1
- package/React/Fabric/Mounting/ComponentViews/UnimplementedComponent/RCTUnimplementedNativeComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/UnimplementedView/RCTUnimplementedViewComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +20 -7
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +24 -0
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +384 -0
- package/React/Fabric/Mounting/RCTMountingManager.h +1 -1
- package/React/Fabric/Mounting/RCTMountingManager.mm +15 -6
- package/React/Fabric/RCTScheduler.h +1 -0
- package/React/Fabric/RCTScheduler.mm +6 -2
- package/React/Fabric/RCTSurfacePointerHandler.mm +2 -0
- package/React/Fabric/RCTSurfacePointerHandlerTV.mm +2 -0
- package/React/Fabric/RCTSurfacePresenter.h +2 -1
- package/React/Fabric/RCTSurfacePresenter.mm +14 -8
- package/React/Fabric/RCTSurfaceTouchHandler.mm +2 -0
- package/React/Fabric/RCTSurfaceTouchHandlerTV.mm +2 -0
- package/React/Fabric/Surface/RCTFabricSurface.mm +4 -4
- package/React/Fabric/Utils/RCTGradientUtils.h +12 -0
- package/React/Fabric/Utils/RCTGradientUtils.mm +213 -6
- package/React/Fabric/Utils/RCTLinearGradient.mm +37 -42
- package/React/Fabric/Utils/RCTRadialGradient.mm +29 -64
- package/React/Modules/RCTSurfacePresenterStub.h +1 -1
- package/React/Modules/RCTUIManager.mm +206 -93
- package/React/React-RCTFBReactNativeSpec.podspec +33 -8
- package/React/React-RCTFabric.podspec +8 -3
- package/React/Runtime/React-RCTRuntime.podspec +7 -6
- package/React/Views/RCTBorderDrawing.h +5 -0
- package/React/Views/RCTBorderDrawing.m +37 -4
- package/React/Views/RCTModalHostView.h +1 -0
- package/React/Views/RCTModalHostView.m +16 -0
- package/React/Views/RCTModalHostViewController.m +0 -1
- package/React/Views/RCTModalHostViewManager.m +1 -0
- package/React/Views/RCTSwitch.h +2 -0
- package/React/Views/RCTSwitch.m +2 -0
- package/React/Views/RCTSwitchManager.h +2 -0
- package/React/Views/RCTSwitchManager.m +2 -0
- package/React/Views/RCTTVView.h +2 -0
- package/React/Views/RCTTVView.m +2 -0
- package/React/Views/RCTView.m +4 -1
- package/React/Views/RefreshControl/RCTRefreshControl.h +2 -0
- package/React/Views/RefreshControl/RCTRefreshControl.m +2 -0
- package/React/Views/RefreshControl/RCTRefreshControlManager.h +2 -0
- package/React/Views/RefreshControl/RCTRefreshControlManager.m +2 -0
- package/React/Views/RefreshControl/RCTRefreshableProtocol.h +2 -0
- package/React/Views/ScrollView/RCTScrollView.h +2 -0
- package/React/Views/ScrollView/RCTScrollView.m +2 -0
- package/React/Views/ScrollView/RCTScrollViewManager.m +2 -0
- package/React-Core-prebuilt.podspec +78 -0
- package/React-Core.podspec +29 -28
- package/ReactAndroid/api/ReactAndroid.api +294 -506
- package/ReactAndroid/build.gradle.kts +20 -55
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +1 -1
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -2
- package/ReactAndroid/external-artifacts/build.gradle.kts +52 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +25 -0
- package/ReactAndroid/publish.gradle +2 -2
- package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
- package/ReactAndroid/src/main/java/com/facebook/debug/tags/ReactDebugOverlayTags.kt +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.kt +194 -0
- package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.kt +1 -5
- package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.kt +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +146 -0
- package/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt +6 -5
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +57 -30
- package/ReactAndroid/src/main/java/com/facebook/react/ReactApplication.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +451 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.kt +237 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +396 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageLogger.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +244 -0
- package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +59 -77
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +43 -37
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseActivityEventListener.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +20 -11
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +3 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSONArguments.kt +37 -40
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +399 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyArray.kt +8 -9
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModuleRegistry.kt +93 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/MemoryPressureListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +227 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.kt +59 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +156 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +240 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.kt +33 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +69 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.kt +212 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +30 -21
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableArrayBuilder.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMapBuilder.kt +21 -7
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RetryableMountingLayerException.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/ReactQueueConfigurationImpl.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.kt +107 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/LegacyArchitectureShadowNodeWithCxxImpl.kt +6 -4
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/InteropLegacyArchitecture.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +16 -4
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +53 -1
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +9 -15
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +5 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.kt +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DoubleTapReloadRecognizer.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +16 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevOptionHandler.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/StackFrame.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +65 -68
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +6 -5
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt +27 -16
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +365 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +373 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +48 -50
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchIntCommandMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchStringCommandMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +77 -5
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +131 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +145 -13
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +21 -30
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +4 -11
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +6 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +3 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.kt +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevMenuModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevSettingsModule.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +10 -9
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +23 -55
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/interfaces/DeveloperSettings.kt +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +9 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +23 -21
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +7 -10
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressiveStringDecoder.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ResponseUtil.kt +24 -23
- package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.kt +3 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/SoundManagerModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +17 -20
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt +11 -14
- package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +52 -40
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +22 -18
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +6 -4
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/JSRuntimeFactory.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +1472 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +14 -14
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceImpl.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/ExecutorException.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +9 -2
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/touch/OnInterceptTouchEventListener.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +80 -63
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +1 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +17 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FloatUtil.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +238 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutDirectionUtil.kt +4 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/MatrixMathHelper.kt +25 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NoSuchNativeViewException.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/OnLayoutEvent.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PointerEvents.kt +6 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +0 -14
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +63 -106
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroup.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.kt +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactStylesDiffMap.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/Spacing.kt +4 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +151 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +232 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstants.kt +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.kt +238 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewAtIndex.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +15 -62
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +18 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.kt +161 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/YogaNodePool.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt +8 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +334 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +12 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +340 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/internal/LegacyArchitectureShadowNodeLogger.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AbstractLayoutAnimation.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AnimatedPropertyType.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/InterpolatorType.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationType.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutHandlingAnimation.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutUpdateAnimation.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.kt +9 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/ContextUtils.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/UiModeUtils.kt +26 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.kt +5 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +4 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +80 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +52 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +37 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +45 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +19 -28
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +34 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.kt +28 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +0 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +0 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +15 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +103 -159
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +29 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextShadowNode.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +25 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +349 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +87 -84
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +181 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextShadowNode.kt +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributes.kt +137 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +1203 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.kt +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +17 -10
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomLetterSpacingSpan.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +8 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSelectionEvent.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +1586 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +38 -44
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.kt +1 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +77 -43
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtualview/ReactVirtualView.kt +382 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtualview/ReactVirtualViewManager.kt +102 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtualview/VirtualViewMode.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtualview/VirtualViewModeChangeEvent.kt +49 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtualview/VirtualViewRenderState.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +1 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -98
- package/ReactAndroid/src/main/jni/first-party/fbgloginit/fb/glog_init.h +1 -3
- package/ReactAndroid/src/main/jni/first-party/fbgloginit/glog_init.cpp +2 -4
- package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/SoMerging-utils.cmake +4 -0
- package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +4 -1
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +4 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +13 -10
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -1
- package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +105 -13
- package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.h +8 -6
- package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +181 -13
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +39 -3
- package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +11 -9
- package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.h +2 -6
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +10 -2
- package/ReactAndroid/src/main/jni/react/hermes/tooling/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +4 -0
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -0
- package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/newarchdefaults/rncore.h +20 -0
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h +1 -1
- package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/res/systeminfo/values-am/strings.xml +6 -0
- package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -9
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
- package/ReactCommon/React-Fabric.podspec +32 -43
- package/ReactCommon/React-FabricComponents.podspec +54 -57
- package/ReactCommon/React-FabricImage.podspec +2 -1
- package/ReactCommon/React-Mapbuffer.podspec +2 -2
- package/ReactCommon/ReactCommon.podspec +6 -7
- package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
- package/ReactCommon/callinvoker/ReactCommon/CallInvoker.h +5 -5
- package/ReactCommon/callinvoker/ReactCommon/SchedulerPriority.h +0 -2
- package/ReactCommon/cmake-utils/internal/react-native-platform-selector.cmake +24 -0
- package/ReactCommon/cmake-utils/react-native-flags.cmake +7 -11
- package/ReactCommon/cxxreact/CMakeLists.txt +1 -1
- package/ReactCommon/cxxreact/CxxModule.h +3 -7
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +5 -0
- package/ReactCommon/cxxreact/CxxNativeModule.h +4 -0
- package/ReactCommon/cxxreact/Instance.cpp +4 -0
- package/ReactCommon/cxxreact/Instance.h +5 -1
- package/ReactCommon/cxxreact/JSBigString.cpp +3 -3
- package/ReactCommon/cxxreact/JSBigString.h +3 -2
- package/ReactCommon/cxxreact/JSExecutor.cpp +2 -6
- package/ReactCommon/cxxreact/JSExecutor.h +5 -4
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +7 -1
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +6 -0
- package/ReactCommon/cxxreact/JSModulesUnbundle.h +5 -1
- package/ReactCommon/cxxreact/JsArgumentHelpers.h +2 -4
- package/ReactCommon/cxxreact/MessageQueueThread.h +1 -3
- package/ReactCommon/cxxreact/MethodCall.cpp +4 -0
- package/ReactCommon/cxxreact/MethodCall.h +4 -0
- package/ReactCommon/cxxreact/ModuleRegistry.cpp +4 -0
- package/ReactCommon/cxxreact/ModuleRegistry.h +4 -0
- package/ReactCommon/cxxreact/NativeModule.h +5 -1
- package/ReactCommon/cxxreact/NativeToJsBridge.cpp +4 -0
- package/ReactCommon/cxxreact/NativeToJsBridge.h +4 -0
- package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +4 -0
- package/ReactCommon/cxxreact/RAMBundleRegistry.h +5 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -4
- package/ReactCommon/cxxreact/ReactMarker.cpp +2 -4
- package/ReactCommon/cxxreact/ReactMarker.h +2 -4
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/cxxreact/SharedProxyCxxModule.h +2 -6
- package/ReactCommon/devtoolsruntimesettings/CMakeLists.txt +5 -5
- package/ReactCommon/hermes/React-hermes.podspec +6 -3
- package/ReactCommon/hermes/executor/CMakeLists.txt +4 -1
- package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
- package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +4 -1
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeSamplingProfileSerializer.cpp +10 -6
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeSamplingProfileSerializer.h +11 -1
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +58 -9
- package/ReactCommon/jsc/JSCRuntime.cpp +2 -4
- package/ReactCommon/jsc/JSCRuntime.h +2 -4
- package/ReactCommon/jserrorhandler/CMakeLists.txt +3 -1
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +4 -9
- package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +4 -3
- package/ReactCommon/jserrorhandler/StackTraceParser.cpp +3 -1
- package/ReactCommon/jsi/CMakeLists.txt +1 -1
- package/ReactCommon/jsi/React-jsi.podspec +3 -6
- package/ReactCommon/jsi/jsi/CMakeLists.txt +1 -1
- package/ReactCommon/jsi/jsi/decorator.h +33 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +14 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +119 -0
- package/ReactCommon/jsi/jsi/jsi.h +153 -1
- package/ReactCommon/jsi/jsi/test/testlib.cpp +111 -4
- package/ReactCommon/jsi/jsi/test/testlib.h +2 -2
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +4 -2
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +54 -1
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +4 -0
- package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +5 -0
- package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.h +4 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +0 -6
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +54 -2
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +16 -0
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +4 -3
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +157 -27
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +4 -3
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -2
- package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +3 -2
- package/ReactCommon/jsinspector-modern/network/BoundedRequestBuffer.cpp +77 -0
- package/ReactCommon/jsinspector-modern/network/BoundedRequestBuffer.h +67 -0
- package/ReactCommon/jsinspector-modern/network/CMakeLists.txt +3 -1
- package/ReactCommon/jsinspector-modern/network/CdpNetwork.cpp +35 -0
- package/ReactCommon/jsinspector-modern/network/CdpNetwork.h +43 -0
- package/ReactCommon/jsinspector-modern/network/NetworkReporter.cpp +144 -23
- package/ReactCommon/jsinspector-modern/network/NetworkReporter.h +91 -19
- package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +6 -2
- package/ReactCommon/jsinspector-modern/tests/ConsoleTimeStampTest.cpp +146 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +37 -36
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +9 -9
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h +91 -0
- package/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.cpp +5 -18
- package/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h +4 -2
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +141 -84
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +59 -18
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -2
- package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfile.h +28 -8
- package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp +41 -32
- package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h +9 -7
- package/ReactCommon/jsinspector-modern/tracing/Timing.h +42 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +6 -8
- package/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h +10 -2
- package/ReactCommon/jsinspector-modern/tracing/tests/RuntimeSamplingProfileTraceEventSerializerTest.cpp +13 -13
- package/ReactCommon/jsitooling/CMakeLists.txt +1 -1
- package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -2
- package/ReactCommon/logger/React-logger.podspec +2 -1
- package/ReactCommon/oscompat/React-oscompat.podspec +1 -1
- package/ReactCommon/react/bridging/Base.h +45 -34
- package/ReactCommon/react/bridging/Bool.h +1 -1
- package/ReactCommon/react/bridging/Bridging.h +1 -0
- package/ReactCommon/react/bridging/CMakeLists.txt +2 -2
- package/ReactCommon/react/bridging/Class.h +36 -33
- package/ReactCommon/react/bridging/HighResTimeStamp.h +41 -0
- package/ReactCommon/react/bridging/Number.h +10 -10
- package/ReactCommon/react/bridging/Promise.h +14 -8
- package/ReactCommon/react/bridging/tests/BridgingTest.cpp +35 -6
- package/ReactCommon/react/bridging/tests/ClassTest.cpp +58 -0
- package/ReactCommon/react/debug/CMakeLists.txt +6 -2
- package/ReactCommon/react/debug/React-debug.podspec +2 -2
- package/ReactCommon/react/featureflags/CMakeLists.txt +1 -1
- package/ReactCommon/react/featureflags/React-featureflags.podspec +3 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +53 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +65 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +269 -53
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +30 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +52 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +115 -7
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +4 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +15 -3
- package/ReactCommon/react/nativemodule/core/CMakeLists.txt +9 -5
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModulePerfLogger.cpp +2 -4
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModulePerfLogger.h +2 -4
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +0 -19
- package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +108 -0
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +7 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +4 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +2 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +2 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +3 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +25 -26
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +1 -1
- package/ReactCommon/react/nativemodule/cputime/CMakeLists.txt +20 -0
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +3 -1
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +2 -1
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/CMakeLists.txt +2 -2
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.cpp +2 -0
- package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.h +1 -1
- package/ReactCommon/react/nativemodule/dom/CMakeLists.txt +2 -1
- package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +62 -51
- package/ReactCommon/react/nativemodule/dom/NativeDOM.h +33 -18
- package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +4 -1
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/CMakeLists.txt +29 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +52 -0
- package/ReactCommon/react/nativemodule/{fantomforcedclonecommithook/NativeFantomForcedCloneCommitHook.h → fantomtestspecificmethods/NativeFantomTestSpecificMethods.h} +7 -6
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/internal/FantomForcedCloneCommitHook.cpp +56 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/internal/FantomForcedCloneCommitHook.h +29 -0
- package/ReactCommon/react/nativemodule/featureflags/CMakeLists.txt +1 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +66 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +31 -8
- package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +2 -1
- package/ReactCommon/react/nativemodule/idlecallbacks/CMakeLists.txt +1 -1
- package/ReactCommon/react/nativemodule/idlecallbacks/NativeIdleCallbacks.cpp +10 -17
- package/ReactCommon/react/nativemodule/idlecallbacks/NativeIdleCallbacks.h +3 -4
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +3 -1
- package/ReactCommon/react/nativemodule/intersectionobserver/CMakeLists.txt +28 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +66 -11
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +20 -4
- package/ReactCommon/react/nativemodule/microtasks/CMakeLists.txt +1 -1
- package/ReactCommon/react/nativemodule/microtasks/NativeMicrotasks.h +1 -3
- package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +2 -1
- package/ReactCommon/react/nativemodule/mutationobserver/CMakeLists.txt +27 -0
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +7 -8
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +5 -5
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +1 -1
- package/ReactCommon/react/nativemodule/webperformance/CMakeLists.txt +21 -0
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +45 -12
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +20 -22
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +2 -1
- package/ReactCommon/react/performance/timeline/PerformanceEntry.h +11 -10
- package/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h +2 -2
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +56 -47
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +33 -20
- package/ReactCommon/react/performance/timeline/PerformanceObserver.h +8 -5
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +3 -2
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryReporterTest.cpp +196 -79
- package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +238 -44
- package/ReactCommon/react/renderer/animations/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +5 -4
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -6
- package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +9 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +8 -1
- package/ReactCommon/react/renderer/attributedstring/PlaceholderAttributedString.h +34 -0
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +3 -16
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -5
- package/ReactCommon/react/renderer/attributedstring/conversions.h +14 -7
- package/ReactCommon/react/renderer/bridging/CMakeLists.txt +15 -0
- package/ReactCommon/react/renderer/bridging/bridging.h +52 -0
- package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/image/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +108 -0
- package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -0
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +16 -0
- package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h +2 -2
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +18 -7
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +1 -1
- package/ReactCommon/react/renderer/components/modal/CMakeLists.txt +9 -2
- package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +3 -2
- package/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h +5 -2
- package/ReactCommon/react/renderer/components/modal/ModalHostViewState.cpp +1 -1
- package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +7 -15
- package/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h +2 -2
- package/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm +1 -1
- package/ReactCommon/react/renderer/components/modal/platform/android/JReactModalHostView.h +38 -0
- package/ReactCommon/react/renderer/components/modal/platform/android/ModalHostViewUtils.cpp +18 -0
- package/ReactCommon/react/renderer/components/modal/platform/cxx/ModalHostViewUtils.cpp +17 -0
- package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.cpp +2 -12
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h +1 -5
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +2 -2
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h +2 -2
- package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h +10 -26
- package/ReactCommon/react/renderer/components/rncore/EventEmitters.h +10 -165
- package/ReactCommon/react/renderer/components/rncore/Props.h +10 -393
- package/ReactCommon/react/renderer/components/rncore/ShadowNodes.h +10 -94
- package/ReactCommon/react/renderer/components/rncore/States.h +10 -97
- package/ReactCommon/react/renderer/components/root/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h +2 -2
- package/ReactCommon/react/renderer/components/scrollview/{ScrollViewProps.cpp → BaseScrollViewProps.cpp} +29 -22
- package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +87 -0
- package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +16 -3
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +3 -73
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +2 -2
- package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +354 -0
- package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +46 -0
- package/{React/Runtime/RCTJscInstanceFactory.h → ReactCommon/react/renderer/components/scrollview/platform/cxx/react/renderer/components/scrollview/HostPlatformScrollViewProps.h} +4 -10
- package/ReactCommon/react/renderer/components/switch/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.cpp +32 -41
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h +0 -3
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +2 -2
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +192 -13
- package/ReactCommon/react/renderer/components/text/BaseTextProps.h +6 -0
- package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h +0 -7
- package/ReactCommon/react/renderer/components/text/CMakeLists.txt +15 -6
- package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +93 -0
- package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -0
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +143 -80
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +26 -7
- package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +28 -0
- package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -0
- package/ReactCommon/react/renderer/components/text/TextProps.cpp +21 -0
- package/ReactCommon/react/renderer/components/text/TextProps.h +5 -0
- package/ReactCommon/react/renderer/components/text/conversions.h +2 -2
- package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +8 -0
- package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +23 -2
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +6 -0
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +9 -15
- package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +11 -7
- package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +2 -1
- package/ReactCommon/react/renderer/components/textinput/TextInputState.h +5 -22
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +4 -2
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +277 -0
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -1
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +10 -21
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +2 -2
- package/ReactCommon/react/renderer/components/textinput/{TextInputState.cpp → platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp} +3 -32
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +83 -0
- package/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.cpp +21 -0
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +4 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +33 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +28 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +4 -1
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/view/CMakeLists.txt +11 -7
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +51 -27
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +14 -3
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +144 -516
- package/ReactCommon/react/renderer/components/view/conversions.h +114 -0
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +119 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +2 -3
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +1 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +537 -2
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +6 -2
- package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +20 -0
- package/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h +37 -0
- package/ReactCommon/react/renderer/consistency/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
- package/ReactCommon/react/renderer/core/CMakeLists.txt +3 -2
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +3 -3
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +9 -6
- package/ReactCommon/react/renderer/core/ConcreteState.h +7 -9
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +7 -0
- package/ReactCommon/react/renderer/core/EventEmitter.h +7 -0
- package/ReactCommon/react/renderer/core/EventLogger.h +3 -2
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +24 -2
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +12 -3
- package/ReactCommon/react/renderer/core/Props.cpp +1 -1
- package/ReactCommon/react/renderer/core/Props.h +5 -2
- package/ReactCommon/react/renderer/core/RawEvent.cpp +2 -0
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -1
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +127 -23
- package/ReactCommon/react/renderer/core/ShadowNode.h +69 -26
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +8 -0
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -1
- package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +26 -16
- package/ReactCommon/react/renderer/core/State.cpp +2 -2
- package/ReactCommon/react/renderer/core/State.h +3 -5
- package/ReactCommon/react/renderer/core/StateData.h +2 -2
- package/ReactCommon/react/renderer/core/graphicsConversions.h +47 -5
- package/ReactCommon/react/renderer/core/propsConversions.h +37 -0
- package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +7 -6
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +9 -1
- package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +5 -0
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +38 -5
- package/ReactCommon/react/renderer/css/CMakeLists.txt +2 -2
- package/ReactCommon/react/renderer/css/CSSTokenizer.h +0 -1
- package/ReactCommon/react/renderer/css/React-renderercss.podspec +3 -3
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +3 -2
- package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +0 -2
- package/ReactCommon/react/renderer/dom/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/dom/DOM.cpp +28 -31
- package/ReactCommon/react/renderer/dom/DOM.h +3 -4
- package/ReactCommon/react/renderer/element/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/element/ComponentBuilder.cpp +4 -3
- package/ReactCommon/react/renderer/element/ComponentBuilder.h +2 -1
- package/ReactCommon/react/renderer/element/Element.h +7 -5
- package/ReactCommon/react/renderer/element/ElementFragment.h +1 -1
- package/ReactCommon/react/renderer/element/tests/ElementTest.cpp +4 -2
- package/ReactCommon/react/renderer/graphics/BlendMode.h +37 -0
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +12 -4
- package/ReactCommon/react/renderer/graphics/Color.cpp +1 -1
- package/ReactCommon/react/renderer/graphics/Color.h +10 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +25 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +4 -3
- package/ReactCommon/react/renderer/graphics/Transform.cpp +2 -15
- package/ReactCommon/react/renderer/graphics/Transform.h +0 -7
- package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +5 -2
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h +5 -2
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +4 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +2 -4
- package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +14 -5
- package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +11 -0
- package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +1 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +2 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +59 -0
- package/ReactCommon/react/renderer/leakchecker/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +0 -2
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +0 -2
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +2 -1
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +34 -21
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -1
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +67 -25
- package/ReactCommon/react/renderer/mounting/ShadowTree.h +13 -0
- package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +11 -6
- package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +6 -2
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +3 -53
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +9 -7
- package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +2 -2
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +9 -6
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.h +4 -2
- package/ReactCommon/react/renderer/observers/events/CMakeLists.txt +4 -2
- package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +27 -10
- package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +9 -7
- package/ReactCommon/react/renderer/observers/intersection/CMakeLists.txt +28 -0
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +74 -31
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +19 -13
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +136 -63
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +34 -8
- package/ReactCommon/react/renderer/observers/mutation/CMakeLists.txt +24 -0
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +34 -46
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +15 -15
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +17 -32
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h +2 -4
- package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +12 -6
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +16 -10
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +3 -5
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +1 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerIntersectionObserverDelegate.h +25 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -4
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +11 -8
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +61 -62
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +25 -21
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +8 -7
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +17 -5
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +6 -4
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +43 -31
- package/ReactCommon/react/renderer/runtimescheduler/tests/StubClock.h +6 -11
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +10 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +5 -3
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +3 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +5 -4
- package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +16 -6
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +6 -0
- package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +81 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +116 -104
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/react/renderer/textlayoutmanager/TextLayoutManager.cpp +5 -2
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +23 -6
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +27 -28
- package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +2 -1
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +15 -10
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +6 -7
- package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +2 -3
- package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h +5 -3
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +21 -19
- package/ReactCommon/react/renderer/uimanager/UIManager.h +13 -12
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +47 -23
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +9 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerUpdateShadowTree.cpp +6 -1
- package/ReactCommon/react/renderer/uimanager/consistency/CMakeLists.txt +1 -1
- package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +1 -1
- package/ReactCommon/react/renderer/uimanager/primitives.h +10 -18
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +1 -1
- package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h +0 -1
- package/ReactCommon/react/runtime/BufferedRuntimeExecutor.h +1 -0
- package/ReactCommon/react/runtime/CMakeLists.txt +8 -3
- package/ReactCommon/react/runtime/React-RuntimeCore.podspec +4 -3
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +4 -2
- package/ReactCommon/react/runtime/ReactInstance.cpp +2 -1
- package/ReactCommon/react/runtime/ReactInstance.h +1 -0
- package/ReactCommon/react/runtime/hermes/CMakeLists.txt +5 -2
- package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +8 -10
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +43 -20
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.mm +1 -1
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +16 -16
- package/ReactCommon/react/timing/React-timing.podspec +1 -1
- package/ReactCommon/react/timing/primitives.h +280 -15
- package/ReactCommon/react/timing/tests/PrimitivesTest.cpp +82 -24
- package/ReactCommon/react/utils/CMakeLists.txt +13 -3
- package/ReactCommon/react/utils/FloatComparison.h +8 -2
- package/ReactCommon/react/utils/ManagedObjectWrapper.mm +2 -4
- package/ReactCommon/react/utils/OnScopeExit.h +1 -1
- package/ReactCommon/react/utils/PackTraits.h +0 -2
- package/ReactCommon/react/utils/React-utils.podspec +4 -3
- package/ReactCommon/react/utils/SimpleThreadSafeCache.h +40 -28
- package/ReactCommon/react/utils/iequals.h +1 -3
- package/ReactCommon/react/utils/platform/ios/react/utils/FollyConvert.h +18 -0
- package/{React/CxxUtils/RCTFollyConvert.mm → ReactCommon/react/utils/platform/ios/react/utils/FollyConvert.mm} +17 -1
- package/ReactCommon/react/utils/tests/SimpleThreadSafeCacheTest.cpp +40 -0
- package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -1
- package/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.cpp +2 -4
- package/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h +2 -6
- package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.cpp +6 -2
- package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.cpp +10 -4
- package/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h +1 -1
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.cpp +10 -6
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.h +2 -1
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
- package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.h +4 -3
- package/ReactCommon/runtimeexecutor/CMakeLists.txt +2 -2
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +24 -1
- package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +0 -72
- package/ReactCommon/runtimeexecutor/platform/cxx/ReactCommon/RuntimeExecutorSyncUIThreadUtils.cpp +61 -0
- package/ReactCommon/runtimeexecutor/platform/cxx/ReactCommon/RuntimeExecutorSyncUIThreadUtils.h +36 -0
- package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.h +39 -0
- package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.mm +260 -0
- package/ReactCommon/yoga/Yoga.podspec +1 -1
- package/ReactCommon/yoga/yoga/YGNodeLayout.cpp +8 -0
- package/ReactCommon/yoga/yoga/YGNodeLayout.h +10 -0
- package/ReactCommon/yoga/yoga/YGValue.h +2 -2
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +21 -16
- package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +6 -6
- package/ReactCommon/yoga/yoga/node/LayoutResults.h +9 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +29 -0
- package/ReactCommon/yoga/yoga/node/Node.h +6 -4
- package/cli.js +52 -33
- package/{src/types → flow}/bom.js.flow +0 -10
- package/{src/types → flow}/cssom.js.flow +0 -1
- package/{src/types → flow}/dom.js.flow +0 -1
- package/{src/types → flow}/streams.js.flow +0 -1
- package/gradle/libs.versions.toml +6 -5
- package/index.js +22 -2
- package/index.js.flow +10 -1
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +26 -15
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/jest/mocks/Clipboard.js +16 -0
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -2
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -443
- package/jest-preset.js +1 -0
- package/package.json +16 -22
- package/react-native.config.js +18 -5
- package/scripts/bundle.js +10 -2
- package/scripts/cocoapods/helpers.rb +1 -1
- package/scripts/cocoapods/jsengine.rb +28 -16
- package/scripts/cocoapods/new_architecture.rb +1 -0
- package/scripts/cocoapods/rncore.rb +247 -0
- package/scripts/cocoapods/rndependencies.rb +86 -26
- package/scripts/cocoapods/utils.rb +73 -44
- package/scripts/codegen/codegen-utils.js +9 -4
- package/scripts/codegen/generate-artifacts-executor/constants.js +30 -36
- package/scripts/codegen/generate-artifacts-executor/generateAppDependencyProvider.js +2 -1
- package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +10 -4
- package/scripts/codegen/generate-artifacts-executor/generateFBReactNativeSpecIOS.js +8 -4
- package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +21 -29
- package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +7 -6
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +13 -6
- package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +8 -7
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +15 -5
- package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +4 -3
- package/scripts/codegen/generate-artifacts-executor/index.js +24 -10
- package/scripts/codegen/generate-artifacts-executor/utils.js +51 -23
- package/scripts/codegen/generate-specs-cli-executor.js +36 -30
- package/scripts/codegen/templates/ReactCodegen.podspec.template +5 -2
- package/scripts/compose-source-maps.js +3 -2
- package/scripts/generate-codegen-artifacts.js +2 -0
- package/scripts/generate-provider-cli.js +11 -5
- package/scripts/generate-specs-cli.js +7 -0
- package/scripts/hermes/hermes-utils.js +2 -2
- package/scripts/hermes/prepare-hermes-for-build.js +2 -1
- package/scripts/packager-reporter.js +9 -3
- package/scripts/react_native_pods.rb +56 -24
- package/scripts/replace-rncore-version.js +120 -0
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-utils.rb +25 -23
- package/sdks/hermes-engine/utils/build-hermesc-xcode.sh +11 -3
- package/sdks/hermes-engine/utils/replace_hermes_version.js +1 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
- package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
- package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +14 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.js.flow +3 -7
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -8
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +16 -3
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- 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/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +1 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +1 -1
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +4 -1
- package/src/private/webapis/geometry/DOMRectList.js.flow +1 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +20 -9
- package/src/private/webapis/performance/PerformanceEntry.js +5 -1
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/third-party-podspecs/ReactNativeDependencies.podspec +14 -1
- package/third-party-podspecs/replace_dependencies_version.js +37 -6
- package/types/modules/Devtools.d.ts +23 -9
- package/types_generated/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +101 -0
- package/types_generated/Libraries/Alert/Alert.d.ts +55 -0
- package/types_generated/Libraries/Animated/Animated.d.ts +14 -0
- package/types_generated/Libraries/Animated/AnimatedEvent.d.ts +30 -0
- package/types_generated/Libraries/Animated/AnimatedExports.d.ts +190 -0
- package/types_generated/Libraries/Animated/AnimatedImplementation.d.ts +128 -0
- package/types_generated/Libraries/Animated/AnimatedPlatformConfig.d.ts +13 -0
- package/types_generated/Libraries/Animated/Easing.d.ts +171 -0
- package/types_generated/Libraries/Animated/animations/Animation.d.ts +35 -0
- package/types_generated/Libraries/Animated/animations/DecayAnimation.d.ts +42 -0
- package/types_generated/Libraries/Animated/animations/SpringAnimation.d.ts +130 -0
- package/types_generated/Libraries/Animated/animations/TimingAnimation.d.ts +54 -0
- package/types_generated/Libraries/Animated/components/AnimatedFlatList.d.ts +22 -0
- package/types_generated/Libraries/Animated/components/AnimatedImage.d.ts +18 -0
- package/types_generated/Libraries/Animated/components/AnimatedScrollView.d.ts +23 -0
- package/types_generated/Libraries/Animated/components/AnimatedSectionList.d.ts +22 -0
- package/types_generated/Libraries/Animated/components/AnimatedText.d.ts +18 -0
- package/types_generated/Libraries/Animated/components/AnimatedView.d.ts +19 -0
- package/types_generated/Libraries/Animated/createAnimatedComponent.d.ts +42 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedAddition.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +76 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedDiffClamp.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedDivision.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedInterpolation.d.ts +36 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedModulo.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedMultiplication.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedNode.d.ts +46 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedProps.d.ts +29 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedStyle.d.ts +32 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedSubtraction.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedTracking.d.ts +21 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedValue.d.ts +126 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedValueXY.d.ts +135 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedWithChildren.d.ts +15 -0
- package/types_generated/Libraries/Animated/useAnimatedValue.d.ts +15 -0
- package/types_generated/Libraries/AppState/AppState.d.ts +63 -0
- package/types_generated/Libraries/BatchedBridge/BatchedBridge.d.ts +17 -0
- package/types_generated/Libraries/BatchedBridge/MessageQueue.d.ts +39 -0
- package/types_generated/Libraries/BatchedBridge/NativeModules.d.ts +20 -0
- package/types_generated/Libraries/Blob/Blob.d.ts +80 -0
- package/types_generated/Libraries/Blob/BlobTypes.d.ts +27 -0
- package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +220 -0
- package/types_generated/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.d.ts +20 -0
- package/types_generated/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +84 -0
- package/types_generated/Libraries/Components/Button.d.ts +251 -0
- package/types_generated/Libraries/Components/Clipboard/Clipboard.d.ts +38 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +17 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.d.ts +27 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.d.ts +176 -0
- package/types_generated/Libraries/Components/Keyboard/Keyboard.d.ts +146 -0
- package/types_generated/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +73 -0
- package/types_generated/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +24 -0
- package/types_generated/Libraries/Components/Pressable/Pressable.d.ts +141 -0
- package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +45 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +32 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.d.ts +50 -0
- package/types_generated/Libraries/Components/RefreshControl/RefreshControl.d.ts +113 -0
- package/types_generated/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +33 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +560 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewContext.d.ts +24 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponent.d.ts +21 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +134 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +36 -0
- package/types_generated/Libraries/Components/StatusBar/StatusBar.d.ts +222 -0
- package/types_generated/Libraries/Components/Switch/AndroidSwitchNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/Switch/Switch.d.ts +138 -0
- package/types_generated/Libraries/Components/Switch/SwitchNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/TV/TVEventControl.d.ts +23 -0
- package/types_generated/Libraries/Components/TV/TVEventHandler.d.ts +21 -0
- package/types_generated/Libraries/Components/TV/TVFocusGuideView.d.ts +71 -0
- package/types_generated/Libraries/Components/TV/TVTextScrollView.d.ts +97 -0
- package/types_generated/Libraries/Components/TV/TVViewPropTypes.d.ts +79 -0
- package/types_generated/Libraries/Components/TV/tagForComponentOrHandle.d.ts +24 -0
- package/types_generated/Libraries/Components/TV/useTVEventHandler.d.ts +20 -0
- package/types_generated/Libraries/Components/TextInput/InputAccessoryView.d.ts +86 -0
- package/types_generated/Libraries/Components/TextInput/TextInput.d.ts +47 -0
- package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +984 -0
- package/types_generated/Libraries/Components/TextInput/TextInputState.d.ts +54 -0
- package/types_generated/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +99 -0
- package/types_generated/Libraries/Components/Touchable/Touchable.d.ts +257 -0
- package/types_generated/Libraries/Components/Touchable/TouchableHighlight.d.ts +71 -0
- package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +228 -0
- package/types_generated/Libraries/Components/Touchable/TouchableOpacity.d.ts +76 -0
- package/types_generated/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +121 -0
- package/types_generated/Libraries/Components/View/View.d.ts +30 -0
- package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +415 -0
- package/types_generated/Libraries/Components/View/ViewNativeComponent.d.ts +29 -0
- package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +431 -0
- package/types_generated/Libraries/Core/Devtools/symbolicateStackTrace.d.ts +27 -0
- package/types_generated/Libraries/Core/ExceptionsManager.d.ts +43 -0
- package/types_generated/Libraries/Core/ExtendedError.d.ts +26 -0
- package/types_generated/Libraries/Core/NativeExceptionsManager.d.ts +17 -0
- package/types_generated/Libraries/Core/RawEventEmitter.d.ts +26 -0
- package/types_generated/Libraries/Core/ReactFiberErrorDialog.d.ts +27 -0
- package/types_generated/Libraries/Core/registerCallableModule.d.ts +18 -0
- package/types_generated/Libraries/EventEmitter/NativeEventEmitter.d.ts +42 -0
- package/types_generated/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +19 -0
- package/types_generated/Libraries/EventEmitter/RCTEventEmitter.d.ts +18 -0
- package/types_generated/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +21 -0
- package/types_generated/Libraries/Image/AssetSourceResolver.d.ts +71 -0
- package/types_generated/Libraries/Image/Image.d.ts +18 -0
- package/types_generated/Libraries/Image/ImageBackground.d.ts +44 -0
- package/types_generated/Libraries/Image/ImageProps.d.ts +512 -0
- package/types_generated/Libraries/Image/ImageResizeMode.d.ts +17 -0
- package/types_generated/Libraries/Image/ImageSource.d.ts +94 -0
- package/types_generated/Libraries/Image/ImageTypes.flow.d.ts +64 -0
- package/types_generated/Libraries/Image/ImageViewNativeComponent.d.ts +68 -0
- package/types_generated/Libraries/Image/TextInlineImageNativeComponent.d.ts +42 -0
- package/types_generated/Libraries/Interaction/InteractionManager.d.ts +100 -0
- package/types_generated/Libraries/Interaction/PanResponder.d.ts +231 -0
- package/types_generated/Libraries/Interaction/TaskQueue.d.ts +73 -0
- package/types_generated/Libraries/LayoutAnimation/LayoutAnimation.d.ts +76 -0
- package/types_generated/Libraries/Linking/Linking.d.ts +68 -0
- package/types_generated/Libraries/Lists/FlatList.d.ts +317 -0
- package/types_generated/Libraries/Lists/SectionList.d.ts +172 -0
- package/types_generated/Libraries/Lists/VirtualizedList.d.ts +19 -0
- package/types_generated/Libraries/Lists/VirtualizedSectionList.d.ts +19 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +78 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +88 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxSymbolication.d.ts +17 -0
- package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +53 -0
- package/types_generated/Libraries/LogBox/LogBox.d.ts +29 -0
- package/types_generated/Libraries/Modal/Modal.d.ts +110 -0
- package/types_generated/Libraries/NativeModules/specs/NativeDialogManagerAndroid.d.ts +17 -0
- package/types_generated/Libraries/Network/FormData.d.ts +56 -0
- package/types_generated/Libraries/Network/RCTNetworking.d.ts +25 -0
- package/types_generated/Libraries/Network/RCTNetworkingEventDefinitions.flow.d.ts +22 -0
- package/types_generated/Libraries/Network/XMLHttpRequest.d.ts +96 -0
- package/types_generated/Libraries/Network/convertRequestBody.d.ts +21 -0
- package/types_generated/Libraries/Performance/Systrace.d.ts +61 -0
- package/types_generated/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +129 -0
- package/types_generated/Libraries/Pressability/Pressability.d.ts +241 -0
- package/types_generated/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +323 -0
- package/types_generated/Libraries/ReactNative/AppRegistry.d.ts +14 -0
- package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +44 -0
- package/types_generated/Libraries/ReactNative/AppRegistryImpl.d.ts +73 -0
- package/types_generated/Libraries/ReactNative/DisplayMode.d.ts +24 -0
- package/types_generated/Libraries/ReactNative/I18nManager.d.ts +23 -0
- package/types_generated/Libraries/ReactNative/NativeI18nManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/NativeUIManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.d.ts +28 -0
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.d.ts +32 -0
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.d.ts +15 -0
- package/types_generated/Libraries/ReactNative/RendererImplementation.d.ts +37 -0
- package/types_generated/Libraries/ReactNative/RendererProxy.d.ts +28 -0
- package/types_generated/Libraries/ReactNative/RootTag.d.ts +22 -0
- package/types_generated/Libraries/ReactNative/UIManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/requireNativeComponent.d.ts +25 -0
- package/types_generated/Libraries/ReactPrivate/ReactNativePrivateInterface.d.ts +33 -0
- package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +169 -0
- package/types_generated/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.d.ts +41 -0
- package/types_generated/Libraries/Settings/Settings.d.ts +21 -0
- package/types_generated/Libraries/Share/Share.d.ts +85 -0
- package/types_generated/Libraries/StyleSheet/EdgeInsetsPropType.d.ts +15 -0
- package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +17 -0
- package/types_generated/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +27 -0
- package/types_generated/Libraries/StyleSheet/PointPropType.d.ts +16 -0
- package/types_generated/Libraries/StyleSheet/Rect.d.ts +22 -0
- package/types_generated/Libraries/StyleSheet/StyleSheet.d.ts +153 -0
- package/types_generated/Libraries/StyleSheet/StyleSheetExports.d.ts +107 -0
- package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +826 -0
- package/types_generated/Libraries/StyleSheet/flattenStyle.d.ts +19 -0
- package/types_generated/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.d.ts +17 -0
- package/types_generated/Libraries/StyleSheet/private/_TransformStyle.d.ts +76 -0
- package/types_generated/Libraries/StyleSheet/processColor.d.ts +18 -0
- package/types_generated/Libraries/Text/Text.d.ts +30 -0
- package/types_generated/Libraries/Text/TextAncestorContext.d.ts +20 -0
- package/types_generated/Libraries/Text/TextNativeComponent.d.ts +31 -0
- package/types_generated/Libraries/Text/TextProps.d.ts +220 -0
- package/types_generated/Libraries/TurboModule/RCTExport.d.ts +35 -0
- package/types_generated/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
- package/types_generated/Libraries/Types/CodegenTypes.d.ts +24 -0
- package/types_generated/Libraries/Types/CodegenTypesNamespace.d.ts +14 -0
- package/types_generated/Libraries/Types/CoreEventTypes.d.ts +327 -0
- package/types_generated/Libraries/Types/RootTagTypes.d.ts +13 -0
- package/types_generated/Libraries/Types/UIManagerJSInterface.d.ts +17 -0
- package/types_generated/Libraries/UTFSequence.d.ts +39 -0
- package/types_generated/Libraries/Utilities/Appearance.d.ts +31 -0
- package/types_generated/Libraries/Utilities/BackHandler.d.ts +23 -0
- package/types_generated/Libraries/Utilities/DevSettings.d.ts +34 -0
- package/types_generated/Libraries/Utilities/DeviceInfo.d.ts +17 -0
- package/types_generated/Libraries/Utilities/Dimensions.d.ts +54 -0
- package/types_generated/Libraries/Utilities/IPerformanceLogger.d.ts +51 -0
- package/types_generated/Libraries/Utilities/NativeAppearance.d.ts +17 -0
- package/types_generated/Libraries/Utilities/NativeDeviceInfo.d.ts +14 -0
- package/types_generated/Libraries/Utilities/PixelRatio.d.ts +110 -0
- package/types_generated/Libraries/Utilities/Platform.d.ts +16 -0
- package/types_generated/Libraries/Utilities/PlatformTypes.d.ts +134 -0
- package/types_generated/Libraries/Utilities/codegenNativeCommands.d.ts +19 -0
- package/types_generated/Libraries/Utilities/codegenNativeComponent.d.ts +24 -0
- package/types_generated/Libraries/Utilities/createPerformanceLogger.d.ts +23 -0
- package/types_generated/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.d.ts +33 -0
- package/types_generated/Libraries/Utilities/differ/deepDiffer.d.ts +19 -0
- package/types_generated/Libraries/Utilities/useColorScheme.d.ts +15 -0
- package/types_generated/Libraries/Utilities/useWindowDimensions.d.ts +15 -0
- package/types_generated/Libraries/Vibration/Vibration.d.ts +29 -0
- package/types_generated/Libraries/vendor/core/ErrorUtils.d.ts +39 -0
- package/types_generated/Libraries/vendor/emitter/EventEmitter.d.ts +67 -0
- package/types_generated/index.d.ts +164 -0
- package/types_generated/src/private/components/virtualview/VirtualView.d.ts +70 -0
- package/types_generated/src/private/components/virtualview/VirtualViewNativeComponent.d.ts +97 -0
- package/types_generated/src/private/devsupport/devmenu/DevMenu.d.ts +28 -0
- package/types_generated/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.d.ts +53 -0
- package/types_generated/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.d.ts +36 -0
- package/types_generated/src/private/specs_DEPRECATED/components/SwitchNativeComponent.d.ts +51 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeAppearance.d.ts +26 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.d.ts +46 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.d.ts +37 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.d.ts +45 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeI18nManager.d.ts +27 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeUIManager.d.ts +109 -0
- package/types_generated/src/private/styles/composeStyles.d.ts +19 -0
- package/types_generated/src/private/types/HostComponent.d.ts +19 -0
- package/types_generated/src/private/types/HostInstance.d.ts +91 -0
- package/types_generated/src/private/webapis/dom/events/CustomEvent.d.ts +27 -0
- package/types_generated/src/private/webapis/dom/events/Event.d.ts +58 -0
- package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +48 -0
- package/types_generated/src/private/webapis/dom/nodes/ReactNativeDocument.d.ts +32 -0
- package/types_generated/src/private/webapis/dom/nodes/ReactNativeElement.d.ts +36 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyCharacterData.d.ts +30 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyElement.d.ts +54 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +126 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyText.d.ts +24 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/NodeInternals.d.ts +29 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.d.ts +23 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.d.ts +22 -0
- package/types_generated/src/private/webapis/dom/nodes/specs/NativeDOM.d.ts +222 -0
- package/types_generated/src/private/webapis/dom/oldstylecollections/HTMLCollection.d.ts +22 -0
- package/types_generated/src/private/webapis/dom/oldstylecollections/NodeList.d.ts +25 -0
- package/types_generated/src/private/webapis/geometry/DOMRect.d.ts +46 -0
- package/types_generated/src/private/webapis/geometry/DOMRectReadOnly.d.ts +73 -0
- package/types_generated/src/private/webapis/utils/ArrayLikeUtils.d.ts +27 -0
- package/types_generated/tsconfig.json +3 -0
- package/types_generated/tsconfig.test.json +16 -0
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/React/CxxBridge/JSCExecutorFactory.h +0 -27
- package/React/CxxBridge/JSCExecutorFactory.mm +0 -24
- package/React/Runtime/RCTJscInstanceFactory.mm +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +0 -222
- package/ReactAndroid/src/main/java/com/facebook/react/JSEngineResolutionAlgorithm.kt +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +0 -144
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +0 -420
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +0 -270
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +0 -421
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +0 -269
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java +0 -413
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModuleRegistry.java +0 -102
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +0 -247
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java +0 -75
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +0 -169
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.java +0 -257
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +0 -44
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java +0 -75
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java +0 -233
- package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java +0 -136
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/DeprecatedInNewArchitecture.kt +0 -16
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +0 -410
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +0 -474
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt +0 -41
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt +0 -44
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpCompat.java +0 -38
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/JSCInstance.kt +0 -24
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +0 -1825
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +0 -247
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +0 -203
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +0 -235
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +0 -244
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +0 -190
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +0 -372
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.java +0 -417
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +0 -383
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +0 -235
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributes.java +0 -208
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +0 -968
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +0 -1559
- package/ReactAndroid/src/main/jni/react/jscexecutor/CMakeLists.txt +0 -37
- package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +0 -74
- package/ReactAndroid/src/main/jni/react/jsctooling/CMakeLists.txt +0 -36
- package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/CMakeLists.txt +0 -26
- package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/OnLoad.cpp +0 -48
- package/ReactCommon/React-rncore.podspec +0 -52
- package/ReactCommon/cxxreact/SampleCxxModule.cpp +0 -182
- package/ReactCommon/cxxreact/SampleCxxModule.h +0 -59
- package/ReactCommon/jsc/CMakeLists.txt +0 -34
- package/ReactCommon/jsc/React-jsc.podspec +0 -37
- package/ReactCommon/react/nativemodule/fantomforcedclonecommithook/NativeFantomForcedCloneCommitHook.cpp +0 -84
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboCxxModule.h +0 -18
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboCxxModule.mm +0 -31
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/SampleTurboCxxModuleLegacyImpl.cpp +0 -177
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/SampleTurboCxxModuleLegacyImpl.h +0 -46
- package/ReactCommon/react/renderer/components/rncore/Props.cpp +0 -156
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +0 -22
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/scripts/codegen/generate-artifacts-executor/generateRNCoreComponentsIOS.js +0 -38
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
- package/types/tsconfig.test.json +0 -16
- package/types/tslint.json +0 -24
|
@@ -1,1825 +0,0 @@
|
|
|
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.runtime;
|
|
9
|
-
|
|
10
|
-
import static com.facebook.infer.annotation.Assertions.assertNotNull;
|
|
11
|
-
import static com.facebook.infer.annotation.ThreadConfined.UI;
|
|
12
|
-
import static java.lang.Boolean.FALSE;
|
|
13
|
-
import static java.lang.Boolean.TRUE;
|
|
14
|
-
|
|
15
|
-
import android.app.Activity;
|
|
16
|
-
import android.content.Context;
|
|
17
|
-
import android.content.Intent;
|
|
18
|
-
import android.net.Uri;
|
|
19
|
-
import android.nfc.NfcAdapter;
|
|
20
|
-
import android.os.Bundle;
|
|
21
|
-
import androidx.annotation.Nullable;
|
|
22
|
-
import androidx.annotation.VisibleForTesting;
|
|
23
|
-
import com.facebook.common.logging.FLog;
|
|
24
|
-
import com.facebook.infer.annotation.Assertions;
|
|
25
|
-
import com.facebook.infer.annotation.Nullsafe;
|
|
26
|
-
import com.facebook.infer.annotation.ThreadConfined;
|
|
27
|
-
import com.facebook.infer.annotation.ThreadSafe;
|
|
28
|
-
import com.facebook.proguard.annotations.DoNotStrip;
|
|
29
|
-
import com.facebook.react.MemoryPressureRouter;
|
|
30
|
-
import com.facebook.react.ReactHost;
|
|
31
|
-
import com.facebook.react.ReactInstanceEventListener;
|
|
32
|
-
import com.facebook.react.bridge.Callback;
|
|
33
|
-
import com.facebook.react.bridge.JSBundleLoader;
|
|
34
|
-
import com.facebook.react.bridge.JavaScriptContextHolder;
|
|
35
|
-
import com.facebook.react.bridge.MemoryPressureListener;
|
|
36
|
-
import com.facebook.react.bridge.NativeArray;
|
|
37
|
-
import com.facebook.react.bridge.NativeModule;
|
|
38
|
-
import com.facebook.react.bridge.ReactContext;
|
|
39
|
-
import com.facebook.react.bridge.ReactMarker;
|
|
40
|
-
import com.facebook.react.bridge.ReactMarkerConstants;
|
|
41
|
-
import com.facebook.react.bridge.ReactNoCrashBridgeNotAllowedSoftException;
|
|
42
|
-
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
43
|
-
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
44
|
-
import com.facebook.react.bridge.RuntimeExecutor;
|
|
45
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
46
|
-
import com.facebook.react.bridge.queue.ReactQueueConfiguration;
|
|
47
|
-
import com.facebook.react.common.LifecycleState;
|
|
48
|
-
import com.facebook.react.common.build.ReactBuildConfig;
|
|
49
|
-
import com.facebook.react.devsupport.DefaultDevSupportManagerFactory;
|
|
50
|
-
import com.facebook.react.devsupport.DevSupportManagerBase;
|
|
51
|
-
import com.facebook.react.devsupport.DevSupportManagerFactory;
|
|
52
|
-
import com.facebook.react.devsupport.InspectorFlags;
|
|
53
|
-
import com.facebook.react.devsupport.inspector.InspectorNetworkHelper;
|
|
54
|
-
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener;
|
|
55
|
-
import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
|
|
56
|
-
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
57
|
-
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener;
|
|
58
|
-
import com.facebook.react.fabric.ComponentFactory;
|
|
59
|
-
import com.facebook.react.fabric.FabricUIManager;
|
|
60
|
-
import com.facebook.react.interfaces.TaskInterface;
|
|
61
|
-
import com.facebook.react.interfaces.fabric.ReactSurface;
|
|
62
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
63
|
-
import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags;
|
|
64
|
-
import com.facebook.react.modules.appearance.AppearanceModule;
|
|
65
|
-
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
|
|
66
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
67
|
-
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
|
|
68
|
-
import com.facebook.react.runtime.internal.bolts.Continuation;
|
|
69
|
-
import com.facebook.react.runtime.internal.bolts.Task;
|
|
70
|
-
import com.facebook.react.runtime.internal.bolts.TaskCompletionSource;
|
|
71
|
-
import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder;
|
|
72
|
-
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
|
73
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
74
|
-
import com.facebook.react.uimanager.events.BlackHoleEventDispatcher;
|
|
75
|
-
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
76
|
-
import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
|
|
77
|
-
import java.lang.ref.WeakReference;
|
|
78
|
-
import java.util.ArrayList;
|
|
79
|
-
import java.util.Collection;
|
|
80
|
-
import java.util.HashSet;
|
|
81
|
-
import java.util.List;
|
|
82
|
-
import java.util.Map;
|
|
83
|
-
import java.util.Set;
|
|
84
|
-
import java.util.concurrent.CopyOnWriteArrayList;
|
|
85
|
-
import java.util.concurrent.Executor;
|
|
86
|
-
import java.util.concurrent.Executors;
|
|
87
|
-
import java.util.concurrent.atomic.AtomicInteger;
|
|
88
|
-
import java.util.concurrent.atomic.AtomicReference;
|
|
89
|
-
import kotlin.Unit;
|
|
90
|
-
import kotlin.jvm.functions.Function0;
|
|
91
|
-
import kotlin.jvm.functions.Function1;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* A ReactHost is an object that manages a single {@link ReactInstance}. A ReactHost can be
|
|
95
|
-
* constructed without initializing the ReactInstance, and it will continue to exist after the
|
|
96
|
-
* instance is destroyed. This class ensures safe access to the ReactInstance and the JS runtime;
|
|
97
|
-
* methods that operate on the instance use Bolts Tasks to defer the operation until the instance
|
|
98
|
-
* has been initialized. They also return a Task so the caller can be notified of completion.
|
|
99
|
-
*
|
|
100
|
-
* @see <a href="https://github.com/BoltsFramework/Bolts-Android#tasks">Bolts Android</a>
|
|
101
|
-
*/
|
|
102
|
-
@DoNotStrip
|
|
103
|
-
@ThreadSafe
|
|
104
|
-
@Nullsafe(Nullsafe.Mode.LOCAL)
|
|
105
|
-
public class ReactHostImpl implements ReactHost {
|
|
106
|
-
private static final String TAG = "ReactHost";
|
|
107
|
-
private static final int BRIDGELESS_MARKER_INSTANCE_KEY = 1;
|
|
108
|
-
private static final AtomicInteger mCounter = new AtomicInteger(0);
|
|
109
|
-
|
|
110
|
-
private final Context mContext;
|
|
111
|
-
private final ReactHostDelegate mReactHostDelegate;
|
|
112
|
-
private final ComponentFactory mComponentFactory;
|
|
113
|
-
private DevSupportManager mDevSupportManager;
|
|
114
|
-
private final Executor mBGExecutor;
|
|
115
|
-
private final Executor mUIExecutor;
|
|
116
|
-
private final Set<ReactSurfaceImpl> mAttachedSurfaces = new HashSet<>();
|
|
117
|
-
private final MemoryPressureRouter mMemoryPressureRouter;
|
|
118
|
-
private final boolean mAllowPackagerServerAccess;
|
|
119
|
-
private final boolean mUseDevSupport;
|
|
120
|
-
|
|
121
|
-
// todo: T192399917 This no longer needs to store the react instance
|
|
122
|
-
private final BridgelessAtomicRef<Task<ReactInstance>> mCreateReactInstanceTaskRef =
|
|
123
|
-
new BridgelessAtomicRef<>(Task.forResult(null));
|
|
124
|
-
private @Nullable ReactInstance mReactInstance;
|
|
125
|
-
|
|
126
|
-
private final BridgelessAtomicRef<BridgelessReactContext> mBridgelessReactContextRef =
|
|
127
|
-
new BridgelessAtomicRef<>();
|
|
128
|
-
|
|
129
|
-
private final AtomicReference<Activity> mActivity = new AtomicReference<>();
|
|
130
|
-
private final AtomicReference<WeakReference<Activity>> mLastUsedActivity =
|
|
131
|
-
new AtomicReference<>(new WeakReference<>(null));
|
|
132
|
-
private final BridgelessReactStateTracker mBridgelessReactStateTracker =
|
|
133
|
-
new BridgelessReactStateTracker(ReactBuildConfig.DEBUG);
|
|
134
|
-
private final ReactLifecycleStateManager mReactLifecycleStateManager =
|
|
135
|
-
new ReactLifecycleStateManager(mBridgelessReactStateTracker);
|
|
136
|
-
private final int mId = mCounter.getAndIncrement();
|
|
137
|
-
private @Nullable MemoryPressureListener mMemoryPressureListener;
|
|
138
|
-
private @Nullable DefaultHardwareBackBtnHandler mDefaultHardwareBackBtnHandler;
|
|
139
|
-
|
|
140
|
-
private final List<ReactInstanceEventListener> mReactInstanceEventListeners =
|
|
141
|
-
new CopyOnWriteArrayList<>();
|
|
142
|
-
private final List<Function0<Unit>> mBeforeDestroyListeners = new CopyOnWriteArrayList<>();
|
|
143
|
-
|
|
144
|
-
private @Nullable ReactHostInspectorTarget mReactHostInspectorTarget;
|
|
145
|
-
|
|
146
|
-
private volatile boolean mHostInvalidated = false;
|
|
147
|
-
|
|
148
|
-
public ReactHostImpl(
|
|
149
|
-
Context context,
|
|
150
|
-
ReactHostDelegate delegate,
|
|
151
|
-
ComponentFactory componentFactory,
|
|
152
|
-
boolean allowPackagerServerAccess,
|
|
153
|
-
boolean useDevSupport) {
|
|
154
|
-
this(
|
|
155
|
-
context,
|
|
156
|
-
delegate,
|
|
157
|
-
componentFactory,
|
|
158
|
-
Executors.newSingleThreadExecutor(),
|
|
159
|
-
Task.UI_THREAD_EXECUTOR,
|
|
160
|
-
allowPackagerServerAccess,
|
|
161
|
-
useDevSupport);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
public ReactHostImpl(
|
|
165
|
-
Context context,
|
|
166
|
-
ReactHostDelegate delegate,
|
|
167
|
-
ComponentFactory componentFactory,
|
|
168
|
-
Executor bgExecutor,
|
|
169
|
-
Executor uiExecutor,
|
|
170
|
-
boolean allowPackagerServerAccess,
|
|
171
|
-
boolean useDevSupport) {
|
|
172
|
-
this(
|
|
173
|
-
context,
|
|
174
|
-
delegate,
|
|
175
|
-
componentFactory,
|
|
176
|
-
bgExecutor,
|
|
177
|
-
uiExecutor,
|
|
178
|
-
allowPackagerServerAccess,
|
|
179
|
-
useDevSupport,
|
|
180
|
-
null);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
public ReactHostImpl(
|
|
184
|
-
Context context,
|
|
185
|
-
ReactHostDelegate delegate,
|
|
186
|
-
ComponentFactory componentFactory,
|
|
187
|
-
Executor bgExecutor,
|
|
188
|
-
Executor uiExecutor,
|
|
189
|
-
boolean allowPackagerServerAccess,
|
|
190
|
-
boolean useDevSupport,
|
|
191
|
-
@Nullable DevSupportManagerFactory devSupportManagerFactory) {
|
|
192
|
-
mContext = context;
|
|
193
|
-
mReactHostDelegate = delegate;
|
|
194
|
-
mComponentFactory = componentFactory;
|
|
195
|
-
mBGExecutor = bgExecutor;
|
|
196
|
-
mUIExecutor = uiExecutor;
|
|
197
|
-
mMemoryPressureRouter = new MemoryPressureRouter(context);
|
|
198
|
-
mAllowPackagerServerAccess = allowPackagerServerAccess;
|
|
199
|
-
mUseDevSupport = useDevSupport;
|
|
200
|
-
if (devSupportManagerFactory == null) {
|
|
201
|
-
devSupportManagerFactory = new DefaultDevSupportManagerFactory();
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
mDevSupportManager =
|
|
205
|
-
devSupportManagerFactory.create(
|
|
206
|
-
/* applicationContext */ context.getApplicationContext(),
|
|
207
|
-
/* reactInstanceManagerHelper */ new ReactHostImplDevHelper(ReactHostImpl.this),
|
|
208
|
-
/* packagerPathForJSBundleName */ mReactHostDelegate.getJsMainModulePath(),
|
|
209
|
-
/* enableOnCreate */ true,
|
|
210
|
-
/* redBoxHandler */ null,
|
|
211
|
-
/* devBundleDownloadListener */ null,
|
|
212
|
-
/* minNumShakes */ 2,
|
|
213
|
-
/* customPackagerCommandHandlers */ null,
|
|
214
|
-
/* surfaceDelegateFactory */ null,
|
|
215
|
-
/* devLoadingViewManager */ null,
|
|
216
|
-
/* pausedInDebuggerOverlayManager */ null,
|
|
217
|
-
mUseDevSupport);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
@Override
|
|
221
|
-
public LifecycleState getLifecycleState() {
|
|
222
|
-
return mReactLifecycleStateManager.getLifecycleState();
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* This function can be used to initialize the ReactInstance in a background thread before a
|
|
227
|
-
* surface needs to be rendered. It is not necessary to call this function; startSurface() will
|
|
228
|
-
* initialize the ReactInstance if it hasn't been preloaded.
|
|
229
|
-
*
|
|
230
|
-
* @return A Task that completes when the instance is initialized. The task will be faulted if any
|
|
231
|
-
* errors occur during initialization, and will be cancelled if ReactHost.destroy() is called
|
|
232
|
-
* before it completes.
|
|
233
|
-
*/
|
|
234
|
-
@Override
|
|
235
|
-
public TaskInterface<Void> start() {
|
|
236
|
-
return Task.call(this::getOrCreateStartTask, mBGExecutor);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/** Initialize and run a React Native surface in a background without mounting real views. */
|
|
240
|
-
/* package */
|
|
241
|
-
TaskInterface<Void> prerenderSurface(final ReactSurfaceImpl surface) {
|
|
242
|
-
final String method = "prerenderSurface(surfaceId = " + surface.getSurfaceID() + ")";
|
|
243
|
-
log(method, "Schedule");
|
|
244
|
-
|
|
245
|
-
attachSurface(surface);
|
|
246
|
-
return callAfterGetOrCreateReactInstance(
|
|
247
|
-
method,
|
|
248
|
-
reactInstance -> {
|
|
249
|
-
log(method, "Execute");
|
|
250
|
-
reactInstance.prerenderSurface(surface);
|
|
251
|
-
},
|
|
252
|
-
mBGExecutor);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Start rendering a React Native surface on screen.
|
|
257
|
-
*
|
|
258
|
-
* @param surface The ReactSurface to render
|
|
259
|
-
* @return A Task that will complete when startSurface has been called.
|
|
260
|
-
*/
|
|
261
|
-
/** package */
|
|
262
|
-
TaskInterface<Void> startSurface(final ReactSurfaceImpl surface) {
|
|
263
|
-
final String method = "startSurface(surfaceId = " + surface.getSurfaceID() + ")";
|
|
264
|
-
log(method, "Schedule");
|
|
265
|
-
|
|
266
|
-
attachSurface(surface);
|
|
267
|
-
return callAfterGetOrCreateReactInstance(
|
|
268
|
-
method,
|
|
269
|
-
reactInstance -> {
|
|
270
|
-
log(method, "Execute");
|
|
271
|
-
reactInstance.startSurface(surface);
|
|
272
|
-
},
|
|
273
|
-
mBGExecutor);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Stop rendering a React Native surface.
|
|
278
|
-
*
|
|
279
|
-
* @param surface The surface to stop
|
|
280
|
-
* @return A Task that will complete when stopSurface has been called.
|
|
281
|
-
*/
|
|
282
|
-
/** package */
|
|
283
|
-
TaskInterface<Void> stopSurface(final ReactSurfaceImpl surface) {
|
|
284
|
-
final String method = "stopSurface(surfaceId = " + surface.getSurfaceID() + ")";
|
|
285
|
-
log(method, "Schedule");
|
|
286
|
-
|
|
287
|
-
detachSurface(surface);
|
|
288
|
-
return callWithExistingReactInstance(
|
|
289
|
-
method,
|
|
290
|
-
reactInstance -> {
|
|
291
|
-
log(method, "Execute");
|
|
292
|
-
reactInstance.stopSurface(surface);
|
|
293
|
-
},
|
|
294
|
-
mBGExecutor)
|
|
295
|
-
.makeVoid();
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* To be called when the host activity is resumed.
|
|
300
|
-
*
|
|
301
|
-
* @param activity The host activity
|
|
302
|
-
*/
|
|
303
|
-
@ThreadConfined(UI)
|
|
304
|
-
@Override
|
|
305
|
-
public void onHostResume(
|
|
306
|
-
final @Nullable Activity activity,
|
|
307
|
-
@Nullable DefaultHardwareBackBtnHandler defaultBackButtonImpl) {
|
|
308
|
-
mDefaultHardwareBackBtnHandler = defaultBackButtonImpl;
|
|
309
|
-
onHostResume(activity);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
@ThreadConfined(UI)
|
|
313
|
-
@Override
|
|
314
|
-
public void onHostResume(final @Nullable Activity activity) {
|
|
315
|
-
final String method = "onHostResume(activity)";
|
|
316
|
-
log(method);
|
|
317
|
-
|
|
318
|
-
setCurrentActivity(activity);
|
|
319
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
320
|
-
|
|
321
|
-
maybeEnableDevSupport(true);
|
|
322
|
-
mReactLifecycleStateManager.moveToOnHostResume(currentContext, getCurrentActivity());
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
@ThreadConfined(UI)
|
|
326
|
-
@Override
|
|
327
|
-
public void onHostLeaveHint(final @Nullable Activity activity) {
|
|
328
|
-
final String method = "onUserLeaveHint(activity)";
|
|
329
|
-
log(method);
|
|
330
|
-
|
|
331
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
332
|
-
if (currentContext != null) {
|
|
333
|
-
currentContext.onUserLeaveHint(activity);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
@ThreadConfined(UI)
|
|
338
|
-
@Override
|
|
339
|
-
public void onHostPause(final @Nullable Activity activity) {
|
|
340
|
-
final String method = "onHostPause(activity)";
|
|
341
|
-
log(method);
|
|
342
|
-
|
|
343
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
344
|
-
|
|
345
|
-
Activity currentActivity = getCurrentActivity();
|
|
346
|
-
if (currentActivity != null) {
|
|
347
|
-
String currentActivityClass = currentActivity.getClass().getSimpleName();
|
|
348
|
-
String activityClass = activity == null ? "null" : activity.getClass().getSimpleName();
|
|
349
|
-
Assertions.assertCondition(
|
|
350
|
-
activity == currentActivity,
|
|
351
|
-
"Pausing an activity that is not the current activity, this is incorrect! "
|
|
352
|
-
+ "Current activity: "
|
|
353
|
-
+ currentActivityClass
|
|
354
|
-
+ " "
|
|
355
|
-
+ "Paused activity: "
|
|
356
|
-
+ activityClass);
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
maybeEnableDevSupport(false);
|
|
360
|
-
mDefaultHardwareBackBtnHandler = null;
|
|
361
|
-
mReactLifecycleStateManager.moveToOnHostPause(currentContext, currentActivity);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
/** To be called when the host activity is paused. */
|
|
365
|
-
@ThreadConfined(UI)
|
|
366
|
-
@Override
|
|
367
|
-
public void onHostPause() {
|
|
368
|
-
final String method = "onHostPause()";
|
|
369
|
-
log(method);
|
|
370
|
-
|
|
371
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
372
|
-
|
|
373
|
-
maybeEnableDevSupport(false);
|
|
374
|
-
mDefaultHardwareBackBtnHandler = null;
|
|
375
|
-
mReactLifecycleStateManager.moveToOnHostPause(currentContext, getCurrentActivity());
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/** To be called when the host activity is destroyed. */
|
|
379
|
-
@ThreadConfined(UI)
|
|
380
|
-
@Override
|
|
381
|
-
public void onHostDestroy() {
|
|
382
|
-
final String method = "onHostDestroy()";
|
|
383
|
-
log(method);
|
|
384
|
-
|
|
385
|
-
maybeEnableDevSupport(false);
|
|
386
|
-
moveToHostDestroy(getCurrentReactContext());
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
@ThreadConfined(UI)
|
|
390
|
-
@Override
|
|
391
|
-
public void onHostDestroy(@Nullable Activity activity) {
|
|
392
|
-
final String method = "onHostDestroy(activity)";
|
|
393
|
-
log(method);
|
|
394
|
-
|
|
395
|
-
Activity currentActivity = getCurrentActivity();
|
|
396
|
-
|
|
397
|
-
if (currentActivity == activity) {
|
|
398
|
-
maybeEnableDevSupport(false);
|
|
399
|
-
moveToHostDestroy(getCurrentReactContext());
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
private void maybeEnableDevSupport(boolean enabled) {
|
|
404
|
-
if (mUseDevSupport) {
|
|
405
|
-
mDevSupportManager.setDevSupportEnabled(enabled);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* Returns current ReactContext which could be nullable if ReactInstance hasn't been created.
|
|
411
|
-
*
|
|
412
|
-
* @return The {@link BridgelessReactContext} associated with ReactInstance.
|
|
413
|
-
*/
|
|
414
|
-
@Override
|
|
415
|
-
public @Nullable ReactContext getCurrentReactContext() {
|
|
416
|
-
return mBridgelessReactContextRef.getNullable();
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
@Override
|
|
420
|
-
public DevSupportManager getDevSupportManager() {
|
|
421
|
-
return assertNotNull(mDevSupportManager);
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
@Override
|
|
425
|
-
public ReactSurface createSurface(
|
|
426
|
-
Context context, String moduleName, @Nullable Bundle initialProps) {
|
|
427
|
-
ReactSurfaceImpl surface = new ReactSurfaceImpl(context, moduleName, initialProps);
|
|
428
|
-
ReactSurfaceView surfaceView = new ReactSurfaceView(context, surface);
|
|
429
|
-
surfaceView.setShouldLogContentAppeared(true);
|
|
430
|
-
surface.attachView(surfaceView);
|
|
431
|
-
surface.attach(this);
|
|
432
|
-
return surface;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
@Override
|
|
436
|
-
public MemoryPressureRouter getMemoryPressureRouter() {
|
|
437
|
-
return mMemoryPressureRouter;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
/* package */ boolean isInstanceInitialized() {
|
|
441
|
-
return mReactInstance != null;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
@ThreadConfined(UI)
|
|
445
|
-
@Override
|
|
446
|
-
public boolean onBackPressed() {
|
|
447
|
-
UiThreadUtil.assertOnUiThread();
|
|
448
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
449
|
-
if (reactInstance == null) {
|
|
450
|
-
return false;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
DeviceEventManagerModule deviceEventManagerModule =
|
|
454
|
-
reactInstance.getNativeModule(DeviceEventManagerModule.class);
|
|
455
|
-
if (deviceEventManagerModule == null) {
|
|
456
|
-
return false;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
deviceEventManagerModule.emitHardwareBackPressed();
|
|
460
|
-
return true;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
public @Nullable ReactQueueConfiguration getReactQueueConfiguration() {
|
|
464
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
465
|
-
if (reactInstance != null) {
|
|
466
|
-
return reactInstance.getReactQueueConfiguration();
|
|
467
|
-
}
|
|
468
|
-
return null;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
/** Add a listener to be notified of ReactInstance events. */
|
|
472
|
-
public void addReactInstanceEventListener(ReactInstanceEventListener listener) {
|
|
473
|
-
mReactInstanceEventListeners.add(listener);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
/** Remove a listener previously added with {@link #addReactInstanceEventListener}. */
|
|
477
|
-
public void removeReactInstanceEventListener(ReactInstanceEventListener listener) {
|
|
478
|
-
mReactInstanceEventListeners.remove(listener);
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/**
|
|
482
|
-
* Entrypoint to reload the ReactInstance. If the ReactInstance is destroying, will wait until
|
|
483
|
-
* destroy is finished, before reloading.
|
|
484
|
-
*
|
|
485
|
-
* @param reason {@link String} describing why ReactHost is being reloaded (e.g. js error, user
|
|
486
|
-
* tap on reload button)
|
|
487
|
-
* @return A task that completes when React Native reloads
|
|
488
|
-
*/
|
|
489
|
-
@Override
|
|
490
|
-
public TaskInterface<Void> reload(String reason) {
|
|
491
|
-
final String method = "reload()";
|
|
492
|
-
return Task.call(
|
|
493
|
-
() -> {
|
|
494
|
-
Task<Void> reloadTask = null;
|
|
495
|
-
if (mDestroyTask != null) {
|
|
496
|
-
log(method, "Waiting for destroy to finish, before reloading React Native.");
|
|
497
|
-
reloadTask =
|
|
498
|
-
mDestroyTask
|
|
499
|
-
.continueWithTask(task -> getOrCreateReloadTask(reason), mBGExecutor)
|
|
500
|
-
.makeVoid();
|
|
501
|
-
} else {
|
|
502
|
-
reloadTask = getOrCreateReloadTask(reason).makeVoid();
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
return reloadTask.continueWithTask(
|
|
506
|
-
task -> {
|
|
507
|
-
if (task.isFaulted()) {
|
|
508
|
-
final Exception ex = task.getError();
|
|
509
|
-
Assertions.assertNotNull(ex, "Reload failed without an exception");
|
|
510
|
-
if (mUseDevSupport) {
|
|
511
|
-
mDevSupportManager.handleException(ex);
|
|
512
|
-
} else {
|
|
513
|
-
mReactHostDelegate.handleInstanceException(ex);
|
|
514
|
-
}
|
|
515
|
-
return getOrCreateDestroyTask("Reload failed", ex);
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
return task;
|
|
519
|
-
},
|
|
520
|
-
mBGExecutor);
|
|
521
|
-
},
|
|
522
|
-
mBGExecutor);
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
@DoNotStrip
|
|
526
|
-
private void setPausedInDebuggerMessage(@Nullable String message) {
|
|
527
|
-
if (message == null) {
|
|
528
|
-
mDevSupportManager.hidePausedInDebuggerOverlay();
|
|
529
|
-
} else {
|
|
530
|
-
mDevSupportManager.showPausedInDebuggerOverlay(
|
|
531
|
-
message,
|
|
532
|
-
new PausedInDebuggerOverlayCommandListener() {
|
|
533
|
-
@Override
|
|
534
|
-
public void onResume() {
|
|
535
|
-
UiThreadUtil.assertOnUiThread();
|
|
536
|
-
if (mReactHostInspectorTarget != null) {
|
|
537
|
-
mReactHostInspectorTarget.sendDebuggerResumeCommand();
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
});
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
@DoNotStrip
|
|
545
|
-
private Map<String, String> getHostMetadata() {
|
|
546
|
-
return AndroidInfoHelpers.getInspectorHostMetadata(mContext);
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
@DoNotStrip
|
|
550
|
-
private void loadNetworkResource(String url, InspectorNetworkRequestListener listener) {
|
|
551
|
-
InspectorNetworkHelper.loadNetworkResource(url, listener);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
/**
|
|
555
|
-
* Entrypoint to destroy the ReactInstance. If the ReactInstance is reloading, will wait until
|
|
556
|
-
* reload is finished, before destroying.
|
|
557
|
-
*
|
|
558
|
-
* <p>The destroy operation is asynchronous and the task returned by this method will complete
|
|
559
|
-
* when React Native gets destroyed. Note that the destroy operation will execute in multiple
|
|
560
|
-
* threads, in particular some of the sub-tasks will run in the UIThread. Calling {@link
|
|
561
|
-
* TaskInterface#waitForCompletion()} from the UIThread will lead into a deadlock. Use
|
|
562
|
-
* onDestroyFinished callback to be notified when React Native gets destroyed.
|
|
563
|
-
*
|
|
564
|
-
* @param reason describing why ReactHost is being destroyed (e.g. memory pressure)
|
|
565
|
-
* @param ex exception that caused the trigger to destroy ReactHost (or null) This exception will
|
|
566
|
-
* be used to log properly the cause of destroy operation.
|
|
567
|
-
* @param onDestroyFinished callback that will be called when React Native gets destroyed, the
|
|
568
|
-
* callback will run on a background thread.
|
|
569
|
-
* @return A task that completes when React Native gets destroyed.
|
|
570
|
-
*/
|
|
571
|
-
@Override
|
|
572
|
-
public TaskInterface<Void> destroy(
|
|
573
|
-
String reason, @Nullable Exception ex, Function1<? super Boolean, Unit> onDestroyFinished) {
|
|
574
|
-
Task<Void> task = (Task<Void>) destroy(reason, ex);
|
|
575
|
-
return task.continueWith(
|
|
576
|
-
new Continuation<Void, Void>() {
|
|
577
|
-
@Nullable
|
|
578
|
-
@Override
|
|
579
|
-
public Void then(Task<Void> task) throws Exception {
|
|
580
|
-
boolean instanceDestroyedSuccessfully = task.isCompleted() && !task.isFaulted();
|
|
581
|
-
onDestroyFinished.invoke(instanceDestroyedSuccessfully);
|
|
582
|
-
return null;
|
|
583
|
-
}
|
|
584
|
-
});
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
/**
|
|
588
|
-
* Entrypoint to destroy the ReactInstance. If the ReactInstance is reloading, will wait until
|
|
589
|
-
* reload is finished, before destroying.
|
|
590
|
-
*
|
|
591
|
-
* <p>The destroy operation is asynchronous and the task returned by this method will complete
|
|
592
|
-
* when React Native gets destroyed. Note that the destroy operation will execute in multiple
|
|
593
|
-
* threads, in particular some of the sub-tasks will run in the UIThread. Calling {@link
|
|
594
|
-
* TaskInterface#waitForCompletion()} from the UIThread will lead into a deadlock.
|
|
595
|
-
*
|
|
596
|
-
* @param reason {@link String} describing why ReactHost is being destroyed (e.g. memory pressure)
|
|
597
|
-
* @param ex {@link Exception} exception that caused the trigger to destroy ReactHost (or null)
|
|
598
|
-
* This exception will be used to log properly the cause of destroy operation.
|
|
599
|
-
* @return A task that completes when React Native gets destroyed.
|
|
600
|
-
*/
|
|
601
|
-
@Override
|
|
602
|
-
public TaskInterface<Void> destroy(String reason, @Nullable Exception ex) {
|
|
603
|
-
final String method = "destroy()";
|
|
604
|
-
return Task.call(
|
|
605
|
-
() -> {
|
|
606
|
-
if (mReloadTask != null) {
|
|
607
|
-
log(
|
|
608
|
-
method,
|
|
609
|
-
"Reloading React Native. Waiting for reload to finish before destroying React"
|
|
610
|
-
+ " Native.");
|
|
611
|
-
return mReloadTask.continueWithTask(
|
|
612
|
-
task -> getOrCreateDestroyTask(reason, ex), mBGExecutor);
|
|
613
|
-
}
|
|
614
|
-
return getOrCreateDestroyTask(reason, ex);
|
|
615
|
-
},
|
|
616
|
-
mBGExecutor);
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
private MemoryPressureListener createMemoryPressureListener(ReactInstance reactInstance) {
|
|
620
|
-
WeakReference<ReactInstance> weakReactInstance = new WeakReference<>(reactInstance);
|
|
621
|
-
return (level) -> {
|
|
622
|
-
mBGExecutor.execute(
|
|
623
|
-
() -> {
|
|
624
|
-
@Nullable ReactInstance strongReactInstance = weakReactInstance.get();
|
|
625
|
-
if (strongReactInstance != null) {
|
|
626
|
-
strongReactInstance.handleMemoryPressure(level);
|
|
627
|
-
}
|
|
628
|
-
});
|
|
629
|
-
};
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
@Nullable
|
|
633
|
-
/* package */ Activity getCurrentActivity() {
|
|
634
|
-
return mActivity.get();
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
@Nullable
|
|
638
|
-
/* package */ Activity getLastUsedActivity() {
|
|
639
|
-
@Nullable WeakReference<Activity> lastUsedActivityWeakRef = mLastUsedActivity.get();
|
|
640
|
-
if (lastUsedActivityWeakRef != null) {
|
|
641
|
-
return lastUsedActivityWeakRef.get();
|
|
642
|
-
}
|
|
643
|
-
return null;
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
private void setCurrentActivity(@Nullable Activity activity) {
|
|
647
|
-
mActivity.set(activity);
|
|
648
|
-
if (activity != null) {
|
|
649
|
-
mLastUsedActivity.set(new WeakReference<>(activity));
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
/**
|
|
654
|
-
* Get the {@link EventDispatcher} from the {@link FabricUIManager}. This always returns an
|
|
655
|
-
* EventDispatcher, even if the instance isn't alive; in that case, it returns a {@link
|
|
656
|
-
* BlackHoleEventDispatcher} which no-ops.
|
|
657
|
-
*
|
|
658
|
-
* @return The real {@link EventDispatcher} if the instance is alive; otherwise, a {@link
|
|
659
|
-
* BlackHoleEventDispatcher}.
|
|
660
|
-
*/
|
|
661
|
-
/* package */ EventDispatcher getEventDispatcher() {
|
|
662
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
663
|
-
if (reactInstance == null) {
|
|
664
|
-
return BlackHoleEventDispatcher.INSTANCE;
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
return reactInstance.getEventDispatcher();
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
/* package */
|
|
671
|
-
@Nullable
|
|
672
|
-
FabricUIManager getUIManager() {
|
|
673
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
674
|
-
if (reactInstance == null) {
|
|
675
|
-
return null;
|
|
676
|
-
}
|
|
677
|
-
return reactInstance.getFabricUIManager();
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
/* package */ <T extends NativeModule> boolean hasNativeModule(Class<T> nativeModuleInterface) {
|
|
681
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
682
|
-
if (reactInstance != null) {
|
|
683
|
-
return reactInstance.hasNativeModule(nativeModuleInterface);
|
|
684
|
-
}
|
|
685
|
-
return false;
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
/* package */ Collection<NativeModule> getNativeModules() {
|
|
689
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
690
|
-
if (reactInstance != null) {
|
|
691
|
-
return reactInstance.getNativeModules();
|
|
692
|
-
}
|
|
693
|
-
return new ArrayList<>();
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
/* package */
|
|
697
|
-
@Nullable
|
|
698
|
-
<T extends NativeModule> T getNativeModule(Class<T> nativeModuleInterface) {
|
|
699
|
-
if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE
|
|
700
|
-
&& nativeModuleInterface == UIManagerModule.class) {
|
|
701
|
-
|
|
702
|
-
ReactSoftExceptionLogger.logSoftExceptionVerbose(
|
|
703
|
-
TAG,
|
|
704
|
-
new ReactNoCrashBridgeNotAllowedSoftException(
|
|
705
|
-
"getNativeModule(UIManagerModule.class) cannot be called when the bridge is"
|
|
706
|
-
+ " disabled"));
|
|
707
|
-
}
|
|
708
|
-
|
|
709
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
710
|
-
if (reactInstance != null) {
|
|
711
|
-
return reactInstance.getNativeModule(nativeModuleInterface);
|
|
712
|
-
}
|
|
713
|
-
return null;
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
/* package */
|
|
717
|
-
@Nullable
|
|
718
|
-
NativeModule getNativeModule(String nativeModuleName) {
|
|
719
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
720
|
-
if (reactInstance != null) {
|
|
721
|
-
return reactInstance.getNativeModule(nativeModuleName);
|
|
722
|
-
}
|
|
723
|
-
return null;
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
/* package */
|
|
727
|
-
@Nullable
|
|
728
|
-
RuntimeExecutor getRuntimeExecutor() {
|
|
729
|
-
final String method = "getRuntimeExecutor()";
|
|
730
|
-
|
|
731
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
732
|
-
if (reactInstance != null) {
|
|
733
|
-
return reactInstance.getBufferedRuntimeExecutor();
|
|
734
|
-
}
|
|
735
|
-
raiseSoftException(method, "Tried to get runtime executor while instance is not ready");
|
|
736
|
-
return null;
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
/* package */
|
|
740
|
-
@Nullable
|
|
741
|
-
CallInvokerHolder getJSCallInvokerHolder() {
|
|
742
|
-
final String method = "getJSCallInvokerHolder()";
|
|
743
|
-
|
|
744
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
745
|
-
if (reactInstance != null) {
|
|
746
|
-
return reactInstance.getJSCallInvokerHolder();
|
|
747
|
-
}
|
|
748
|
-
raiseSoftException(method, "Tried to get JSCallInvokerHolder while instance is not ready");
|
|
749
|
-
return null;
|
|
750
|
-
}
|
|
751
|
-
|
|
752
|
-
/**
|
|
753
|
-
* To be called when the host activity receives an activity result.
|
|
754
|
-
*
|
|
755
|
-
* @param activity The host activity
|
|
756
|
-
*/
|
|
757
|
-
@ThreadConfined(UI)
|
|
758
|
-
@Override
|
|
759
|
-
public void onActivityResult(
|
|
760
|
-
Activity activity, int requestCode, int resultCode, @Nullable Intent data) {
|
|
761
|
-
final String method =
|
|
762
|
-
"onActivityResult(activity = \""
|
|
763
|
-
+ activity
|
|
764
|
-
+ "\", requestCode = \""
|
|
765
|
-
+ requestCode
|
|
766
|
-
+ "\", resultCode = \""
|
|
767
|
-
+ resultCode
|
|
768
|
-
+ "\", data = \""
|
|
769
|
-
+ data
|
|
770
|
-
+ "\")";
|
|
771
|
-
|
|
772
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
773
|
-
if (currentContext != null) {
|
|
774
|
-
currentContext.onActivityResult(activity, requestCode, resultCode, data);
|
|
775
|
-
} else {
|
|
776
|
-
raiseSoftException(method, "Tried to access onActivityResult while context is not ready");
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
/* To be called when focus has changed for the hosting window. */
|
|
781
|
-
@ThreadConfined(UI)
|
|
782
|
-
@Override
|
|
783
|
-
public void onWindowFocusChange(boolean hasFocus) {
|
|
784
|
-
final String method = "onWindowFocusChange(hasFocus = \"" + hasFocus + "\")";
|
|
785
|
-
|
|
786
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
787
|
-
if (currentContext != null) {
|
|
788
|
-
currentContext.onWindowFocusChange(hasFocus);
|
|
789
|
-
} else {
|
|
790
|
-
raiseSoftException(method, "Tried to access onWindowFocusChange while context is not ready");
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
|
|
794
|
-
/* This method will give JS the opportunity to receive intents via Linking.
|
|
795
|
-
*
|
|
796
|
-
* @param intent The incoming intent
|
|
797
|
-
*/
|
|
798
|
-
@ThreadConfined(UI)
|
|
799
|
-
@Override
|
|
800
|
-
public void onNewIntent(Intent intent) {
|
|
801
|
-
final String method = "onNewIntent(intent = \"" + intent + "\")";
|
|
802
|
-
|
|
803
|
-
ReactContext currentContext = getCurrentReactContext();
|
|
804
|
-
if (currentContext != null) {
|
|
805
|
-
String action = intent.getAction();
|
|
806
|
-
Uri uri = intent.getData();
|
|
807
|
-
|
|
808
|
-
if (uri != null
|
|
809
|
-
&& (Intent.ACTION_VIEW.equals(action)
|
|
810
|
-
|| NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action))) {
|
|
811
|
-
DeviceEventManagerModule deviceEventManagerModule =
|
|
812
|
-
currentContext.getNativeModule(DeviceEventManagerModule.class);
|
|
813
|
-
if (deviceEventManagerModule != null) {
|
|
814
|
-
deviceEventManagerModule.emitNewIntentReceived(uri);
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
currentContext.onNewIntent(getCurrentActivity(), intent);
|
|
818
|
-
} else {
|
|
819
|
-
raiseSoftException(method, "Tried to access onNewIntent while context is not ready");
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
@ThreadConfined(UI)
|
|
824
|
-
@Override
|
|
825
|
-
public void onConfigurationChanged(Context updatedContext) {
|
|
826
|
-
ReactContext currentReactContext = getCurrentReactContext();
|
|
827
|
-
if (currentReactContext != null) {
|
|
828
|
-
if (ReactNativeFeatureFlags.enableFontScaleChangesUpdatingLayout()) {
|
|
829
|
-
DisplayMetricsHolder.initDisplayMetrics(currentReactContext);
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
AppearanceModule appearanceModule =
|
|
833
|
-
currentReactContext.getNativeModule(AppearanceModule.class);
|
|
834
|
-
|
|
835
|
-
if (appearanceModule != null) {
|
|
836
|
-
appearanceModule.onConfigurationChanged(updatedContext);
|
|
837
|
-
}
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
@Nullable
|
|
842
|
-
JavaScriptContextHolder getJavaScriptContextHolder() {
|
|
843
|
-
final ReactInstance reactInstance = mReactInstance;
|
|
844
|
-
if (reactInstance != null) {
|
|
845
|
-
return reactInstance.getJavaScriptContextHolder();
|
|
846
|
-
}
|
|
847
|
-
return null;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
/* package */
|
|
851
|
-
DefaultHardwareBackBtnHandler getDefaultBackButtonHandler() {
|
|
852
|
-
return () -> {
|
|
853
|
-
UiThreadUtil.assertOnUiThread();
|
|
854
|
-
if (mDefaultHardwareBackBtnHandler != null) {
|
|
855
|
-
mDefaultHardwareBackBtnHandler.invokeDefaultOnBackPressed();
|
|
856
|
-
}
|
|
857
|
-
};
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
/* package */ Task<Boolean> loadBundle(final JSBundleLoader bundleLoader) {
|
|
861
|
-
final String method = "loadBundle()";
|
|
862
|
-
log(method, "Schedule");
|
|
863
|
-
|
|
864
|
-
return callWithExistingReactInstance(
|
|
865
|
-
method,
|
|
866
|
-
reactInstance -> {
|
|
867
|
-
log(method, "Execute");
|
|
868
|
-
reactInstance.loadJSBundle(bundleLoader);
|
|
869
|
-
},
|
|
870
|
-
null);
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
/* package */ Task<Boolean> registerSegment(
|
|
874
|
-
final int segmentId, final String path, final Callback callback) {
|
|
875
|
-
final String method =
|
|
876
|
-
"registerSegment(segmentId = \"" + segmentId + "\", path = \"" + path + "\")";
|
|
877
|
-
log(method, "Schedule");
|
|
878
|
-
|
|
879
|
-
return callWithExistingReactInstance(
|
|
880
|
-
method,
|
|
881
|
-
reactInstance -> {
|
|
882
|
-
log(method, "Execute");
|
|
883
|
-
reactInstance.registerSegment(segmentId, path);
|
|
884
|
-
assertNotNull(callback).invoke();
|
|
885
|
-
},
|
|
886
|
-
null);
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
/* package */ void handleHostException(Exception e) {
|
|
890
|
-
final String method = "handleHostException(message = \"" + e.getMessage() + "\")";
|
|
891
|
-
log(method);
|
|
892
|
-
|
|
893
|
-
if (mUseDevSupport) {
|
|
894
|
-
mDevSupportManager.handleException(e);
|
|
895
|
-
} else {
|
|
896
|
-
mReactHostDelegate.handleInstanceException(e);
|
|
897
|
-
}
|
|
898
|
-
destroy(method, e);
|
|
899
|
-
}
|
|
900
|
-
|
|
901
|
-
/**
|
|
902
|
-
* Call a function on a JS module that has been registered as callable.
|
|
903
|
-
*
|
|
904
|
-
* @param moduleName The name of the JS module
|
|
905
|
-
* @param methodName The function to call
|
|
906
|
-
* @param args Arguments to be passed to the function
|
|
907
|
-
* @return A Task that will complete when the function call has been enqueued on the JS thread.
|
|
908
|
-
*/
|
|
909
|
-
/* package */ Task<Boolean> callFunctionOnModule(
|
|
910
|
-
final String moduleName, final String methodName, final NativeArray args) {
|
|
911
|
-
final String method = "callFunctionOnModule(\"" + moduleName + "\", \"" + methodName + "\")";
|
|
912
|
-
return callWithExistingReactInstance(
|
|
913
|
-
method,
|
|
914
|
-
reactInstance -> {
|
|
915
|
-
reactInstance.callFunctionOnModule(moduleName, methodName, args);
|
|
916
|
-
},
|
|
917
|
-
null);
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
/* package */ void attachSurface(ReactSurfaceImpl surface) {
|
|
921
|
-
final String method = "attachSurface(surfaceId = " + surface.getSurfaceID() + ")";
|
|
922
|
-
log(method);
|
|
923
|
-
|
|
924
|
-
synchronized (mAttachedSurfaces) {
|
|
925
|
-
mAttachedSurfaces.add(surface);
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
/* package */ void detachSurface(ReactSurfaceImpl surface) {
|
|
930
|
-
final String method = "detachSurface(surfaceId = " + surface.getSurfaceID() + ")";
|
|
931
|
-
log(method);
|
|
932
|
-
|
|
933
|
-
synchronized (mAttachedSurfaces) {
|
|
934
|
-
mAttachedSurfaces.remove(surface);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
/* package */ boolean isSurfaceAttached(ReactSurfaceImpl surface) {
|
|
939
|
-
synchronized (mAttachedSurfaces) {
|
|
940
|
-
return mAttachedSurfaces.contains(surface);
|
|
941
|
-
}
|
|
942
|
-
}
|
|
943
|
-
|
|
944
|
-
/* package */ boolean isSurfaceWithModuleNameAttached(String moduleName) {
|
|
945
|
-
synchronized (mAttachedSurfaces) {
|
|
946
|
-
for (ReactSurfaceImpl surface : mAttachedSurfaces) {
|
|
947
|
-
if (surface.getModuleName().equals(moduleName)) {
|
|
948
|
-
return true;
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
|
-
return false;
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
@Override
|
|
956
|
-
public void addBeforeDestroyListener(Function0<Unit> onBeforeDestroy) {
|
|
957
|
-
mBeforeDestroyListeners.add(onBeforeDestroy);
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
@Override
|
|
961
|
-
public void removeBeforeDestroyListener(Function0<Unit> onBeforeDestroy) {
|
|
962
|
-
mBeforeDestroyListeners.remove(onBeforeDestroy);
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
private interface ReactInstanceCalback {
|
|
966
|
-
void then(ReactInstance reactInstance);
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
@ThreadConfined("ReactHost")
|
|
970
|
-
private @Nullable Task<Void> mStartTask = null;
|
|
971
|
-
|
|
972
|
-
@ThreadConfined("ReactHost")
|
|
973
|
-
private Task<Void> getOrCreateStartTask() {
|
|
974
|
-
final String method = "getOrCreateStartTask()";
|
|
975
|
-
if (mStartTask == null) {
|
|
976
|
-
log(method, "Schedule");
|
|
977
|
-
if (ReactBuildConfig.DEBUG) {
|
|
978
|
-
Assertions.assertCondition(
|
|
979
|
-
ReactNativeNewArchitectureFeatureFlags.enableBridgelessArchitecture(),
|
|
980
|
-
"enableBridgelessArchitecture FeatureFlag must be set to start ReactNative.");
|
|
981
|
-
|
|
982
|
-
Assertions.assertCondition(
|
|
983
|
-
ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer(),
|
|
984
|
-
"enableFabricRenderer FeatureFlag must be set to start ReactNative.");
|
|
985
|
-
|
|
986
|
-
Assertions.assertCondition(
|
|
987
|
-
ReactNativeNewArchitectureFeatureFlags.useTurboModules(),
|
|
988
|
-
"useTurboModules FeatureFlag must be set to start ReactNative.");
|
|
989
|
-
}
|
|
990
|
-
if (ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
|
|
991
|
-
Assertions.assertCondition(
|
|
992
|
-
!ReactNativeNewArchitectureFeatureFlags.useFabricInterop(),
|
|
993
|
-
"useFabricInterop FeatureFlag must be false when"
|
|
994
|
-
+ " UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true.");
|
|
995
|
-
Assertions.assertCondition(
|
|
996
|
-
!ReactNativeNewArchitectureFeatureFlags.useTurboModuleInterop(),
|
|
997
|
-
"useTurboModuleInterop FeatureFlag must be false when"
|
|
998
|
-
+ " UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true.");
|
|
999
|
-
}
|
|
1000
|
-
mStartTask =
|
|
1001
|
-
waitThenCallGetOrCreateReactInstanceTask()
|
|
1002
|
-
.continueWithTask(
|
|
1003
|
-
(task) -> {
|
|
1004
|
-
if (task.isFaulted()) {
|
|
1005
|
-
Exception ex = Assertions.assertNotNull(task.getError());
|
|
1006
|
-
if (mUseDevSupport) {
|
|
1007
|
-
mDevSupportManager.handleException(ex);
|
|
1008
|
-
} else {
|
|
1009
|
-
mReactHostDelegate.handleInstanceException(ex);
|
|
1010
|
-
}
|
|
1011
|
-
// Wait for destroy to finish
|
|
1012
|
-
return getOrCreateDestroyTask(
|
|
1013
|
-
"getOrCreateStartTask() failure: " + ex.getMessage(), ex)
|
|
1014
|
-
.continueWithTask(destroyTask -> Task.forError(ex))
|
|
1015
|
-
.makeVoid();
|
|
1016
|
-
}
|
|
1017
|
-
return task.makeVoid();
|
|
1018
|
-
},
|
|
1019
|
-
mBGExecutor);
|
|
1020
|
-
}
|
|
1021
|
-
return mStartTask;
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
@ThreadConfined(UI)
|
|
1025
|
-
private void moveToHostDestroy(@Nullable ReactContext currentContext) {
|
|
1026
|
-
mReactLifecycleStateManager.moveToOnHostDestroy(currentContext);
|
|
1027
|
-
setCurrentActivity(null);
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
private void raiseSoftException(String callingMethod, String message) {
|
|
1031
|
-
raiseSoftException(callingMethod, message, null);
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
private void raiseSoftException(
|
|
1035
|
-
String callingMethod, String message, @Nullable Throwable throwable) {
|
|
1036
|
-
final String method = "raiseSoftException(" + callingMethod + ")";
|
|
1037
|
-
log(method, message);
|
|
1038
|
-
ReactSoftExceptionLogger.logSoftException(
|
|
1039
|
-
TAG, new ReactNoCrashSoftException(method + ": " + message, throwable));
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
/** Schedule work on a ReactInstance that is already created. */
|
|
1043
|
-
private Task<Boolean> callWithExistingReactInstance(
|
|
1044
|
-
final String callingMethod,
|
|
1045
|
-
final ReactInstanceCalback continuation,
|
|
1046
|
-
@Nullable Executor executor) {
|
|
1047
|
-
final String method = "callWithExistingReactInstance(" + callingMethod + ")";
|
|
1048
|
-
|
|
1049
|
-
if (executor == null) {
|
|
1050
|
-
executor = Task.IMMEDIATE_EXECUTOR;
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
return mCreateReactInstanceTaskRef
|
|
1054
|
-
.get()
|
|
1055
|
-
.onSuccess(
|
|
1056
|
-
task -> {
|
|
1057
|
-
final ReactInstance reactInstance = task.getResult();
|
|
1058
|
-
if (reactInstance == null) {
|
|
1059
|
-
raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
|
|
1060
|
-
return FALSE;
|
|
1061
|
-
}
|
|
1062
|
-
|
|
1063
|
-
continuation.then(reactInstance);
|
|
1064
|
-
return TRUE;
|
|
1065
|
-
},
|
|
1066
|
-
executor);
|
|
1067
|
-
}
|
|
1068
|
-
|
|
1069
|
-
/** Create a ReactInstance if it doesn't exist already, and schedule work on it. */
|
|
1070
|
-
private Task<Void> callAfterGetOrCreateReactInstance(
|
|
1071
|
-
final String callingMethod,
|
|
1072
|
-
final ReactInstanceCalback runnable,
|
|
1073
|
-
@Nullable Executor executor) {
|
|
1074
|
-
final String method = "callAfterGetOrCreateReactInstance(" + callingMethod + ")";
|
|
1075
|
-
|
|
1076
|
-
if (executor == null) {
|
|
1077
|
-
executor = Task.IMMEDIATE_EXECUTOR;
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
return getOrCreateReactInstance()
|
|
1081
|
-
.onSuccess(
|
|
1082
|
-
task -> {
|
|
1083
|
-
final ReactInstance reactInstance = task.getResult();
|
|
1084
|
-
if (reactInstance == null) {
|
|
1085
|
-
raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
|
|
1086
|
-
return null;
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
|
-
runnable.then(reactInstance);
|
|
1090
|
-
return null;
|
|
1091
|
-
},
|
|
1092
|
-
executor)
|
|
1093
|
-
.continueWith(
|
|
1094
|
-
task -> {
|
|
1095
|
-
if (task.isFaulted()) {
|
|
1096
|
-
handleHostException(Assertions.assertNotNull(task.getError()));
|
|
1097
|
-
}
|
|
1098
|
-
return null;
|
|
1099
|
-
});
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
private BridgelessReactContext getOrCreateReactContext() {
|
|
1103
|
-
final String method = "getOrCreateReactContext()";
|
|
1104
|
-
return mBridgelessReactContextRef.getOrCreate(
|
|
1105
|
-
() -> {
|
|
1106
|
-
log(method, "Creating BridgelessReactContext");
|
|
1107
|
-
return new BridgelessReactContext(mContext, ReactHostImpl.this);
|
|
1108
|
-
});
|
|
1109
|
-
}
|
|
1110
|
-
|
|
1111
|
-
/**
|
|
1112
|
-
* Entrypoint to create the ReactInstance.
|
|
1113
|
-
*
|
|
1114
|
-
* <p>If the ReactInstance is reloading, will return the reload task. If the ReactInstance is
|
|
1115
|
-
* destroying, will wait until destroy is finished, before creating.
|
|
1116
|
-
*/
|
|
1117
|
-
private Task<ReactInstance> getOrCreateReactInstance() {
|
|
1118
|
-
return Task.call(this::waitThenCallGetOrCreateReactInstanceTask, mBGExecutor);
|
|
1119
|
-
}
|
|
1120
|
-
|
|
1121
|
-
@ThreadConfined("ReactHost")
|
|
1122
|
-
private Task<ReactInstance> waitThenCallGetOrCreateReactInstanceTask() {
|
|
1123
|
-
return waitThenCallGetOrCreateReactInstanceTaskWithRetries(0, 4);
|
|
1124
|
-
}
|
|
1125
|
-
|
|
1126
|
-
@ThreadConfined("ReactHost")
|
|
1127
|
-
private Task<ReactInstance> waitThenCallGetOrCreateReactInstanceTaskWithRetries(
|
|
1128
|
-
int tryNum, int maxTries) {
|
|
1129
|
-
final String method = "waitThenCallGetOrCreateReactInstanceTaskWithRetries";
|
|
1130
|
-
if (mReloadTask != null) {
|
|
1131
|
-
log(method, "React Native is reloading. Return reload task.");
|
|
1132
|
-
return mReloadTask;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
if (mDestroyTask != null) {
|
|
1136
|
-
boolean shouldTryAgain = tryNum < maxTries;
|
|
1137
|
-
if (shouldTryAgain) {
|
|
1138
|
-
log(
|
|
1139
|
-
method,
|
|
1140
|
-
"React Native is tearing down."
|
|
1141
|
-
+ "Wait for teardown to finish, before trying again (try count = "
|
|
1142
|
-
+ tryNum
|
|
1143
|
-
+ ").");
|
|
1144
|
-
return mDestroyTask.onSuccessTask(
|
|
1145
|
-
(task) -> waitThenCallGetOrCreateReactInstanceTaskWithRetries(tryNum + 1, maxTries),
|
|
1146
|
-
mBGExecutor);
|
|
1147
|
-
}
|
|
1148
|
-
|
|
1149
|
-
raiseSoftException(
|
|
1150
|
-
method,
|
|
1151
|
-
"React Native is tearing down. Not wait for teardown to finish: reached max retries.");
|
|
1152
|
-
}
|
|
1153
|
-
|
|
1154
|
-
return getOrCreateReactInstanceTask();
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
|
-
private static class CreationResult {
|
|
1158
|
-
final ReactInstance mInstance;
|
|
1159
|
-
final ReactContext mContext;
|
|
1160
|
-
final boolean mIsReloading;
|
|
1161
|
-
|
|
1162
|
-
private CreationResult(ReactInstance instance, ReactContext context, boolean isReloading) {
|
|
1163
|
-
mInstance = instance;
|
|
1164
|
-
mContext = context;
|
|
1165
|
-
mIsReloading = isReloading;
|
|
1166
|
-
}
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
@ThreadConfined("ReactHost")
|
|
1170
|
-
private Task<ReactInstance> getOrCreateReactInstanceTask() {
|
|
1171
|
-
final String method = "getOrCreateReactInstanceTask()";
|
|
1172
|
-
log(method);
|
|
1173
|
-
|
|
1174
|
-
return mCreateReactInstanceTaskRef.getOrCreate(
|
|
1175
|
-
() -> {
|
|
1176
|
-
log(method, "Start");
|
|
1177
|
-
Assertions.assertCondition(
|
|
1178
|
-
!mHostInvalidated, "Cannot start a new ReactInstance on an invalidated ReactHost");
|
|
1179
|
-
|
|
1180
|
-
ReactMarker.logMarker(
|
|
1181
|
-
ReactMarkerConstants.REACT_BRIDGELESS_LOADING_START, BRIDGELESS_MARKER_INSTANCE_KEY);
|
|
1182
|
-
|
|
1183
|
-
Task<CreationResult> creationTask =
|
|
1184
|
-
getJsBundleLoader()
|
|
1185
|
-
.onSuccess(
|
|
1186
|
-
task -> {
|
|
1187
|
-
final JSBundleLoader bundleLoader =
|
|
1188
|
-
Assertions.assertNotNull(task.getResult());
|
|
1189
|
-
final BridgelessReactContext reactContext = getOrCreateReactContext();
|
|
1190
|
-
final DevSupportManager devSupportManager = getDevSupportManager();
|
|
1191
|
-
reactContext.setJSExceptionHandler(devSupportManager);
|
|
1192
|
-
|
|
1193
|
-
log(method, "Creating ReactInstance");
|
|
1194
|
-
final ReactInstance instance =
|
|
1195
|
-
new ReactInstance(
|
|
1196
|
-
reactContext,
|
|
1197
|
-
mReactHostDelegate,
|
|
1198
|
-
mComponentFactory,
|
|
1199
|
-
devSupportManager,
|
|
1200
|
-
this::handleHostException,
|
|
1201
|
-
mUseDevSupport,
|
|
1202
|
-
getOrCreateReactHostInspectorTarget());
|
|
1203
|
-
mReactInstance = instance;
|
|
1204
|
-
|
|
1205
|
-
MemoryPressureListener memoryPressureListener =
|
|
1206
|
-
createMemoryPressureListener(instance);
|
|
1207
|
-
mMemoryPressureListener = memoryPressureListener;
|
|
1208
|
-
mMemoryPressureRouter.addMemoryPressureListener(memoryPressureListener);
|
|
1209
|
-
|
|
1210
|
-
// Eagerly initialize turbo modules in parallel with JS bundle execution
|
|
1211
|
-
// as TurboModuleManager will handle any concurrent access
|
|
1212
|
-
instance.initializeEagerTurboModules();
|
|
1213
|
-
|
|
1214
|
-
log(method, "Loading JS Bundle");
|
|
1215
|
-
instance.loadJSBundle(bundleLoader);
|
|
1216
|
-
|
|
1217
|
-
log(
|
|
1218
|
-
method,
|
|
1219
|
-
"Calling DevSupportManagerBase.onNewReactContextCreated(reactContext)");
|
|
1220
|
-
devSupportManager.onNewReactContextCreated(reactContext);
|
|
1221
|
-
|
|
1222
|
-
reactContext.runOnJSQueueThread(
|
|
1223
|
-
() -> {
|
|
1224
|
-
// Executing on the JS thread to ensure that we're done
|
|
1225
|
-
// loading the JS bundle.
|
|
1226
|
-
// TODO T76081936 Move this if we switch to a sync RTE
|
|
1227
|
-
ReactMarker.logMarker(
|
|
1228
|
-
ReactMarkerConstants.REACT_BRIDGELESS_LOADING_END,
|
|
1229
|
-
BRIDGELESS_MARKER_INSTANCE_KEY);
|
|
1230
|
-
});
|
|
1231
|
-
|
|
1232
|
-
return new CreationResult(instance, reactContext, mReloadTask != null);
|
|
1233
|
-
},
|
|
1234
|
-
mBGExecutor);
|
|
1235
|
-
|
|
1236
|
-
Continuation<CreationResult, ReactInstance> lifecycleUpdateTask =
|
|
1237
|
-
task -> {
|
|
1238
|
-
CreationResult result = Assertions.assertNotNull(task.getResult());
|
|
1239
|
-
final ReactInstance reactInstance = result.mInstance;
|
|
1240
|
-
final ReactContext reactContext = result.mContext;
|
|
1241
|
-
final boolean isReloading = result.mIsReloading;
|
|
1242
|
-
final boolean isManagerResumed =
|
|
1243
|
-
mReactLifecycleStateManager.getLifecycleState() == LifecycleState.RESUMED;
|
|
1244
|
-
|
|
1245
|
-
/**
|
|
1246
|
-
* ReactContext.onHostResume() should only be called when the user navigates to the
|
|
1247
|
-
* first React Native screen.
|
|
1248
|
-
*
|
|
1249
|
-
* <p>During init: The application puts the React manager in a resumed state, when
|
|
1250
|
-
* the user navigates to a React Native screen. Two types of init: (1) If React
|
|
1251
|
-
* Native init happens when the user navigates to a React Native screen, the React
|
|
1252
|
-
* manager will get resumed on init start, so ReactContext.onHostResume() will be
|
|
1253
|
-
* executed here. (2) If React Native init happens before the user navigates to a
|
|
1254
|
-
* React Native screen (i.e: React Native is preloaded), the React manager won't be
|
|
1255
|
-
* in a resumed state here. So ReactContext.onHostResume() won't be executed here.
|
|
1256
|
-
* But, when the user navigates to their first React Native screen, the application
|
|
1257
|
-
* will call ReactHost.onHostResume(). That will call ReactContext.onHostResume().
|
|
1258
|
-
*
|
|
1259
|
-
* <p>During reloads, if the manager isn't resumed, call
|
|
1260
|
-
* ReactContext.onHostResume(). If React Native is reloading, it seems reasonable to
|
|
1261
|
-
* assume that: (1) We must have navigated to a React Native screen in the past, or
|
|
1262
|
-
* (2) We must be on a React Native screen.
|
|
1263
|
-
*/
|
|
1264
|
-
if (isReloading && !isManagerResumed) {
|
|
1265
|
-
mReactLifecycleStateManager.moveToOnHostResume(
|
|
1266
|
-
reactContext, getCurrentActivity());
|
|
1267
|
-
} else {
|
|
1268
|
-
/**
|
|
1269
|
-
* Call ReactContext.onHostResume() only when already in the resumed state which
|
|
1270
|
-
* aligns with the bridge https://fburl.com/diffusion/2qhxmudv.
|
|
1271
|
-
*/
|
|
1272
|
-
mReactLifecycleStateManager.resumeReactContextIfHostResumed(
|
|
1273
|
-
reactContext, getCurrentActivity());
|
|
1274
|
-
}
|
|
1275
|
-
|
|
1276
|
-
log(method, "Executing ReactInstanceEventListeners");
|
|
1277
|
-
for (ReactInstanceEventListener listener : mReactInstanceEventListeners) {
|
|
1278
|
-
if (listener != null) {
|
|
1279
|
-
listener.onReactContextInitialized(reactContext);
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
return reactInstance;
|
|
1283
|
-
};
|
|
1284
|
-
|
|
1285
|
-
creationTask.onSuccess(lifecycleUpdateTask, mUIExecutor);
|
|
1286
|
-
return creationTask.onSuccess(
|
|
1287
|
-
task -> Assertions.assertNotNull(task.getResult()).mInstance,
|
|
1288
|
-
Task.IMMEDIATE_EXECUTOR);
|
|
1289
|
-
});
|
|
1290
|
-
}
|
|
1291
|
-
|
|
1292
|
-
private Task<JSBundleLoader> getJsBundleLoader() {
|
|
1293
|
-
final String method = "getJSBundleLoader()";
|
|
1294
|
-
log(method);
|
|
1295
|
-
|
|
1296
|
-
if (mUseDevSupport && mAllowPackagerServerAccess) {
|
|
1297
|
-
return isMetroRunning()
|
|
1298
|
-
.onSuccessTask(
|
|
1299
|
-
task -> {
|
|
1300
|
-
boolean isMetroRunning = Assertions.assertNotNull(task.getResult());
|
|
1301
|
-
if (isMetroRunning) {
|
|
1302
|
-
// Since metro is running, fetch the JS bundle from the server
|
|
1303
|
-
return loadJSBundleFromMetro();
|
|
1304
|
-
}
|
|
1305
|
-
return Task.forResult(mReactHostDelegate.getJsBundleLoader());
|
|
1306
|
-
},
|
|
1307
|
-
mBGExecutor);
|
|
1308
|
-
} else {
|
|
1309
|
-
if (ReactBuildConfig.DEBUG) {
|
|
1310
|
-
FLog.d(TAG, "Packager server access is disabled in this environment");
|
|
1311
|
-
}
|
|
1312
|
-
|
|
1313
|
-
/**
|
|
1314
|
-
* In prod mode: fall back to the JS bundle loader from the delegate.
|
|
1315
|
-
*
|
|
1316
|
-
* <p>Note: Create the prod JSBundleLoader inside a Task.call. Why: If JSBundleLoader creation
|
|
1317
|
-
* throws an exception, the task will fault, and we'll go through the ReactHost error
|
|
1318
|
-
* reporting pipeline.
|
|
1319
|
-
*/
|
|
1320
|
-
try {
|
|
1321
|
-
return Task.forResult(mReactHostDelegate.getJsBundleLoader());
|
|
1322
|
-
} catch (Exception e) {
|
|
1323
|
-
return Task.forError(e);
|
|
1324
|
-
}
|
|
1325
|
-
}
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
private Task<Boolean> isMetroRunning() {
|
|
1329
|
-
final String method = "isMetroRunning()";
|
|
1330
|
-
log(method);
|
|
1331
|
-
|
|
1332
|
-
final TaskCompletionSource<Boolean> taskCompletionSource = new TaskCompletionSource<>();
|
|
1333
|
-
final DevSupportManager asyncDevSupportManager = getDevSupportManager();
|
|
1334
|
-
|
|
1335
|
-
asyncDevSupportManager.isPackagerRunning(
|
|
1336
|
-
packagerIsRunning -> {
|
|
1337
|
-
log(method, "Async result = " + packagerIsRunning);
|
|
1338
|
-
taskCompletionSource.setResult(packagerIsRunning);
|
|
1339
|
-
});
|
|
1340
|
-
|
|
1341
|
-
return taskCompletionSource.getTask();
|
|
1342
|
-
}
|
|
1343
|
-
|
|
1344
|
-
private Task<JSBundleLoader> loadJSBundleFromMetro() {
|
|
1345
|
-
final String method = "loadJSBundleFromMetro()";
|
|
1346
|
-
log(method);
|
|
1347
|
-
|
|
1348
|
-
final TaskCompletionSource<JSBundleLoader> taskCompletionSource = new TaskCompletionSource<>();
|
|
1349
|
-
final DevSupportManagerBase asyncDevSupportManager =
|
|
1350
|
-
((DevSupportManagerBase) getDevSupportManager());
|
|
1351
|
-
String bundleURL =
|
|
1352
|
-
asyncDevSupportManager
|
|
1353
|
-
.getDevServerHelper()
|
|
1354
|
-
.getDevServerBundleURL(
|
|
1355
|
-
Assertions.assertNotNull(asyncDevSupportManager.getJSAppBundleName()));
|
|
1356
|
-
|
|
1357
|
-
asyncDevSupportManager.reloadJSFromServer(
|
|
1358
|
-
bundleURL,
|
|
1359
|
-
new BundleLoadCallback() {
|
|
1360
|
-
@Override
|
|
1361
|
-
public void onSuccess() {
|
|
1362
|
-
log(method, "Creating BundleLoader");
|
|
1363
|
-
JSBundleLoader bundleLoader =
|
|
1364
|
-
JSBundleLoader.createCachedBundleFromNetworkLoader(
|
|
1365
|
-
bundleURL, asyncDevSupportManager.getDownloadedJSBundleFile());
|
|
1366
|
-
taskCompletionSource.setResult(bundleLoader);
|
|
1367
|
-
}
|
|
1368
|
-
|
|
1369
|
-
@Override
|
|
1370
|
-
public void onError(Exception cause) {
|
|
1371
|
-
taskCompletionSource.setError(cause);
|
|
1372
|
-
}
|
|
1373
|
-
});
|
|
1374
|
-
|
|
1375
|
-
return taskCompletionSource.getTask();
|
|
1376
|
-
}
|
|
1377
|
-
|
|
1378
|
-
private void log(String method, String message) {
|
|
1379
|
-
mBridgelessReactStateTracker.enterState("ReactHost{" + mId + "}." + method + ": " + message);
|
|
1380
|
-
}
|
|
1381
|
-
|
|
1382
|
-
private void log(String method) {
|
|
1383
|
-
mBridgelessReactStateTracker.enterState("ReactHost{" + mId + "}." + method);
|
|
1384
|
-
}
|
|
1385
|
-
|
|
1386
|
-
private void stopAttachedSurfaces(String method, ReactInstance reactInstance) {
|
|
1387
|
-
log(method, "Stopping all React Native surfaces");
|
|
1388
|
-
synchronized (mAttachedSurfaces) {
|
|
1389
|
-
for (ReactSurfaceImpl surface : mAttachedSurfaces) {
|
|
1390
|
-
reactInstance.stopSurface(surface);
|
|
1391
|
-
surface.clear();
|
|
1392
|
-
}
|
|
1393
|
-
}
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
private void startAttachedSurfaces(String method, ReactInstance reactInstance) {
|
|
1397
|
-
log(method, "Restarting previously running React Native Surfaces");
|
|
1398
|
-
synchronized (mAttachedSurfaces) {
|
|
1399
|
-
for (ReactSurfaceImpl surface : mAttachedSurfaces) {
|
|
1400
|
-
reactInstance.startSurface(surface);
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
@ThreadConfined("ReactHost")
|
|
1406
|
-
private @Nullable Task<ReactInstance> mReloadTask = null;
|
|
1407
|
-
|
|
1408
|
-
private interface ReactInstanceTaskUnwrapper {
|
|
1409
|
-
@Nullable
|
|
1410
|
-
ReactInstance unwrap(Task<ReactInstance> task, String stage);
|
|
1411
|
-
}
|
|
1412
|
-
|
|
1413
|
-
private ReactInstanceTaskUnwrapper createReactInstanceUnwrapper(
|
|
1414
|
-
String tag, String method, String reason) {
|
|
1415
|
-
|
|
1416
|
-
return (task, stage) -> {
|
|
1417
|
-
final ReactInstance reactInstance = task.getResult();
|
|
1418
|
-
final ReactInstance currentReactInstance = mReactInstance;
|
|
1419
|
-
|
|
1420
|
-
final String stageLabel = "Stage: " + stage;
|
|
1421
|
-
final String reasonLabel = tag + " reason: " + reason;
|
|
1422
|
-
if (task.isFaulted()) {
|
|
1423
|
-
final Exception ex = Assertions.assertNotNull(task.getError());
|
|
1424
|
-
final String faultLabel = "Fault reason: " + ex.getMessage();
|
|
1425
|
-
raiseSoftException(
|
|
1426
|
-
method,
|
|
1427
|
-
tag
|
|
1428
|
-
+ ": ReactInstance task faulted. "
|
|
1429
|
-
+ stageLabel
|
|
1430
|
-
+ ". "
|
|
1431
|
-
+ faultLabel
|
|
1432
|
-
+ ". "
|
|
1433
|
-
+ reasonLabel);
|
|
1434
|
-
return currentReactInstance;
|
|
1435
|
-
}
|
|
1436
|
-
|
|
1437
|
-
if (task.isCancelled()) {
|
|
1438
|
-
raiseSoftException(
|
|
1439
|
-
method, tag + ": ReactInstance task cancelled. " + stageLabel + ". " + reasonLabel);
|
|
1440
|
-
return currentReactInstance;
|
|
1441
|
-
}
|
|
1442
|
-
|
|
1443
|
-
if (reactInstance == null) {
|
|
1444
|
-
raiseSoftException(
|
|
1445
|
-
method, tag + ": ReactInstance task returned null. " + stageLabel + ". " + reasonLabel);
|
|
1446
|
-
return currentReactInstance;
|
|
1447
|
-
}
|
|
1448
|
-
|
|
1449
|
-
if (currentReactInstance != null && reactInstance != currentReactInstance) {
|
|
1450
|
-
raiseSoftException(
|
|
1451
|
-
method,
|
|
1452
|
-
tag
|
|
1453
|
-
+ ": Detected two different ReactInstances. Returning old. "
|
|
1454
|
-
+ stageLabel
|
|
1455
|
-
+ ". "
|
|
1456
|
-
+ reasonLabel);
|
|
1457
|
-
}
|
|
1458
|
-
|
|
1459
|
-
return reactInstance;
|
|
1460
|
-
};
|
|
1461
|
-
}
|
|
1462
|
-
|
|
1463
|
-
/**
|
|
1464
|
-
* The ReactInstance is loaded. Tear it down, and re-create it.
|
|
1465
|
-
*
|
|
1466
|
-
* <p>If the ReactInstance is in an "invalid state", make a "best effort" attempt to clean up
|
|
1467
|
-
* React. "invalid state" means: ReactInstance task is faulted; ReactInstance is null; React
|
|
1468
|
-
* instance task is cancelled; BridgelessReactContext is null. This can typically happen if the
|
|
1469
|
-
* ReactInstance task work throws an exception.
|
|
1470
|
-
*/
|
|
1471
|
-
@ThreadConfined("ReactHost")
|
|
1472
|
-
private Task<ReactInstance> getOrCreateReloadTask(String reason) {
|
|
1473
|
-
final String method = "getOrCreateReloadTask()";
|
|
1474
|
-
log(method);
|
|
1475
|
-
|
|
1476
|
-
// Log how React Native is destroyed
|
|
1477
|
-
// TODO(T136397487): Remove after Venice is shipped to 100%
|
|
1478
|
-
raiseSoftException(method, reason);
|
|
1479
|
-
|
|
1480
|
-
ReactInstanceTaskUnwrapper reactInstanceTaskUnwrapper =
|
|
1481
|
-
createReactInstanceUnwrapper("Reload", method, reason);
|
|
1482
|
-
|
|
1483
|
-
if (mReloadTask == null) {
|
|
1484
|
-
// When using the immediate executor, we want to avoid scheduling any further work immediately
|
|
1485
|
-
// when destruction is kicked off.
|
|
1486
|
-
log(method, "Resetting createReactInstance task ref");
|
|
1487
|
-
mReloadTask =
|
|
1488
|
-
mCreateReactInstanceTaskRef
|
|
1489
|
-
.getAndReset()
|
|
1490
|
-
.continueWithTask(
|
|
1491
|
-
(task) -> {
|
|
1492
|
-
log(method, "Starting React Native reload");
|
|
1493
|
-
final ReactInstance reactInstance =
|
|
1494
|
-
reactInstanceTaskUnwrapper.unwrap(task, "1: Starting reload");
|
|
1495
|
-
|
|
1496
|
-
unregisterInstanceFromInspector(reactInstance);
|
|
1497
|
-
|
|
1498
|
-
final ReactContext reactContext = mBridgelessReactContextRef.getNullable();
|
|
1499
|
-
if (reactContext == null) {
|
|
1500
|
-
raiseSoftException(method, "ReactContext is null. Reload reason: " + reason);
|
|
1501
|
-
}
|
|
1502
|
-
|
|
1503
|
-
if (reactContext != null
|
|
1504
|
-
&& mReactLifecycleStateManager.getLifecycleState()
|
|
1505
|
-
== LifecycleState.RESUMED) {
|
|
1506
|
-
log(method, "Calling ReactContext.onHostPause()");
|
|
1507
|
-
reactContext.onHostPause();
|
|
1508
|
-
}
|
|
1509
|
-
|
|
1510
|
-
return Task.forResult(reactInstance);
|
|
1511
|
-
},
|
|
1512
|
-
mUIExecutor)
|
|
1513
|
-
.continueWithTask(
|
|
1514
|
-
task -> {
|
|
1515
|
-
final ReactInstance reactInstance =
|
|
1516
|
-
reactInstanceTaskUnwrapper.unwrap(task, "2: Surface shutdown");
|
|
1517
|
-
|
|
1518
|
-
if (reactInstance == null) {
|
|
1519
|
-
raiseSoftException(method, "Skipping surface shutdown: ReactInstance null");
|
|
1520
|
-
return task;
|
|
1521
|
-
}
|
|
1522
|
-
|
|
1523
|
-
stopAttachedSurfaces(method, reactInstance);
|
|
1524
|
-
return task;
|
|
1525
|
-
},
|
|
1526
|
-
mBGExecutor)
|
|
1527
|
-
.continueWithTask(
|
|
1528
|
-
(task) -> {
|
|
1529
|
-
reactInstanceTaskUnwrapper.unwrap(task, "3: Destroying ReactContext");
|
|
1530
|
-
for (Function0<Unit> destroyListener : mBeforeDestroyListeners) {
|
|
1531
|
-
destroyListener.invoke();
|
|
1532
|
-
}
|
|
1533
|
-
|
|
1534
|
-
if (mMemoryPressureListener != null) {
|
|
1535
|
-
log(method, "Removing memory pressure listener");
|
|
1536
|
-
mMemoryPressureRouter.removeMemoryPressureListener(mMemoryPressureListener);
|
|
1537
|
-
}
|
|
1538
|
-
|
|
1539
|
-
final ReactContext reactContext = mBridgelessReactContextRef.getNullable();
|
|
1540
|
-
if (reactContext != null) {
|
|
1541
|
-
log(method, "Resetting ReactContext ref");
|
|
1542
|
-
mBridgelessReactContextRef.reset();
|
|
1543
|
-
|
|
1544
|
-
log(method, "Destroying ReactContext");
|
|
1545
|
-
reactContext.destroy();
|
|
1546
|
-
}
|
|
1547
|
-
|
|
1548
|
-
if (mUseDevSupport && reactContext != null) {
|
|
1549
|
-
log(
|
|
1550
|
-
method,
|
|
1551
|
-
"Calling DevSupportManager.onReactInstanceDestroyed(reactContext)");
|
|
1552
|
-
mDevSupportManager.onReactInstanceDestroyed(reactContext);
|
|
1553
|
-
}
|
|
1554
|
-
|
|
1555
|
-
return task;
|
|
1556
|
-
},
|
|
1557
|
-
mUIExecutor)
|
|
1558
|
-
.continueWithTask(
|
|
1559
|
-
task -> {
|
|
1560
|
-
final ReactInstance reactInstance =
|
|
1561
|
-
reactInstanceTaskUnwrapper.unwrap(task, "4: Destroying ReactInstance");
|
|
1562
|
-
|
|
1563
|
-
if (reactInstance == null) {
|
|
1564
|
-
raiseSoftException(
|
|
1565
|
-
method, "Skipping ReactInstance.destroy(): ReactInstance null");
|
|
1566
|
-
} else {
|
|
1567
|
-
log(method, "Resetting ReactInstance ptr");
|
|
1568
|
-
mReactInstance = null;
|
|
1569
|
-
|
|
1570
|
-
log(method, "Destroying ReactInstance");
|
|
1571
|
-
reactInstance.destroy();
|
|
1572
|
-
}
|
|
1573
|
-
|
|
1574
|
-
log(method, "Resetting start task ref");
|
|
1575
|
-
mStartTask = null;
|
|
1576
|
-
|
|
1577
|
-
// Kickstart a new ReactInstance create
|
|
1578
|
-
return getOrCreateReactInstanceTask();
|
|
1579
|
-
},
|
|
1580
|
-
mBGExecutor)
|
|
1581
|
-
.continueWithTask(
|
|
1582
|
-
task -> {
|
|
1583
|
-
final ReactInstance reactInstance =
|
|
1584
|
-
reactInstanceTaskUnwrapper.unwrap(task, "5: Restarting surfaces");
|
|
1585
|
-
|
|
1586
|
-
if (reactInstance == null) {
|
|
1587
|
-
raiseSoftException(method, "Skipping surface restart: ReactInstance null");
|
|
1588
|
-
return task;
|
|
1589
|
-
}
|
|
1590
|
-
|
|
1591
|
-
startAttachedSurfaces(method, reactInstance);
|
|
1592
|
-
|
|
1593
|
-
return task;
|
|
1594
|
-
},
|
|
1595
|
-
mBGExecutor)
|
|
1596
|
-
.continueWithTask(
|
|
1597
|
-
task -> {
|
|
1598
|
-
if (task.isFaulted()) {
|
|
1599
|
-
Exception fault = Assertions.assertNotNull(task.getError());
|
|
1600
|
-
raiseSoftException(
|
|
1601
|
-
method,
|
|
1602
|
-
"Error during reload. ReactInstance task faulted. Fault reason: "
|
|
1603
|
-
+ fault.getMessage()
|
|
1604
|
-
+ ". Reload reason: "
|
|
1605
|
-
+ reason,
|
|
1606
|
-
task.getError());
|
|
1607
|
-
}
|
|
1608
|
-
|
|
1609
|
-
if (task.isCancelled()) {
|
|
1610
|
-
raiseSoftException(
|
|
1611
|
-
method,
|
|
1612
|
-
"Error during reload. ReactInstance task cancelled. Reload reason: "
|
|
1613
|
-
+ reason);
|
|
1614
|
-
}
|
|
1615
|
-
|
|
1616
|
-
log(method, "Resetting reload task ref");
|
|
1617
|
-
mReloadTask = null;
|
|
1618
|
-
return task;
|
|
1619
|
-
},
|
|
1620
|
-
mBGExecutor);
|
|
1621
|
-
}
|
|
1622
|
-
|
|
1623
|
-
return mReloadTask;
|
|
1624
|
-
}
|
|
1625
|
-
|
|
1626
|
-
@ThreadConfined("ReactHost")
|
|
1627
|
-
private @Nullable Task<Void> mDestroyTask = null;
|
|
1628
|
-
|
|
1629
|
-
/**
|
|
1630
|
-
* The ReactInstance is loaded. Tear it down.
|
|
1631
|
-
*
|
|
1632
|
-
* <p>If the ReactInstance is in an "invalid state", make a "best effort" attempt to clean up
|
|
1633
|
-
* React. "invalid state" means: ReactInstance task is faulted; ReactInstance is null; React
|
|
1634
|
-
* instance task is cancelled; BridgelessReactContext is null. This can typically happen if the *
|
|
1635
|
-
* ReactInstance task work throws an exception.
|
|
1636
|
-
*/
|
|
1637
|
-
@ThreadConfined("ReactHost")
|
|
1638
|
-
private Task<Void> getOrCreateDestroyTask(final String reason, @Nullable Exception ex) {
|
|
1639
|
-
final String method = "getOrCreateDestroyTask()";
|
|
1640
|
-
log(method);
|
|
1641
|
-
|
|
1642
|
-
// Log how React Native is destroyed
|
|
1643
|
-
// TODO(T136397487): Remove after Venice is shipped to 100%
|
|
1644
|
-
raiseSoftException(method, reason, ex);
|
|
1645
|
-
|
|
1646
|
-
ReactInstanceTaskUnwrapper reactInstanceTaskUnwrapper =
|
|
1647
|
-
createReactInstanceUnwrapper("Destroy", method, reason);
|
|
1648
|
-
|
|
1649
|
-
if (mDestroyTask == null) {
|
|
1650
|
-
// When using the immediate executor, we want to avoid scheduling any further work immediately
|
|
1651
|
-
// when destruction is kicked off.
|
|
1652
|
-
log(method, "Resetting createReactInstance task ref");
|
|
1653
|
-
mDestroyTask =
|
|
1654
|
-
mCreateReactInstanceTaskRef
|
|
1655
|
-
.getAndReset()
|
|
1656
|
-
.continueWithTask(
|
|
1657
|
-
task -> {
|
|
1658
|
-
log(method, "Starting React Native destruction");
|
|
1659
|
-
|
|
1660
|
-
final ReactInstance reactInstance =
|
|
1661
|
-
reactInstanceTaskUnwrapper.unwrap(task, "1: Starting destroy");
|
|
1662
|
-
|
|
1663
|
-
unregisterInstanceFromInspector(reactInstance);
|
|
1664
|
-
|
|
1665
|
-
if (mHostInvalidated) {
|
|
1666
|
-
// If the host has been invalidated, now that the current context/instance
|
|
1667
|
-
// has been unregistered, we can safely destroy the host's inspector
|
|
1668
|
-
// target.
|
|
1669
|
-
if (mReactHostInspectorTarget != null) {
|
|
1670
|
-
mReactHostInspectorTarget.close();
|
|
1671
|
-
mReactHostInspectorTarget = null;
|
|
1672
|
-
}
|
|
1673
|
-
}
|
|
1674
|
-
|
|
1675
|
-
// Step 1: Destroy DevSupportManager
|
|
1676
|
-
if (mUseDevSupport) {
|
|
1677
|
-
log(method, "DevSupportManager cleanup");
|
|
1678
|
-
// TODO(T137233065): Disable DevSupportManager here
|
|
1679
|
-
mDevSupportManager.stopInspector();
|
|
1680
|
-
}
|
|
1681
|
-
|
|
1682
|
-
final ReactContext reactContext = mBridgelessReactContextRef.getNullable();
|
|
1683
|
-
if (reactContext == null) {
|
|
1684
|
-
raiseSoftException(method, "ReactContext is null. Destroy reason: " + reason);
|
|
1685
|
-
}
|
|
1686
|
-
|
|
1687
|
-
// Step 2: Move React Native to onHostDestroy()
|
|
1688
|
-
log(method, "Move ReactHost to onHostDestroy()");
|
|
1689
|
-
mReactLifecycleStateManager.moveToOnHostDestroy(reactContext);
|
|
1690
|
-
|
|
1691
|
-
return Task.forResult(reactInstance);
|
|
1692
|
-
},
|
|
1693
|
-
mUIExecutor)
|
|
1694
|
-
.continueWithTask(
|
|
1695
|
-
task -> {
|
|
1696
|
-
final ReactInstance reactInstance =
|
|
1697
|
-
reactInstanceTaskUnwrapper.unwrap(task, "2: Stopping surfaces");
|
|
1698
|
-
if (reactInstance == null) {
|
|
1699
|
-
raiseSoftException(method, "Skipping surface shutdown: ReactInstance null");
|
|
1700
|
-
return task;
|
|
1701
|
-
}
|
|
1702
|
-
|
|
1703
|
-
// Step 3: Stop all React Native surfaces
|
|
1704
|
-
stopAttachedSurfaces(method, reactInstance);
|
|
1705
|
-
synchronized (mAttachedSurfaces) {
|
|
1706
|
-
mAttachedSurfaces.clear();
|
|
1707
|
-
}
|
|
1708
|
-
|
|
1709
|
-
return task;
|
|
1710
|
-
},
|
|
1711
|
-
mBGExecutor)
|
|
1712
|
-
.continueWithTask(
|
|
1713
|
-
task -> {
|
|
1714
|
-
reactInstanceTaskUnwrapper.unwrap(task, "3: Destroying ReactContext");
|
|
1715
|
-
for (Function0<Unit> destroyListener : mBeforeDestroyListeners) {
|
|
1716
|
-
destroyListener.invoke();
|
|
1717
|
-
}
|
|
1718
|
-
|
|
1719
|
-
final ReactContext reactContext = mBridgelessReactContextRef.getNullable();
|
|
1720
|
-
if (reactContext == null) {
|
|
1721
|
-
raiseSoftException(method, "ReactContext is null. Destroy reason: " + reason);
|
|
1722
|
-
}
|
|
1723
|
-
|
|
1724
|
-
// Step 4: De-register the memory pressure listener
|
|
1725
|
-
log(method, "Destroying MemoryPressureRouter");
|
|
1726
|
-
mMemoryPressureRouter.destroy(mContext);
|
|
1727
|
-
|
|
1728
|
-
if (reactContext != null) {
|
|
1729
|
-
log(method, "Resetting ReactContext ref");
|
|
1730
|
-
mBridgelessReactContextRef.reset();
|
|
1731
|
-
|
|
1732
|
-
log(method, "Destroying ReactContext");
|
|
1733
|
-
reactContext.destroy();
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
|
-
// Reset current activity
|
|
1737
|
-
setCurrentActivity(null);
|
|
1738
|
-
|
|
1739
|
-
// Clear ResourceIdleDrawableIdMap
|
|
1740
|
-
ResourceDrawableIdHelper.getInstance().clear();
|
|
1741
|
-
|
|
1742
|
-
return task;
|
|
1743
|
-
},
|
|
1744
|
-
mUIExecutor)
|
|
1745
|
-
.continueWithTask(
|
|
1746
|
-
task -> {
|
|
1747
|
-
final ReactInstance reactInstance =
|
|
1748
|
-
reactInstanceTaskUnwrapper.unwrap(task, "4: Destroying ReactInstance");
|
|
1749
|
-
|
|
1750
|
-
if (reactInstance == null) {
|
|
1751
|
-
raiseSoftException(
|
|
1752
|
-
method, "Skipping ReactInstance.destroy(): ReactInstance null");
|
|
1753
|
-
} else {
|
|
1754
|
-
log(method, "Resetting ReactInstance ptr");
|
|
1755
|
-
mReactInstance = null;
|
|
1756
|
-
|
|
1757
|
-
log(method, "Destroying ReactInstance");
|
|
1758
|
-
reactInstance.destroy();
|
|
1759
|
-
}
|
|
1760
|
-
|
|
1761
|
-
log(method, "Resetting start task ref");
|
|
1762
|
-
mStartTask = null;
|
|
1763
|
-
|
|
1764
|
-
log(method, "Resetting destroy task ref");
|
|
1765
|
-
mDestroyTask = null;
|
|
1766
|
-
return task;
|
|
1767
|
-
},
|
|
1768
|
-
mBGExecutor)
|
|
1769
|
-
.continueWith(
|
|
1770
|
-
task -> {
|
|
1771
|
-
if (task.isFaulted()) {
|
|
1772
|
-
Exception fault = Assertions.assertNotNull(task.getError());
|
|
1773
|
-
raiseSoftException(
|
|
1774
|
-
method,
|
|
1775
|
-
"React destruction failed. ReactInstance task faulted. Fault reason: "
|
|
1776
|
-
+ fault.getMessage()
|
|
1777
|
-
+ ". Destroy reason: "
|
|
1778
|
-
+ reason,
|
|
1779
|
-
task.getError());
|
|
1780
|
-
}
|
|
1781
|
-
|
|
1782
|
-
if (task.isCancelled()) {
|
|
1783
|
-
raiseSoftException(
|
|
1784
|
-
method,
|
|
1785
|
-
"React destruction failed. ReactInstance task cancelled. Destroy reason: "
|
|
1786
|
-
+ reason);
|
|
1787
|
-
}
|
|
1788
|
-
return null;
|
|
1789
|
-
});
|
|
1790
|
-
}
|
|
1791
|
-
|
|
1792
|
-
return mDestroyTask;
|
|
1793
|
-
}
|
|
1794
|
-
|
|
1795
|
-
@VisibleForTesting
|
|
1796
|
-
/* package */ @Nullable
|
|
1797
|
-
ReactHostInspectorTarget getOrCreateReactHostInspectorTarget() {
|
|
1798
|
-
if (mReactHostInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
|
|
1799
|
-
// NOTE: ReactHostInspectorTarget only retains a weak reference to `this`.
|
|
1800
|
-
mReactHostInspectorTarget = new ReactHostInspectorTarget(this);
|
|
1801
|
-
}
|
|
1802
|
-
|
|
1803
|
-
return mReactHostInspectorTarget;
|
|
1804
|
-
}
|
|
1805
|
-
|
|
1806
|
-
@ThreadConfined(UI)
|
|
1807
|
-
@VisibleForTesting
|
|
1808
|
-
/* package */ void unregisterInstanceFromInspector(final @Nullable ReactInstance reactInstance) {
|
|
1809
|
-
if (reactInstance != null) {
|
|
1810
|
-
if (InspectorFlags.getFuseboxEnabled()) {
|
|
1811
|
-
Assertions.assertCondition(
|
|
1812
|
-
mReactHostInspectorTarget != null && mReactHostInspectorTarget.isValid(),
|
|
1813
|
-
"Host inspector target destroyed before instance was unregistered");
|
|
1814
|
-
}
|
|
1815
|
-
reactInstance.unregisterFromInspector();
|
|
1816
|
-
}
|
|
1817
|
-
}
|
|
1818
|
-
|
|
1819
|
-
@Override
|
|
1820
|
-
public void invalidate() {
|
|
1821
|
-
FLog.d(TAG, "ReactHostImpl.invalidate()");
|
|
1822
|
-
mHostInvalidated = true;
|
|
1823
|
-
destroy("ReactHostImpl.invalidate()", null);
|
|
1824
|
-
}
|
|
1825
|
-
}
|