react-native 0.0.0-263478b91 → 0.0.0-268efb102
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/ActionSheetIOS.js +14 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
- package/Libraries/Animated/AnimatedEvent.js +23 -4
- package/Libraries/Animated/AnimatedMock.js +1 -7
- package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
- package/Libraries/Animated/animations/Animation.js +1 -0
- package/Libraries/Animated/animations/DecayAnimation.js +2 -0
- package/Libraries/Animated/animations/SpringAnimation.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +3 -0
- package/Libraries/Animated/createAnimatedComponent.js +5 -1
- package/Libraries/Animated/createAnimatedComponentInjection.js +48 -0
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +48 -0
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -0
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -0
- package/Libraries/Animated/useAnimatedProps.js +211 -0
- package/Libraries/BatchedBridge/MessageQueue.js +15 -10
- package/Libraries/BatchedBridge/NativeModules.js +5 -1
- package/Libraries/Blob/FileReader.js +1 -1
- package/Libraries/Blob/RCTBlobManager.h +2 -1
- package/Libraries/Blob/RCTBlobManager.mm +1 -3
- package/Libraries/Blob/React-RCTBlob.podspec +1 -1
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/BugReporting/BugReporting.js +2 -0
- package/Libraries/BugReporting/getReactData.js +1 -1
- package/Libraries/Components/Button.js +18 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +18 -15
- package/Libraries/Components/ScrollView/ScrollView.js +22 -5
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +2 -0
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +14 -6
- package/Libraries/Components/Slider/Slider.js +13 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -14
- package/Libraries/Components/Switch/Switch.js +18 -6
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +4 -4
- package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.js +32 -4
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +14 -0
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +11 -2
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +131 -64
- package/Libraries/Components/View/ViewAccessibility.js +2 -0
- package/Libraries/Components/View/ViewNativeComponent.js +0 -10
- package/Libraries/Core/Devtools/parseErrorStack.js +0 -10
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +49 -39
- package/Libraries/{Components/View/ViewInjection.js → Core/ExtendedError.js} +8 -2
- package/Libraries/Core/ReactFiberErrorDialog.js +44 -34
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +37 -28
- package/Libraries/Core/Timers/immediateShim.js +67 -0
- package/Libraries/Core/Timers/queueMicrotask.js +41 -0
- package/Libraries/Core/polyfillPromise.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
- package/Libraries/Core/setUpTimers.js +65 -6
- package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +131 -0
- package/Libraries/DeprecatedPropTypes/{DeprecatedImagePropType.js → DeprecatedImagePropType.ios.js} +0 -0
- package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +5 -5
- package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +1 -0
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -0
- package/Libraries/Image/Image.android.js +20 -130
- package/Libraries/Image/Image.ios.js +12 -7
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageInjection.js +28 -0
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/ImageSource.js +108 -65
- package/Libraries/Image/React-RCTImage.podspec +1 -1
- package/Libraries/Inspector/Inspector.js +6 -0
- package/Libraries/Interaction/InteractionManager.js +3 -0
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/Lists/CellRenderMask.js +145 -0
- package/Libraries/Lists/FlatList.js +43 -26
- package/Libraries/Lists/VirtualizedList.js +3 -1
- package/Libraries/Lists/VirtualizedSectionList.js +3 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
- package/Libraries/LogBox/Data/LogBoxData.js +21 -19
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/Modal/Modal.js +1 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +1 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m +1 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +32 -28
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
- package/Libraries/Network/RCTHTTPRequestHandler.h +5 -0
- package/Libraries/Network/RCTHTTPRequestHandler.mm +19 -7
- package/Libraries/Network/React-RCTNetwork.podspec +1 -1
- package/Libraries/Network/XMLHttpRequest.js +4 -1
- package/Libraries/NewAppScreen/components/Header.js +1 -0
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/Performance/QuickPerformanceLogger.js +3 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +6 -0
- package/Libraries/Pressability/Pressability.js +1 -0
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
- package/Libraries/ReactNative/AppContainer.js +1 -0
- package/Libraries/ReactNative/AppRegistry.js +3 -1
- package/Libraries/ReactNative/I18nManager.js +12 -3
- package/Libraries/ReactNative/PaperUIManager.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +8 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -3
- package/Libraries/Reliability/UserFlow.js +7 -0
- package/Libraries/Renderer/REVISION +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +5686 -4572
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +4324 -3826
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2196 -1859
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +196 -210
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2694 -2070
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +647 -375
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +5474 -4460
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +4109 -3636
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1375 -1166
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +162 -193
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +2197 -1708
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +618 -364
- package/Libraries/Renderer/shims/ReactFabric.js +5 -4
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +7 -4
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/React-RCTSettings.podspec +1 -1
- package/Libraries/Settings/Settings.ios.js +4 -0
- package/Libraries/Storage/AsyncStorage.js +1 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +16 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +8 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +2 -0
- package/Libraries/StyleSheet/StyleSheet.js +3 -5
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/SurfaceHostingComponent/RCTSurfaceHostingComponent.mm +1 -1
- package/Libraries/Text/Text.js +11 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.m +10 -12
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
- package/Libraries/Text/TextProps.js +5 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -10
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
- package/Libraries/UTFSequence.js +1 -1
- package/Libraries/Utilities/Dimensions.js +9 -14
- package/Libraries/Utilities/FeatureDetection.js +31 -0
- package/Libraries/Utilities/HMRClient.js +13 -6
- package/Libraries/Utilities/MatrixMath.js +1 -1
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -0
- package/Libraries/Utilities/deprecatedPropType.js +2 -2
- package/Libraries/Utilities/useMergeRefs.js +44 -0
- package/Libraries/Utilities/useRefEffect.js +45 -0
- package/Libraries/Utilities/useWindowDimensions.js +7 -2
- package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -0
- package/Libraries/promiseRejectionTrackingOptions.js +2 -0
- package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
- package/README.md +5 -5
- package/React/Base/RCTAssert.h +11 -11
- package/React/Base/RCTBridge+Private.h +8 -2
- package/React/Base/RCTBridge.h +12 -3
- package/React/Base/RCTBridge.m +24 -12
- package/React/Base/RCTBridgeModule.h +36 -12
- package/React/Base/RCTBundleURLProvider.h +26 -1
- package/React/Base/RCTBundleURLProvider.mm +79 -15
- package/React/Base/RCTCallableJSModules.m +47 -0
- package/React/Base/RCTConstants.h +6 -7
- package/React/Base/RCTConstants.m +12 -12
- package/React/Base/RCTConvert.h +1 -1
- package/React/Base/RCTConvert.m +31 -7
- package/React/Base/RCTCxxConvert.h +1 -1
- package/React/Base/RCTDefines.h +12 -3
- package/React/Base/RCTEventDispatcherProtocol.h +3 -2
- package/React/{Views/RCTPickerManager.h → Base/RCTInitializing.h} +4 -2
- package/React/Base/RCTJSThread.h +29 -0
- package/React/Base/RCTJSThread.m +19 -0
- package/React/Base/RCTModuleData.h +7 -3
- package/React/Base/RCTModuleData.mm +41 -1
- package/React/Base/RCTMultipartStreamReader.m +0 -2
- package/React/Base/RCTRootView.h +15 -0
- package/React/Base/RCTRootView.m +15 -0
- package/React/Base/RCTTouchHandler.m +4 -9
- package/React/Base/RCTUtils.h +3 -0
- package/React/Base/RCTUtils.m +14 -7
- package/React/Base/RCTVersion.m +1 -1
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +12 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +45 -1
- package/React/CoreModules/BUCK +4 -3
- package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
- package/React/CoreModules/RCTActionSheetManager.mm +14 -5
- package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
- package/React/CoreModules/RCTDevLoadingView.mm +6 -21
- package/React/CoreModules/RCTDevMenu.mm +8 -11
- package/React/CoreModules/RCTDevSettings.h +2 -1
- package/React/CoreModules/RCTDevSettings.mm +63 -53
- package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -6
- package/React/CoreModules/RCTDeviceInfo.mm +4 -4
- package/React/CoreModules/RCTEventDispatcher.h +2 -1
- package/React/CoreModules/RCTEventDispatcher.mm +17 -28
- package/React/CoreModules/RCTKeyboardObserver.mm +1 -1
- package/React/CoreModules/RCTLogBox.mm +14 -10
- package/React/CoreModules/RCTPerfMonitor.mm +9 -4
- package/React/CoreModules/RCTRedBox.mm +1 -5
- package/React/CoreModules/RCTTiming.h +2 -1
- package/React/CoreModules/RCTTiming.mm +1 -3
- package/React/CoreModules/React-CoreModules.podspec +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +49 -12
- package/React/DevSupport/RCTPackagerConnection.h +3 -0
- package/React/DevSupport/RCTPackagerConnection.mm +19 -8
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +0 -1
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +97 -85
- package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +45 -17
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +109 -5
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
- package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
- package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
- package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
- package/React/Fabric/RCTConversions.h +3 -0
- package/React/Fabric/RCTScheduler.mm +23 -7
- package/React/Fabric/RCTSurfacePresenter.mm +28 -37
- package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +4 -2
- package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +1 -1
- package/React/Fabric/RCTSurfaceRegistry.h +1 -1
- package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
- package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
- package/React/Modules/RCTEventEmitter.h +1 -2
- package/React/Modules/RCTEventEmitter.m +8 -11
- package/React/Modules/RCTI18nUtil.h +14 -6
- package/React/Modules/RCTI18nUtil.m +1 -47
- package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
- package/React/React-RCTFabric.podspec +3 -3
- package/React/Views/RCTFont.mm +54 -38
- package/React/Views/RCTModalHostView.h +1 -1
- package/React/Views/RCTModalHostView.m +16 -0
- package/React/Views/RCTModalHostViewManager.m +1 -0
- package/React/Views/RCTView.h +7 -7
- package/React/Views/RCTView.m +32 -49
- package/React/Views/RCTViewManager.m +14 -4
- package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
- package/React/Views/ScrollView/RCTScrollView.h +1 -0
- package/React/Views/ScrollView/RCTScrollView.m +123 -36
- package/React/Views/ScrollView/RCTScrollViewManager.m +4 -7
- package/React/Views/UIView+React.m +2 -11
- package/React/third-party.xcconfig +1 -1
- package/React-Core.podspec +2 -2
- package/ReactAndroid/Android-prebuilt.mk +8 -0
- package/ReactAndroid/README.md +1 -1
- package/ReactAndroid/build.gradle +82 -18
- package/ReactAndroid/gradle.properties +5 -5
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -2
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
- package/ReactAndroid/src/androidTest/js/BUCK +26 -0
- package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -12
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +123 -64
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +25 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/BUCK +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.java +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBufferSoLoader.java +33 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +40 -36
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +275 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +163 -328
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxHandler.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +6 -67
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +154 -74
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +36 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +14 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +129 -40
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +18 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +22 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +53 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +27 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +136 -35
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +35 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
- package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
- package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +14 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +10 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingProhibitedView.java +26 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +53 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +236 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +20 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +34 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/interfaces/ViewProps.java +9 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.cpp +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.h +10 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +15 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +42 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +18 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +9 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderEvent.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSlidingCompleteEvent.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java +6 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +59 -44
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +19 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +41 -59
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -51
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TypefaceStyle.java +72 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +16 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +117 -62
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +49 -2
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +2 -7
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJTypesVanilla.h +8 -4
- package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
- package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +64 -3
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +9 -2
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
- package/{ReactCommon/react/renderer/components/picker/iospicker/primitives.h → ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h} +6 -10
- package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
- package/{ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerComponentDescriptor.h → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +8 -7
- package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +1 -0
- package/ReactAndroid/src/main/jni/third-party/folly/Android.mk +3 -1
- package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
- package/ReactAndroid/src/main/libraries/fresco/fresco-react-native/BUCK +26 -26
- package/ReactAndroid/src/main/libraries/soloader/java/com/facebook/soloader/BUCK +5 -5
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -1
- package/ReactAndroid/src/main/res/views/uimanager/values/strings_unlocalized.xml +0 -12
- package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
- package/ReactAndroid/src/main/third-party/java/infer-annotations/BUCK +2 -2
- package/ReactAndroid/src/main/third-party/java/okhttp/BUCK +4 -4
- package/ReactAndroid/src/main/third-party/java/okio/BUCK +2 -2
- package/ReactAndroid/src/main/third-party/java/robolectric/{4.4/BUCK → BUCK} +0 -0
- package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
- package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +2 -2
- package/ReactAndroid/src/test/java/com/facebook/react/bridge/BUCK +1 -1
- package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
- package/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.java +4 -0
- package/ReactCommon/React-Fabric.podspec +11 -11
- package/ReactCommon/ReactCommon.podspec +3 -2
- package/ReactCommon/callinvoker/BUCK +2 -2
- package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
- package/ReactCommon/cxxreact/Android.mk +2 -1
- package/ReactCommon/cxxreact/BUCK +1 -3
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
- package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
- package/ReactCommon/cxxreact/Instance.cpp +5 -8
- package/ReactCommon/cxxreact/Instance.h +1 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -3
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +2 -2
- package/ReactCommon/hermes/executor/Android.mk +4 -4
- package/ReactCommon/hermes/inspector/Android.mk +1 -2
- package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
- package/ReactCommon/jsi/Android.mk +1 -1
- package/ReactCommon/jsi/BUCK +0 -2
- package/ReactCommon/jsi/React-jsi.podspec +3 -3
- package/ReactCommon/jsi/jsi/jsilib-posix.cpp +1 -11
- package/ReactCommon/jsiexecutor/Android.mk +2 -2
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +2 -2
- package/ReactCommon/logger/Android.mk +23 -0
- package/ReactCommon/logger/BUCK +43 -0
- package/ReactCommon/logger/React-logger.podspec +40 -0
- package/ReactCommon/logger/react_native_log.cpp +52 -0
- package/ReactCommon/logger/react_native_log.h +33 -0
- package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +61 -42
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +55 -35
- package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
- package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
- package/ReactCommon/react/renderer/animations/BUCK +1 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1127
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
- package/ReactCommon/react/renderer/animations/conversions.h +212 -0
- package/ReactCommon/react/renderer/animations/primitives.h +104 -0
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +18 -10
- package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
- package/ReactCommon/react/renderer/animations/utils.h +80 -0
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
- package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +12 -6
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
- package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
- package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
- package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
- package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
- package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/root/BUCK +1 -0
- package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
- package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
- package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
- package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +35 -3
- package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
- package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +54 -4
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +10 -5
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
- package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
- package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +3 -3
- package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +36 -2
- package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
- package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/TextShadowNode.h +23 -0
- package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
- package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +19 -7
- package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
- package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
- package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +28 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +4 -1
- package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
- package/ReactCommon/react/renderer/components/view/BUCK +1 -0
- package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +19 -5
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +2 -1
- package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
- package/ReactCommon/react/renderer/components/view/ViewEventEmitter.cpp +1 -1
- package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
- package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +5 -10
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -12
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +77 -6
- package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
- package/ReactCommon/react/renderer/components/view/primitives.h +5 -4
- package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
- package/ReactCommon/react/renderer/core/Android.mk +1 -1
- package/ReactCommon/react/renderer/core/BUCK +1 -0
- package/ReactCommon/react/renderer/core/BatchedEventQueue.cpp +2 -34
- package/ReactCommon/react/renderer/core/BatchedEventQueue.h +2 -9
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +5 -10
- package/ReactCommon/react/renderer/core/EventDispatcher.h +3 -8
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +21 -11
- package/ReactCommon/react/renderer/core/EventEmitter.h +6 -1
- package/ReactCommon/react/renderer/core/EventPipe.h +2 -0
- package/ReactCommon/react/renderer/core/EventQueue.cpp +35 -32
- package/ReactCommon/react/renderer/core/EventQueue.h +12 -6
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +82 -0
- package/ReactCommon/react/renderer/core/EventQueueProcessor.h +36 -0
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +1 -1
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
- package/ReactCommon/react/renderer/core/Props.cpp +10 -2
- package/ReactCommon/react/renderer/core/Props.h +6 -1
- package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
- package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +40 -3
- package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
- package/ReactCommon/react/renderer/core/RawProps.h +3 -1
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
- package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +1 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
- package/ReactCommon/react/renderer/core/ReactEventPriority.h +43 -0
- package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +9 -12
- package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
- package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +17 -1
- package/ReactCommon/react/renderer/core/propsConversions.h +19 -9
- package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +134 -0
- package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +97 -29
- package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
- package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +31 -0
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +9 -9
- package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
- package/ReactCommon/react/renderer/graphics/BUCK +12 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +3 -2
- package/ReactCommon/react/renderer/graphics/Transform.cpp +2 -2
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
- package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
- package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.cpp +8 -0
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +1 -0
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/Color.cpp +8 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +43 -1
- package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
- package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/leakchecker/LeakChecker.cpp +6 -9
- package/ReactCommon/react/renderer/leakchecker/LeakChecker.h +1 -4
- package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
- package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +3 -10
- package/ReactCommon/react/renderer/mounting/Differentiator.h +1 -2
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +1 -7
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +7 -5
- package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -1
- package/ReactCommon/react/renderer/mounting/ShadowView.cpp +2 -0
- package/ReactCommon/react/renderer/mounting/ShadowView.h +1 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
- package/ReactCommon/react/renderer/mounting/StubViewTree.cpp +10 -3
- package/ReactCommon/react/renderer/mounting/TelemetryController.cpp +1 -1
- package/ReactCommon/react/renderer/mounting/stubs.cpp +3 -3
- package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +22 -21
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +12 -5
- package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +2 -2
- package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -3
- package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +75 -33
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +54 -10
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +8 -7
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +8 -5
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +157 -0
- package/ReactCommon/react/renderer/runtimescheduler/tests/StubQueue.h +6 -0
- package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +13 -12
- package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h +4 -4
- package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.cpp → scheduler/InspectorData.h} +10 -2
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +64 -37
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +18 -3
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +9 -1
- package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +1 -6
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -35
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -12
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
- package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.cpp +11 -4
- package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.h +4 -1
- package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +5 -5
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
- package/ReactCommon/react/renderer/timeline/BUCK +6 -6
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +29 -16
- package/ReactCommon/react/renderer/uimanager/UIManager.h +3 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +61 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +13 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -2
- package/ReactCommon/react/test_utils/BUCK +3 -0
- package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
- package/ReactCommon/react/utils/Android.mk +3 -1
- package/ReactCommon/react/utils/BUCK +1 -0
- package/ReactCommon/react/utils/ContextContainer.h +0 -27
- package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
- package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
- package/ReactCommon/yoga/yoga/Yoga.cpp +2 -6
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar +0 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module +272 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.0.0-263478b91/react-native-0.0.0-263478b91.pom → 0.0.0-268efb102/react-native-0.0.0-268efb102.pom} +22 -11
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -3
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -0
- package/flow/HermesInternalType.js +114 -0
- package/flow/global.js +68 -0
- package/flow-typed/npm/react-test-renderer_v16.x.x.js +79 -0
- package/index.js +65 -40
- package/jest/preprocessor.js +75 -7
- package/jest/renderer.js +3 -7
- package/jest/setup.js +2 -1
- package/package.json +58 -19
- package/react.gradle +47 -25
- package/scripts/find-node.sh +6 -0
- package/scripts/generate-specs-cli.js +20 -2
- package/scripts/ios-configure-glog.sh +4 -0
- package/scripts/react-native-xcode.sh +5 -1
- package/scripts/react_native_pods.rb +213 -43
- package/template/_flowconfig +1 -1
- package/template/_gitignore +1 -0
- package/template/android/app/build.gradle +12 -7
- package/template/android/app/src/main/res/values/styles.xml +0 -1
- package/template/android/build.gradle +5 -6
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradle.properties +1 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
- package/template/ios/Podfile +1 -0
- package/template/package.json +3 -4
- package/third-party-podspecs/RCT-Folly.podspec +14 -10
- package/third-party-podspecs/boost.podspec +23 -0
- package/Libraries/BUCK +0 -24
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -83
- package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -82
- package/Libraries/Components/Picker/Picker.js +0 -168
- package/Libraries/Components/Picker/PickerAndroid.android.js +0 -143
- package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
- package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
- package/Libraries/Components/Picker/PickerIOS.ios.js +0 -163
- package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -86
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -53
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/Libraries/StyleSheet/StyleSheetValidation.js +0 -100
- package/Libraries/Text/TextInjection.js +0 -15
- package/React/Base/RCTJSInvokerModule.h +0 -17
- package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.h +0 -19
- package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.mm +0 -206
- package/React/Views/RCTPicker.h +0 -23
- package/React/Views/RCTPicker.m +0 -122
- package/React/Views/RCTPickerManager.m +0 -59
- package/ReactAndroid/release.gradle +0 -87
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ReactPickerTestCase.java +0 -196
- package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
- package/ReactAndroid/src/androidTest/js/PickerAndroidTestModule.js +0 -89
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java +0 -82
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerDelegate.java +0 -48
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerInterface.java +0 -23
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerDelegate.java +0 -48
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerInterface.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/BUCK +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDialogPickerManager.java +0 -51
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDropdownPickerManager.java +0 -50
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPicker.java +0 -196
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerAdapter.java +0 -95
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerItem.java +0 -43
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerManager.java +0 -99
- package/ReactAndroid/src/main/java/com/facebook/react/views/picker/events/PickerItemSelectEvent.java +0 -42
- package/ReactCommon/react/renderer/components/picker/Android.mk +0 -37
- package/ReactCommon/react/renderer/components/picker/BUCK +0 -98
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.cpp +0 -23
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.h +0 -27
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.cpp +0 -28
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.h +0 -77
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.h +0 -29
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerComponentDescriptor.h +0 -21
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.cpp +0 -23
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.h +0 -27
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.cpp +0 -28
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.h +0 -77
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.cpp +0 -17
- package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.h +0 -29
- package/ReactCommon/react/renderer/components/picker/iospicker/BUCK +0 -59
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerComponentDescriptor.h +0 -26
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.cpp +0 -23
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.h +0 -28
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.cpp +0 -46
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.h +0 -36
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.cpp +0 -16
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.h +0 -33
- package/ReactCommon/react/renderer/components/picker/iospicker/PickerState.h +0 -19
- package/ReactCommon/react/renderer/components/picker/iospicker/conversions.h +0 -48
- package/ReactCommon/react/renderer/core/Constants.cpp +0 -24
- package/ReactCommon/react/renderer/mounting/DifferentiatorFlatteningClassic.cpp +0 -1564
- package/ReactCommon/react/renderer/mounting/DifferentiatorFlatteningClassic.h +0 -45
- package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeatV2.cpp +0 -58
- package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeatV2.h +0 -41
- package/android/com/facebook/react/react-native/0.0.0-263478b91/react-native-0.0.0-263478b91.aar +0 -0
- package/android/com/facebook/react/react-native/0.0.0-263478b91/react-native-0.0.0-263478b91.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-263478b91/react-native-0.0.0-263478b91.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-263478b91/react-native-0.0.0-263478b91.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-263478b91/react-native-0.0.0-263478b91.pom.sha1 +0 -1
- package/scripts/generate-specs.sh +0 -100
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -20,7 +20,7 @@ import com.facebook.react.bridge.CatalystInstance;
|
|
|
20
20
|
import com.facebook.react.bridge.JSIModuleType;
|
|
21
21
|
import com.facebook.react.bridge.ReactContext;
|
|
22
22
|
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
23
|
-
import com.facebook.react.bridge.
|
|
23
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
24
24
|
import com.facebook.react.bridge.UIManager;
|
|
25
25
|
import com.facebook.react.uimanager.common.UIManagerType;
|
|
26
26
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
@@ -55,7 +55,7 @@ public class UIManagerHelper {
|
|
|
55
55
|
if (context.isBridgeless()) {
|
|
56
56
|
@Nullable UIManager uiManager = (UIManager) context.getJSIModule(JSIModuleType.UIManager);
|
|
57
57
|
if (uiManager == null) {
|
|
58
|
-
|
|
58
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
59
59
|
TAG,
|
|
60
60
|
new ReactNoCrashSoftException(
|
|
61
61
|
"Cannot get UIManager because the instance hasn't been initialized yet."));
|
|
@@ -65,7 +65,7 @@ public class UIManagerHelper {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (!context.hasCatalystInstance()) {
|
|
68
|
-
|
|
68
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
69
69
|
TAG,
|
|
70
70
|
new ReactNoCrashSoftException(
|
|
71
71
|
"Cannot get UIManager because the context doesn't contain a CatalystInstance."));
|
|
@@ -74,7 +74,7 @@ public class UIManagerHelper {
|
|
|
74
74
|
// TODO T60461551: add tests to verify emission of events when the ReactContext is being turn
|
|
75
75
|
// down.
|
|
76
76
|
if (!context.hasActiveReactInstance()) {
|
|
77
|
-
|
|
77
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
78
78
|
TAG,
|
|
79
79
|
new ReactNoCrashSoftException(
|
|
80
80
|
"Cannot get UIManager because the context doesn't contain an active CatalystInstance."));
|
|
@@ -89,7 +89,7 @@ public class UIManagerHelper {
|
|
|
89
89
|
: catalystInstance.getNativeModule(UIManagerModule.class);
|
|
90
90
|
} catch (IllegalArgumentException ex) {
|
|
91
91
|
// TODO T67518514 Clean this up once we migrate everything over to bridgeless mode
|
|
92
|
-
|
|
92
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
93
93
|
TAG,
|
|
94
94
|
new ReactNoCrashSoftException(
|
|
95
95
|
"Cannot get UIManager for UIManagerType: " + uiManagerType));
|
|
@@ -105,7 +105,7 @@ public class UIManagerHelper {
|
|
|
105
105
|
public static EventDispatcher getEventDispatcherForReactTag(ReactContext context, int reactTag) {
|
|
106
106
|
EventDispatcher eventDispatcher = getEventDispatcher(context, getUIManagerType(reactTag));
|
|
107
107
|
if (eventDispatcher == null) {
|
|
108
|
-
|
|
108
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
109
109
|
TAG, new IllegalStateException("Cannot get EventDispatcher for reactTag " + reactTag));
|
|
110
110
|
}
|
|
111
111
|
return eventDispatcher;
|
|
@@ -127,7 +127,7 @@ public class UIManagerHelper {
|
|
|
127
127
|
}
|
|
128
128
|
UIManager uiManager = getUIManager(context, uiManagerType, false);
|
|
129
129
|
if (uiManager == null) {
|
|
130
|
-
|
|
130
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
131
131
|
TAG,
|
|
132
132
|
new ReactNoCrashSoftException(
|
|
133
133
|
"Unable to find UIManager for UIManagerType " + uiManagerType));
|
|
@@ -135,7 +135,7 @@ public class UIManagerHelper {
|
|
|
135
135
|
}
|
|
136
136
|
EventDispatcher eventDispatcher = (EventDispatcher) uiManager.getEventDispatcher();
|
|
137
137
|
if (eventDispatcher == null) {
|
|
138
|
-
|
|
138
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
139
139
|
TAG,
|
|
140
140
|
new IllegalStateException(
|
|
141
141
|
"Cannot get EventDispatcher for UIManagerType " + uiManagerType));
|
|
@@ -180,7 +180,7 @@ public class UIManagerHelper {
|
|
|
180
180
|
|
|
181
181
|
// All Fabric-managed Views (should) have a ThemedReactContext attached.
|
|
182
182
|
if (surfaceId == -1) {
|
|
183
|
-
|
|
183
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
184
184
|
TAG,
|
|
185
185
|
new IllegalStateException(
|
|
186
186
|
"Fabric View [" + reactTag + "] does not have SurfaceId associated with it"));
|
|
@@ -114,6 +114,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
114
114
|
private volatile int mViewManagerConstantsCacheSize;
|
|
115
115
|
|
|
116
116
|
private int mBatchId = 0;
|
|
117
|
+
private int mNumRootViews = 0;
|
|
117
118
|
|
|
118
119
|
@SuppressWarnings("deprecated")
|
|
119
120
|
public UIManagerModule(
|
|
@@ -442,6 +443,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
442
443
|
-1);
|
|
443
444
|
|
|
444
445
|
mUIImplementation.registerRootView(rootView, tag, themedRootContext);
|
|
446
|
+
mNumRootViews++;
|
|
445
447
|
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
|
|
446
448
|
return tag;
|
|
447
449
|
}
|
|
@@ -465,6 +467,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
465
467
|
@ReactMethod
|
|
466
468
|
public void removeRootView(int rootViewTag) {
|
|
467
469
|
mUIImplementation.removeRootView(rootViewTag);
|
|
470
|
+
mNumRootViews--;
|
|
468
471
|
}
|
|
469
472
|
|
|
470
473
|
public void updateNodeSize(int nodeViewTag, int newWidth, int newHeight) {
|
|
@@ -805,7 +808,12 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
805
808
|
listener.willDispatchViewUpdates(this);
|
|
806
809
|
}
|
|
807
810
|
try {
|
|
808
|
-
|
|
811
|
+
// If there are no RootViews registered, there will be no View updates to dispatch.
|
|
812
|
+
// This is a hack to prevent this from being called when Fabric is used everywhere.
|
|
813
|
+
// This should no longer be necessary in Bridgeless Mode.
|
|
814
|
+
if (mNumRootViews > 0) {
|
|
815
|
+
mUIImplementation.dispatchViewUpdates(batchId);
|
|
816
|
+
}
|
|
809
817
|
} finally {
|
|
810
818
|
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
|
|
811
819
|
}
|
|
@@ -947,6 +955,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
|
|
|
947
955
|
public void onLowMemory() {}
|
|
948
956
|
}
|
|
949
957
|
|
|
958
|
+
@Override
|
|
950
959
|
public View resolveView(int tag) {
|
|
951
960
|
UiThreadUtil.assertOnUiThread();
|
|
952
961
|
return mUIImplementation
|
|
@@ -18,7 +18,7 @@ import com.facebook.react.bridge.GuardedRunnable;
|
|
|
18
18
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
19
19
|
import com.facebook.react.bridge.ReactContext;
|
|
20
20
|
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
21
|
-
import com.facebook.react.bridge.
|
|
21
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
22
22
|
import com.facebook.react.bridge.ReadableArray;
|
|
23
23
|
import com.facebook.react.bridge.ReadableMap;
|
|
24
24
|
import com.facebook.react.bridge.RetryableMountingLayerException;
|
|
@@ -313,7 +313,7 @@ public class UIViewOperationQueue {
|
|
|
313
313
|
try {
|
|
314
314
|
mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
|
|
315
315
|
} catch (Throwable e) {
|
|
316
|
-
|
|
316
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
317
317
|
TAG, new RuntimeException("Error dispatching View Command", e));
|
|
318
318
|
}
|
|
319
319
|
}
|
|
@@ -354,7 +354,7 @@ public class UIViewOperationQueue {
|
|
|
354
354
|
try {
|
|
355
355
|
mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
|
|
356
356
|
} catch (Throwable e) {
|
|
357
|
-
|
|
357
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
358
358
|
TAG, new RuntimeException("Error dispatching View Command", e));
|
|
359
359
|
}
|
|
360
360
|
}
|
|
@@ -892,11 +892,12 @@ public class UIViewOperationQueue {
|
|
|
892
892
|
mViewCommandOperations.add(op);
|
|
893
893
|
} else {
|
|
894
894
|
// Retryable exceptions should be logged, but never crash in debug.
|
|
895
|
-
|
|
895
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
896
|
+
TAG, new ReactNoCrashSoftException(e));
|
|
896
897
|
}
|
|
897
898
|
} catch (Throwable e) {
|
|
898
899
|
// Non-retryable exceptions should be logged in prod, and crash in Debug.
|
|
899
|
-
|
|
900
|
+
ReactSoftExceptionLogger.logSoftException(TAG, e);
|
|
900
901
|
}
|
|
901
902
|
}
|
|
902
903
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java
CHANGED
|
@@ -325,6 +325,21 @@ import java.util.Map;
|
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
+
private static class BoxedColorPropSetter extends PropSetter {
|
|
329
|
+
|
|
330
|
+
public BoxedColorPropSetter(ReactProp prop, Method setter) {
|
|
331
|
+
super(prop, "mixed", setter);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@Override
|
|
335
|
+
protected @Nullable Object getValueOrDefault(Object value, Context context) {
|
|
336
|
+
if (value != null) {
|
|
337
|
+
return ColorPropConverter.getColor(value, context);
|
|
338
|
+
}
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
328
343
|
/*package*/ static Map<String, String> getNativePropsForView(
|
|
329
344
|
Class<? extends ViewManager> viewManagerTopClass,
|
|
330
345
|
Class<? extends ReactShadowNode> shadowNodeTopClass) {
|
|
@@ -418,7 +433,7 @@ import java.util.Map;
|
|
|
418
433
|
return new BoxedBooleanPropSetter(annotation, method);
|
|
419
434
|
} else if (propTypeClass == Integer.class) {
|
|
420
435
|
if ("Color".equals(annotation.customType())) {
|
|
421
|
-
return new
|
|
436
|
+
return new BoxedColorPropSetter(annotation, method);
|
|
422
437
|
}
|
|
423
438
|
return new BoxedIntPropSetter(annotation, method);
|
|
424
439
|
} else if (propTypeClass == ReadableArray.class) {
|
|
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
|
|
|
11
11
|
import com.facebook.react.bridge.WritableMap;
|
|
12
12
|
import com.facebook.react.common.SystemClock;
|
|
13
13
|
import com.facebook.react.uimanager.IllegalViewOperationException;
|
|
14
|
+
import com.facebook.react.uimanager.common.UIManagerType;
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* A UI event that can be dispatched to JS.
|
|
@@ -33,20 +34,12 @@ public abstract class Event<T extends Event> {
|
|
|
33
34
|
private static int sUniqueID = 0;
|
|
34
35
|
|
|
35
36
|
private boolean mInitialized;
|
|
37
|
+
private @UIManagerType int mUIManagerType;
|
|
36
38
|
private int mSurfaceId;
|
|
37
39
|
private int mViewTag;
|
|
38
40
|
private long mTimestampMs;
|
|
39
41
|
private int mUniqueID = sUniqueID++;
|
|
40
42
|
|
|
41
|
-
// Android native Event times use 'uptimeMillis', and historically we've used `uptimeMillis`
|
|
42
|
-
// throughout this Event class as the coalescing key for events, and for other purposes.
|
|
43
|
-
// To get an accurate(ish) absolute UNIX time for the event, we store the initial clock time here.
|
|
44
|
-
// uptimeMillis can then be added to this to get an accurate UNIX time.
|
|
45
|
-
// However, we still default to uptimeMillis: you must explicitly request UNIX time if you want
|
|
46
|
-
// that; see `getUnixTimestampMs`.
|
|
47
|
-
public static final long sInitialClockTimeUnixOffset =
|
|
48
|
-
SystemClock.currentTimeMillis() - SystemClock.uptimeMillis();
|
|
49
|
-
|
|
50
43
|
protected Event() {}
|
|
51
44
|
|
|
52
45
|
@Deprecated
|
|
@@ -63,14 +56,33 @@ public abstract class Event<T extends Event> {
|
|
|
63
56
|
init(-1, viewTag);
|
|
64
57
|
}
|
|
65
58
|
|
|
66
|
-
/** This method needs to be called before event is sent to event dispatcher. */
|
|
67
59
|
protected void init(int surfaceId, int viewTag) {
|
|
60
|
+
init(surfaceId, viewTag, SystemClock.uptimeMillis());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This method needs to be called before event is sent to event dispatcher. Event timestamps can
|
|
65
|
+
* optionally be dated/backdated to a custom time: for example, touch events should be dated with
|
|
66
|
+
* the system event time.
|
|
67
|
+
*/
|
|
68
|
+
protected void init(int surfaceId, int viewTag, long timestampMs) {
|
|
68
69
|
mSurfaceId = surfaceId;
|
|
69
70
|
mViewTag = viewTag;
|
|
70
|
-
mInitialized = true;
|
|
71
71
|
|
|
72
|
-
//
|
|
73
|
-
|
|
72
|
+
// We infer UIManagerType. Even though it's not passed in explicitly, we have a
|
|
73
|
+
// contract that Fabric events *always* have a SurfaceId passed in, and non-Fabric events
|
|
74
|
+
// NEVER have a SurfaceId passed in (the default/placeholder of -1 is passed in instead).
|
|
75
|
+
// Why does this matter?
|
|
76
|
+
// Events can be sent to Views that are part of the View hierarchy *but not directly managed
|
|
77
|
+
// by React Native*. For example, embedded custom hierachies, Litho hierachies, etc.
|
|
78
|
+
// In those cases it's important to konw that the Event should be sent to the Fabric or
|
|
79
|
+
// non-Fabric UIManager, and we cannot use the ViewTag for inference since it's not controlled
|
|
80
|
+
// by RN and is essentially a random number.
|
|
81
|
+
// At some point it would be great to pass the SurfaceContext here instead.
|
|
82
|
+
mUIManagerType = (surfaceId == -1 ? UIManagerType.DEFAULT : UIManagerType.FABRIC);
|
|
83
|
+
|
|
84
|
+
mTimestampMs = timestampMs;
|
|
85
|
+
mInitialized = true;
|
|
74
86
|
}
|
|
75
87
|
|
|
76
88
|
/** @return the view id for the view that generated this event */
|
|
@@ -91,11 +103,6 @@ public abstract class Event<T extends Event> {
|
|
|
91
103
|
return mTimestampMs;
|
|
92
104
|
}
|
|
93
105
|
|
|
94
|
-
/** @return the time at which the event happened as a UNIX timestamp, in milliseconds. */
|
|
95
|
-
public final long getUnixTimestampMs() {
|
|
96
|
-
return sInitialClockTimeUnixOffset + mTimestampMs;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
106
|
/** @return false if this Event can *never* be coalesced */
|
|
100
107
|
public boolean canCoalesce() {
|
|
101
108
|
return true;
|
|
@@ -142,6 +149,10 @@ public abstract class Event<T extends Event> {
|
|
|
142
149
|
onDispose();
|
|
143
150
|
}
|
|
144
151
|
|
|
152
|
+
public final @UIManagerType int getUIManagerType() {
|
|
153
|
+
return mUIManagerType;
|
|
154
|
+
}
|
|
155
|
+
|
|
145
156
|
/** @return the name of this event as registered in JS */
|
|
146
157
|
public abstract String getEventName();
|
|
147
158
|
|
|
@@ -155,7 +166,7 @@ public abstract class Event<T extends Event> {
|
|
|
155
166
|
WritableMap eventData = getEventData();
|
|
156
167
|
if (eventData == null) {
|
|
157
168
|
throw new IllegalViewOperationException(
|
|
158
|
-
"Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `
|
|
169
|
+
"Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `dispatchModern`. Event: "
|
|
159
170
|
+ getEventName());
|
|
160
171
|
}
|
|
161
172
|
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), eventData);
|
|
@@ -188,4 +199,27 @@ public abstract class Event<T extends Event> {
|
|
|
188
199
|
}
|
|
189
200
|
dispatch(rctEventEmitter);
|
|
190
201
|
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Dispatch this event to JS using a V2 version of dispatchModern. See all comments from
|
|
205
|
+
* `dispatchModern` - all still apply. This method additionally allows C++ to coalesce events
|
|
206
|
+
* (Fabric only). This will ONLY be called in an experimental path, and in Fabric only.
|
|
207
|
+
*/
|
|
208
|
+
@Deprecated
|
|
209
|
+
public void dispatchModernV2(RCTModernEventEmitter rctEventEmitter) {
|
|
210
|
+
if (getSurfaceId() != -1) {
|
|
211
|
+
WritableMap eventData = getEventData();
|
|
212
|
+
if (eventData != null) {
|
|
213
|
+
rctEventEmitter.receiveEvent(
|
|
214
|
+
getSurfaceId(),
|
|
215
|
+
getViewTag(),
|
|
216
|
+
getEventName(),
|
|
217
|
+
canCoalesce(),
|
|
218
|
+
getCoalescingKey(),
|
|
219
|
+
eventData);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
dispatch(rctEventEmitter);
|
|
224
|
+
}
|
|
191
225
|
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events;
|
|
9
|
+
|
|
10
|
+
import com.facebook.common.logging.FLog;
|
|
11
|
+
import com.facebook.infer.annotation.Assertions;
|
|
12
|
+
import com.facebook.react.bridge.LifecycleEventListener;
|
|
13
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
14
|
+
import com.facebook.react.bridge.UiThreadUtil;
|
|
15
|
+
import com.facebook.react.common.build.ReactBuildConfig;
|
|
16
|
+
import com.facebook.react.modules.core.ChoreographerCompat;
|
|
17
|
+
import com.facebook.react.modules.core.ReactChoreographer;
|
|
18
|
+
import com.facebook.react.uimanager.common.UIManagerType;
|
|
19
|
+
import java.util.concurrent.CopyOnWriteArrayList;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Class responsible for dispatching UI events to JS. The main purpose of this class is to act as an
|
|
23
|
+
* intermediary between UI code generating events and JS, making sure we don't send more events than
|
|
24
|
+
* JS can process.
|
|
25
|
+
*
|
|
26
|
+
* <p>To use it, create a subclass of {@link Event} and call {@link #dispatchEvent(Event)} whenever
|
|
27
|
+
* there's a UI event to dispatch.
|
|
28
|
+
*
|
|
29
|
+
* <p>This class works by installing a Choreographer frame callback on the main thread. This
|
|
30
|
+
* callback then enqueues a runnable on the JS thread (if one is not already pending) that is
|
|
31
|
+
* responsible for actually dispatch events to JS. This implementation depends on the properties
|
|
32
|
+
* that 1) FrameCallbacks run after UI events have been processed in Choreographer.java 2) when we
|
|
33
|
+
* enqueue a runnable on the JS queue thread, it won't be called until after any previously enqueued
|
|
34
|
+
* JS jobs have finished processing
|
|
35
|
+
*
|
|
36
|
+
* <p>If JS is taking a long time processing events, then the UI events generated on the UI thread
|
|
37
|
+
* can be coalesced into fewer events so that when the runnable runs, we don't overload JS with a
|
|
38
|
+
* ton of events and make it get even farther behind.
|
|
39
|
+
*
|
|
40
|
+
* <p>Ideally, we don't need this and JS is fast enough to process all the events each frame, but
|
|
41
|
+
* bad things happen, including load on CPUs from the system, and we should handle this case well.
|
|
42
|
+
*
|
|
43
|
+
* <p>== Event Cookies ==
|
|
44
|
+
*
|
|
45
|
+
* <p>An event cookie is made up of the event type id, view tag, and a custom coalescing key. Only
|
|
46
|
+
* Events that have the same cookie can be coalesced.
|
|
47
|
+
*
|
|
48
|
+
* <p>Event Cookie Composition: VIEW_TAG_MASK = 0x00000000ffffffff EVENT_TYPE_ID_MASK =
|
|
49
|
+
* 0x0000ffff00000000 COALESCING_KEY_MASK = 0xffff000000000000
|
|
50
|
+
*
|
|
51
|
+
* <p>This is a copy of EventDispatcherImpl, meant only to remove locking and synchronization.
|
|
52
|
+
*/
|
|
53
|
+
public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEventListener {
|
|
54
|
+
|
|
55
|
+
private final boolean DEBUG_MODE = ReactBuildConfig.DEBUG;
|
|
56
|
+
private final String TAG = LockFreeEventDispatcherImpl.class.getSimpleName();
|
|
57
|
+
|
|
58
|
+
private final ReactApplicationContext mReactContext;
|
|
59
|
+
private final CopyOnWriteArrayList<EventDispatcherListener> mListeners =
|
|
60
|
+
new CopyOnWriteArrayList<>();
|
|
61
|
+
private final CopyOnWriteArrayList<BatchEventDispatchedListener> mPostEventDispatchListeners =
|
|
62
|
+
new CopyOnWriteArrayList<>();
|
|
63
|
+
private final LockFreeEventDispatcherImpl.ScheduleDispatchFrameCallback mCurrentFrameCallback =
|
|
64
|
+
new LockFreeEventDispatcherImpl.ScheduleDispatchFrameCallback();
|
|
65
|
+
|
|
66
|
+
private volatile ReactEventEmitter mReactEventEmitter;
|
|
67
|
+
|
|
68
|
+
public LockFreeEventDispatcherImpl(ReactApplicationContext reactContext) {
|
|
69
|
+
mReactContext = reactContext;
|
|
70
|
+
mReactContext.addLifecycleEventListener(this);
|
|
71
|
+
mReactEventEmitter = new ReactEventEmitter(mReactContext);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Sends the given Event to C++, where it will be flushed to JS ASAP. */
|
|
75
|
+
public void dispatchEvent(Event event) {
|
|
76
|
+
Assertions.assertCondition(event.isInitialized(), "Dispatched event hasn't been initialized");
|
|
77
|
+
Assertions.assertNotNull(mReactEventEmitter);
|
|
78
|
+
|
|
79
|
+
if (DEBUG_MODE) {
|
|
80
|
+
FLog.v(TAG, "dispatchEvent: " + event.toString());
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
for (EventDispatcherListener listener : mListeners) {
|
|
84
|
+
listener.onEventDispatch(event);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
event.dispatchModernV2(mReactEventEmitter);
|
|
88
|
+
event.dispose();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
public void dispatchAllEvents() {
|
|
92
|
+
maybePostFrameCallbackFromNonUI();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private void maybePostFrameCallbackFromNonUI() {
|
|
96
|
+
if (mReactEventEmitter != null) {
|
|
97
|
+
// If the host activity is paused, the frame callback may not be currently
|
|
98
|
+
// posted. Ensure that it is so that this event gets delivered promptly.
|
|
99
|
+
mCurrentFrameCallback.maybePostFromNonUI();
|
|
100
|
+
} else {
|
|
101
|
+
// No JS application has started yet, or resumed. This can happen when a ReactRootView is
|
|
102
|
+
// added to view hierarchy, but ReactContext creation has not completed yet. In this case, any
|
|
103
|
+
// touch event dispatch will hit this codepath, and we simply queue them so that they
|
|
104
|
+
// are dispatched once ReactContext creation completes and JS app is running.
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Add a listener to this EventDispatcher. */
|
|
109
|
+
public void addListener(EventDispatcherListener listener) {
|
|
110
|
+
mListeners.add(listener);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Remove a listener from this EventDispatcher. */
|
|
114
|
+
public void removeListener(EventDispatcherListener listener) {
|
|
115
|
+
mListeners.remove(listener);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
public void addBatchEventDispatchedListener(BatchEventDispatchedListener listener) {
|
|
119
|
+
mPostEventDispatchListeners.add(listener);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public void removeBatchEventDispatchedListener(BatchEventDispatchedListener listener) {
|
|
123
|
+
mPostEventDispatchListeners.remove(listener);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@Override
|
|
127
|
+
public void onHostResume() {
|
|
128
|
+
maybePostFrameCallbackFromNonUI();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@Override
|
|
132
|
+
public void onHostPause() {
|
|
133
|
+
stopFrameCallback();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@Override
|
|
137
|
+
public void onHostDestroy() {
|
|
138
|
+
stopFrameCallback();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
public void onCatalystInstanceDestroyed() {
|
|
142
|
+
UiThreadUtil.runOnUiThread(
|
|
143
|
+
new Runnable() {
|
|
144
|
+
@Override
|
|
145
|
+
public void run() {
|
|
146
|
+
stopFrameCallback();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private void stopFrameCallback() {
|
|
152
|
+
UiThreadUtil.assertOnUiThread();
|
|
153
|
+
mCurrentFrameCallback.stop();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
public void registerEventEmitter(@UIManagerType int uiManagerType, RCTEventEmitter eventEmitter) {
|
|
157
|
+
mReactEventEmitter.register(uiManagerType, eventEmitter);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
public void registerEventEmitter(
|
|
161
|
+
@UIManagerType int uiManagerType, RCTModernEventEmitter eventEmitter) {
|
|
162
|
+
mReactEventEmitter.register(uiManagerType, eventEmitter);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
public void unregisterEventEmitter(@UIManagerType int uiManagerType) {
|
|
166
|
+
mReactEventEmitter.unregister(uiManagerType);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private class ScheduleDispatchFrameCallback extends ChoreographerCompat.FrameCallback {
|
|
170
|
+
private volatile boolean mIsPosted = false;
|
|
171
|
+
private boolean mShouldStop = false;
|
|
172
|
+
|
|
173
|
+
@Override
|
|
174
|
+
public void doFrame(long frameTimeNanos) {
|
|
175
|
+
UiThreadUtil.assertOnUiThread();
|
|
176
|
+
|
|
177
|
+
if (mShouldStop) {
|
|
178
|
+
mIsPosted = false;
|
|
179
|
+
} else {
|
|
180
|
+
post();
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
driveEventBeats();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
public void stop() {
|
|
187
|
+
mShouldStop = true;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public void maybePost() {
|
|
191
|
+
if (!mIsPosted) {
|
|
192
|
+
mIsPosted = true;
|
|
193
|
+
post();
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
private void post() {
|
|
198
|
+
ReactChoreographer.getInstance()
|
|
199
|
+
.postFrameCallback(ReactChoreographer.CallbackType.TIMERS_EVENTS, mCurrentFrameCallback);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
public void maybePostFromNonUI() {
|
|
203
|
+
if (mIsPosted) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// We should only hit this slow path when we receive events while the host activity is paused.
|
|
208
|
+
if (mReactContext.isOnUiQueueThread()) {
|
|
209
|
+
maybePost();
|
|
210
|
+
} else {
|
|
211
|
+
mReactContext.runOnUiQueueThread(
|
|
212
|
+
new Runnable() {
|
|
213
|
+
@Override
|
|
214
|
+
public void run() {
|
|
215
|
+
maybePost();
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Is this a misnomer? It's called "driveEventBeats" but then is just calls
|
|
224
|
+
* `onBatchEventDispatched` listeners? Practically, all that `onBatchEventDispatched` is used for
|
|
225
|
+
* in Fabric is to drive AsyncEventBeats.
|
|
226
|
+
*
|
|
227
|
+
* <p>If this class ships for Fabric, we should remove `driveEventBeats` from here entirely,
|
|
228
|
+
* because it no longer needs to be connected to this event dispatcher. We should/probably can
|
|
229
|
+
* also delete `onRequestEventBeat` entirely.
|
|
230
|
+
*/
|
|
231
|
+
private void driveEventBeats() {
|
|
232
|
+
for (BatchEventDispatchedListener listener : mPostEventDispatchListeners) {
|
|
233
|
+
listener.onBatchEventDispatched();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java
CHANGED
|
@@ -21,4 +21,12 @@ import com.facebook.react.bridge.WritableMap;
|
|
|
21
21
|
*/
|
|
22
22
|
public interface RCTModernEventEmitter extends RCTEventEmitter {
|
|
23
23
|
void receiveEvent(int surfaceId, int targetTag, String eventName, @Nullable WritableMap event);
|
|
24
|
+
|
|
25
|
+
void receiveEvent(
|
|
26
|
+
int surfaceId,
|
|
27
|
+
int targetTag,
|
|
28
|
+
String eventName,
|
|
29
|
+
boolean canCoalesceEvent,
|
|
30
|
+
int customCoalesceKey,
|
|
31
|
+
@Nullable WritableMap event);
|
|
24
32
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java
CHANGED
|
@@ -13,7 +13,7 @@ import androidx.annotation.Nullable;
|
|
|
13
13
|
import com.facebook.infer.annotation.Assertions;
|
|
14
14
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
15
15
|
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
16
|
-
import com.facebook.react.bridge.
|
|
16
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
17
17
|
import com.facebook.react.bridge.WritableArray;
|
|
18
18
|
import com.facebook.react.bridge.WritableMap;
|
|
19
19
|
import com.facebook.react.uimanager.common.UIManagerType;
|
|
@@ -59,6 +59,14 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
59
59
|
receiveEvent(-1, targetReactTag, eventName, event);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
@Override
|
|
63
|
+
public void receiveEvent(
|
|
64
|
+
int surfaceId, int targetTag, String eventName, @Nullable WritableMap event) {
|
|
65
|
+
// The two additional params here, `canCoalesceEvent` and `customCoalesceKey`, have no
|
|
66
|
+
// meaning outside of Fabric.
|
|
67
|
+
receiveEvent(surfaceId, targetTag, eventName, false, 0, event);
|
|
68
|
+
}
|
|
69
|
+
|
|
62
70
|
@Override
|
|
63
71
|
public void receiveTouches(
|
|
64
72
|
String eventName, WritableArray touches, WritableArray changedIndices) {
|
|
@@ -71,7 +79,7 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
71
79
|
} else if (uiManagerType == UIManagerType.DEFAULT && getEventEmitter(reactTag) != null) {
|
|
72
80
|
mRCTEventEmitter.receiveTouches(eventName, touches, changedIndices);
|
|
73
81
|
} else {
|
|
74
|
-
|
|
82
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
75
83
|
TAG,
|
|
76
84
|
new ReactNoCrashSoftException(
|
|
77
85
|
"Cannot find EventEmitter for receivedTouches: ReactTag["
|
|
@@ -92,7 +100,7 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
92
100
|
if (mReactContext.hasActiveReactInstance()) {
|
|
93
101
|
mRCTEventEmitter = mReactContext.getJSModule(RCTEventEmitter.class);
|
|
94
102
|
} else {
|
|
95
|
-
|
|
103
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
96
104
|
TAG,
|
|
97
105
|
new ReactNoCrashSoftException(
|
|
98
106
|
"Cannot get RCTEventEmitter from Context for reactTag: "
|
|
@@ -107,14 +115,20 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
107
115
|
|
|
108
116
|
@Override
|
|
109
117
|
public void receiveEvent(
|
|
110
|
-
int surfaceId,
|
|
118
|
+
int surfaceId,
|
|
119
|
+
int targetReactTag,
|
|
120
|
+
String eventName,
|
|
121
|
+
boolean canCoalesceEvent,
|
|
122
|
+
int customCoalesceKey,
|
|
123
|
+
@Nullable WritableMap event) {
|
|
111
124
|
@UIManagerType int uiManagerType = ViewUtil.getUIManagerType(targetReactTag);
|
|
112
125
|
if (uiManagerType == UIManagerType.FABRIC && mFabricEventEmitter != null) {
|
|
113
|
-
mFabricEventEmitter.receiveEvent(
|
|
126
|
+
mFabricEventEmitter.receiveEvent(
|
|
127
|
+
surfaceId, targetReactTag, eventName, canCoalesceEvent, customCoalesceKey, event);
|
|
114
128
|
} else if (uiManagerType == UIManagerType.DEFAULT && getEventEmitter(targetReactTag) != null) {
|
|
115
129
|
mRCTEventEmitter.receiveEvent(targetReactTag, eventName, event);
|
|
116
130
|
} else {
|
|
117
|
-
|
|
131
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
118
132
|
TAG,
|
|
119
133
|
new ReactNoCrashSoftException(
|
|
120
134
|
"Cannot find EventEmitter for receiveEvent: SurfaceId["
|