react-native 0.66.0-rc.4 → 0.67.0-rc.1
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/NativeAnimatedHelper.js +2 -2
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/components/AnimatedView.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +3 -34
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollView.js +17 -16
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/View/View.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +45 -80
- package/Libraries/Core/ExtendedError.js +0 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -4
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/Image/Image.ios.js +6 -0
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/RCTImageView.mm +4 -0
- package/Libraries/LogBox/Data/LogBoxData.js +18 -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/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
- package/Libraries/Pressability/Pressability.js +13 -13
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
- package/Libraries/ReactNative/AppRegistry.js +4 -2
- package/Libraries/Renderer/REVISION +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
- package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
- package/Libraries/Text/TextProps.js +1 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/README.md +1 -1
- package/React/Base/RCTBridge+Private.h +8 -0
- package/React/Base/RCTBridge.h +4 -0
- package/React/Base/RCTBridge.m +19 -7
- package/React/Base/RCTBridgeModule.h +2 -11
- package/React/Base/RCTBundleURLProvider.h +1 -1
- package/React/Base/RCTBundleURLProvider.mm +5 -3
- package/React/Base/RCTConstants.h +0 -6
- package/React/Base/RCTConstants.m +0 -15
- package/React/Base/RCTConvert.h +1 -1
- package/React/Base/RCTDefines.h +12 -3
- package/React/Base/RCTEventDispatcherProtocol.h +2 -0
- package/React/Base/RCTJSThread.h +29 -0
- package/React/Base/RCTJSThread.m +19 -0
- package/React/Base/RCTRootView.h +15 -0
- package/React/Base/RCTRootView.m +15 -0
- package/React/Base/RCTTouchHandler.m +1 -9
- package/React/Base/RCTUtils.h +3 -0
- package/React/Base/RCTUtils.m +14 -7
- package/React/Base/RCTVersion.m +2 -2
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
- package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
- package/React/CoreModules/RCTActionSheetManager.mm +14 -5
- package/React/CoreModules/RCTAppearance.mm +3 -1
- package/React/CoreModules/RCTDevLoadingView.mm +5 -10
- package/React/CoreModules/RCTDevSettings.mm +6 -6
- package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -4
- package/React/CoreModules/RCTEventDispatcher.mm +5 -0
- package/React/CoreModules/RCTExceptionsManager.mm +11 -24
- package/React/CoreModules/RCTPerfMonitor.mm +9 -4
- package/React/CoreModules/RCTRedBox.mm +1 -5
- package/React/CxxBridge/RCTCxxBridge.mm +18 -1
- package/React/DevSupport/RCTPackagerConnection.h +3 -0
- package/React/DevSupport/RCTPackagerConnection.mm +9 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
- package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
- package/React/Fabric/RCTScheduler.mm +12 -5
- package/React/Fabric/RCTSurfacePresenter.mm +0 -4
- package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
- package/React/React-RCTFabric.podspec +0 -1
- package/React/Views/RCTFont.mm +54 -38
- package/React/Views/RCTView.m +1 -6
- package/React/Views/RCTViewManager.m +3 -2
- package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
- package/React/Views/ScrollView/RCTScrollView.m +5 -15
- package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
- package/React/Views/UIView+React.m +2 -11
- package/React-Core.podspec +0 -1
- package/ReactAndroid/build.gradle +11 -5
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
- package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +46 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
- 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/i18nmanager/I18nManagerModule.java +7 -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/ForwardingCookieHandler.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
- 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 +94 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
- 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 +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
- 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 +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
- package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
- package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
- package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
- package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
- package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
- package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
- package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
- package/ReactCommon/React-Fabric.podspec +9 -1
- package/ReactCommon/better/BUCK +0 -6
- package/ReactCommon/callinvoker/BUCK +2 -8
- package/ReactCommon/cxxreact/BUCK +1 -16
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
- package/ReactCommon/jsi/BUCK +0 -9
- package/ReactCommon/jsinspector/BUCK +0 -5
- package/ReactCommon/logger/BUCK +0 -5
- package/ReactCommon/react/config/BUCK +0 -6
- package/ReactCommon/react/debug/BUCK +0 -6
- package/ReactCommon/react/nativemodule/core/BUCK +0 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
- package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
- package/ReactCommon/react/renderer/animations/BUCK +1 -4
- package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
- 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 +3 -3
- 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/BUCK +0 -6
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
- package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
- package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
- package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
- package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
- package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
- package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/root/BUCK +0 -6
- package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/text/BUCK +0 -6
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
- package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
- package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
- package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/view/BUCK +0 -6
- package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
- package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
- package/ReactCommon/react/renderer/core/BUCK +2 -6
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
- package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
- package/ReactCommon/react/renderer/core/Props.h +1 -0
- package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
- package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
- package/ReactCommon/react/renderer/debug/BUCK +0 -6
- package/ReactCommon/react/renderer/element/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
- package/ReactCommon/react/renderer/graphics/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
- package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
- package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
- package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
- package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
- package/ReactCommon/react/renderer/mounting/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
- package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
- package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
- package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
- package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
- package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
- package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
- package/ReactCommon/react/renderer/timeline/BUCK +6 -12
- package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
- package/ReactCommon/react/test_utils/BUCK +3 -6
- package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
- package/ReactCommon/react/utils/BUCK +0 -6
- package/ReactCommon/react/utils/ContextContainer.h +0 -27
- package/ReactCommon/reactperflogger/BUCK +0 -4
- package/ReactCommon/runtimeexecutor/BUCK +0 -6
- package/ReactCommon/yoga/BUCK +1 -5
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.aar → 0.67.0-rc.1/react-native-0.67.0-rc.1.aar} +0 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.module → 0.67.0-rc.1/react-native-0.67.0-rc.1.module} +16 -17
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.pom → 0.67.0-rc.1/react-native-0.67.0-rc.1.pom} +2 -2
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- 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 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/flow/global.js +45 -0
- package/index.js +15 -10
- package/jest/mockModal.js +31 -0
- package/jest/setup.js +5 -3
- package/package.json +8 -9
- package/react.gradle +53 -18
- package/scripts/find-node.sh +13 -0
- package/scripts/generate-specs-cli.js +18 -0
- package/scripts/ios-configure-glog.sh +4 -0
- package/scripts/react-native-xcode.sh +7 -7
- package/scripts/react_native_pods.rb +202 -70
- package/template/Gemfile +6 -0
- package/template/Gemfile.lock +100 -0
- package/template/_bundle/config +2 -0
- package/template/_flowconfig +1 -1
- package/template/_ruby-version +1 -0
- package/template/android/app/build.gradle +1 -1
- package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
- package/template/android/app/src/main/res/values/styles.xml +1 -0
- package/template/android/build.gradle +7 -3
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradle.properties +1 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
- package/template/ios/Podfile +0 -1
- package/template/package.json +1 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/glog.podspec +0 -1
- 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/StaticContainer.react.js +0 -51
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -54
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
- package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
- 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/runtimescheduler/BUCK +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha512 +0 -1
- package/scripts/generate-specs.sh +0 -99
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -9,12 +9,13 @@ package com.facebook.react.fabric;
|
|
|
9
9
|
|
|
10
10
|
import android.annotation.SuppressLint;
|
|
11
11
|
import androidx.annotation.NonNull;
|
|
12
|
+
import androidx.annotation.Nullable;
|
|
12
13
|
import com.facebook.jni.HybridData;
|
|
13
14
|
import com.facebook.proguard.annotations.DoNotStrip;
|
|
14
15
|
import com.facebook.react.bridge.NativeMap;
|
|
15
16
|
import com.facebook.react.bridge.ReadableNativeMap;
|
|
16
17
|
import com.facebook.react.bridge.RuntimeExecutor;
|
|
17
|
-
import com.facebook.react.bridge.
|
|
18
|
+
import com.facebook.react.bridge.RuntimeScheduler;
|
|
18
19
|
import com.facebook.react.fabric.events.EventBeatManager;
|
|
19
20
|
import com.facebook.react.fabric.events.EventEmitterWrapper;
|
|
20
21
|
import com.facebook.react.uimanager.PixelUtil;
|
|
@@ -37,9 +38,9 @@ public class Binding {
|
|
|
37
38
|
|
|
38
39
|
private native void installFabricUIManager(
|
|
39
40
|
RuntimeExecutor runtimeExecutor,
|
|
41
|
+
RuntimeScheduler runtimeScheduler,
|
|
40
42
|
Object uiManager,
|
|
41
43
|
EventBeatManager eventBeatManager,
|
|
42
|
-
MessageQueueThread jsMessageQueueThread,
|
|
43
44
|
ComponentFactory componentsRegistry,
|
|
44
45
|
Object reactNativeConfig);
|
|
45
46
|
|
|
@@ -83,17 +84,17 @@ public class Binding {
|
|
|
83
84
|
|
|
84
85
|
public void register(
|
|
85
86
|
@NonNull RuntimeExecutor runtimeExecutor,
|
|
87
|
+
@Nullable RuntimeScheduler runtimeScheduler,
|
|
86
88
|
@NonNull FabricUIManager fabricUIManager,
|
|
87
89
|
@NonNull EventBeatManager eventBeatManager,
|
|
88
|
-
@NonNull MessageQueueThread jsMessageQueueThread,
|
|
89
90
|
@NonNull ComponentFactory componentFactory,
|
|
90
91
|
@NonNull ReactNativeConfig reactNativeConfig) {
|
|
91
92
|
fabricUIManager.setBinding(this);
|
|
92
93
|
installFabricUIManager(
|
|
93
94
|
runtimeExecutor,
|
|
95
|
+
runtimeScheduler,
|
|
94
96
|
fabricUIManager,
|
|
95
97
|
eventBeatManager,
|
|
96
|
-
jsMessageQueueThread,
|
|
97
98
|
componentFactory,
|
|
98
99
|
reactNativeConfig);
|
|
99
100
|
|
|
@@ -11,7 +11,6 @@ import androidx.annotation.NonNull;
|
|
|
11
11
|
import com.facebook.react.bridge.JSIModuleProvider;
|
|
12
12
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
13
13
|
import com.facebook.react.bridge.UIManager;
|
|
14
|
-
import com.facebook.react.bridge.queue.MessageQueueThread;
|
|
15
14
|
import com.facebook.react.common.mapbuffer.ReadableMapBufferSoLoader;
|
|
16
15
|
import com.facebook.react.config.ReactFeatureFlags;
|
|
17
16
|
import com.facebook.react.fabric.events.EventBeatManager;
|
|
@@ -41,23 +40,20 @@ public class FabricJSIModuleProvider implements JSIModuleProvider<UIManager> {
|
|
|
41
40
|
Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricJSIModuleProvider.get");
|
|
42
41
|
final EventBeatManager eventBeatManager = new EventBeatManager(mReactApplicationContext);
|
|
43
42
|
final FabricUIManager uiManager = createUIManager(eventBeatManager);
|
|
43
|
+
|
|
44
44
|
Systrace.beginSection(
|
|
45
45
|
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricJSIModuleProvider.registerBinding");
|
|
46
46
|
final Binding binding = new Binding();
|
|
47
|
+
|
|
47
48
|
if (ReactFeatureFlags.enableEagerInitializeMapBufferSoFile) {
|
|
48
49
|
ReadableMapBufferSoLoader.staticInit();
|
|
49
50
|
}
|
|
50
|
-
MessageQueueThread jsMessageQueueThread =
|
|
51
|
-
mReactApplicationContext
|
|
52
|
-
.getCatalystInstance()
|
|
53
|
-
.getReactQueueConfiguration()
|
|
54
|
-
.getJSQueueThread();
|
|
55
51
|
|
|
56
52
|
binding.register(
|
|
57
53
|
mReactApplicationContext.getCatalystInstance().getRuntimeExecutor(),
|
|
54
|
+
mReactApplicationContext.getCatalystInstance().getRuntimeScheduler(),
|
|
58
55
|
uiManager,
|
|
59
56
|
eventBeatManager,
|
|
60
|
-
jsMessageQueueThread,
|
|
61
57
|
mComponentFactory,
|
|
62
58
|
mConfig);
|
|
63
59
|
|
|
@@ -77,6 +77,7 @@ import com.facebook.react.uimanager.ThemedReactContext;
|
|
|
77
77
|
import com.facebook.react.uimanager.UIManagerHelper;
|
|
78
78
|
import com.facebook.react.uimanager.ViewManagerPropertyUpdater;
|
|
79
79
|
import com.facebook.react.uimanager.ViewManagerRegistry;
|
|
80
|
+
import com.facebook.react.uimanager.events.EventCategoryDef;
|
|
80
81
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
81
82
|
import com.facebook.react.uimanager.events.EventDispatcherImpl;
|
|
82
83
|
import com.facebook.react.uimanager.events.LockFreeEventDispatcherImpl;
|
|
@@ -627,6 +628,15 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
627
628
|
public int getSurfaceId() {
|
|
628
629
|
return View.NO_ID;
|
|
629
630
|
}
|
|
631
|
+
|
|
632
|
+
@Override
|
|
633
|
+
public String toString() {
|
|
634
|
+
String propsString =
|
|
635
|
+
IS_DEVELOPMENT_ENVIRONMENT
|
|
636
|
+
? (props != null ? props.toHashMap().toString() : "<null>")
|
|
637
|
+
: "<hidden>";
|
|
638
|
+
return String.format("SYNC UPDATE PROPS [%d]: %s", reactTag, propsString);
|
|
639
|
+
}
|
|
630
640
|
};
|
|
631
641
|
|
|
632
642
|
// If the reactTag exists, we assume that it might at the end of the next
|
|
@@ -829,6 +839,23 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
829
839
|
receiveEvent(surfaceId, reactTag, eventName, false, 0, params);
|
|
830
840
|
}
|
|
831
841
|
|
|
842
|
+
public void receiveEvent(
|
|
843
|
+
int surfaceId,
|
|
844
|
+
int reactTag,
|
|
845
|
+
String eventName,
|
|
846
|
+
boolean canCoalesceEvent,
|
|
847
|
+
int customCoalesceKey,
|
|
848
|
+
@Nullable WritableMap params) {
|
|
849
|
+
receiveEvent(
|
|
850
|
+
surfaceId,
|
|
851
|
+
reactTag,
|
|
852
|
+
eventName,
|
|
853
|
+
canCoalesceEvent,
|
|
854
|
+
customCoalesceKey,
|
|
855
|
+
params,
|
|
856
|
+
EventCategoryDef.UNSPECIFIED);
|
|
857
|
+
}
|
|
858
|
+
|
|
832
859
|
/**
|
|
833
860
|
* receiveEvent API that emits an event to C++. If `canCoalesceEvent` is true, that signals that
|
|
834
861
|
* C++ may coalesce the event optionally. Otherwise, coalescing can happen in Java before
|
|
@@ -842,6 +869,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
842
869
|
* @param canCoalesceEvent
|
|
843
870
|
* @param customCoalesceKey
|
|
844
871
|
* @param params
|
|
872
|
+
* @param eventCategory
|
|
845
873
|
*/
|
|
846
874
|
public void receiveEvent(
|
|
847
875
|
int surfaceId,
|
|
@@ -849,7 +877,8 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
849
877
|
String eventName,
|
|
850
878
|
boolean canCoalesceEvent,
|
|
851
879
|
int customCoalesceKey,
|
|
852
|
-
@Nullable WritableMap params
|
|
880
|
+
@Nullable WritableMap params,
|
|
881
|
+
@EventCategoryDef int eventCategory) {
|
|
853
882
|
if (ReactBuildConfig.DEBUG && surfaceId == View.NO_ID) {
|
|
854
883
|
FLog.d(TAG, "Emitted event without surfaceId: [%d] %s", reactTag, eventName);
|
|
855
884
|
}
|
|
@@ -870,7 +899,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
870
899
|
if (canCoalesceEvent) {
|
|
871
900
|
eventEmitter.invokeUnique(eventName, params, customCoalesceKey);
|
|
872
901
|
} else {
|
|
873
|
-
eventEmitter.invoke(eventName, params);
|
|
902
|
+
eventEmitter.invoke(eventName, params, eventCategory);
|
|
874
903
|
}
|
|
875
904
|
}
|
|
876
905
|
|
|
@@ -996,6 +1025,11 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
996
1025
|
public int getSurfaceId() {
|
|
997
1026
|
return surfaceId;
|
|
998
1027
|
}
|
|
1028
|
+
|
|
1029
|
+
@Override
|
|
1030
|
+
public String toString() {
|
|
1031
|
+
return String.format("SET_JS_RESPONDER [%d] [surface:%d]", reactTag, surfaceId);
|
|
1032
|
+
}
|
|
999
1033
|
});
|
|
1000
1034
|
}
|
|
1001
1035
|
|
|
@@ -1015,6 +1049,11 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
|
|
1015
1049
|
public int getSurfaceId() {
|
|
1016
1050
|
return View.NO_ID;
|
|
1017
1051
|
}
|
|
1052
|
+
|
|
1053
|
+
@Override
|
|
1054
|
+
public String toString() {
|
|
1055
|
+
return "CLEAR_JS_RESPONDER";
|
|
1056
|
+
}
|
|
1018
1057
|
});
|
|
1019
1058
|
}
|
|
1020
1059
|
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java
CHANGED
|
@@ -16,6 +16,7 @@ import com.facebook.react.bridge.NativeMap;
|
|
|
16
16
|
import com.facebook.react.bridge.WritableMap;
|
|
17
17
|
import com.facebook.react.bridge.WritableNativeMap;
|
|
18
18
|
import com.facebook.react.fabric.FabricSoLoader;
|
|
19
|
+
import com.facebook.react.uimanager.events.EventCategoryDef;
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* This class holds reference to the C++ EventEmitter object. Instances of this class are created on
|
|
@@ -36,7 +37,8 @@ public class EventEmitterWrapper {
|
|
|
36
37
|
mHybridData = initHybrid();
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
private native void invokeEvent(
|
|
40
|
+
private native void invokeEvent(
|
|
41
|
+
@NonNull String eventName, @NonNull NativeMap params, @EventCategoryDef int category);
|
|
40
42
|
|
|
41
43
|
private native void invokeUniqueEvent(
|
|
42
44
|
@NonNull String eventName, @NonNull NativeMap params, int customCoalesceKey);
|
|
@@ -47,12 +49,15 @@ public class EventEmitterWrapper {
|
|
|
47
49
|
* @param eventName {@link String} name of the event to execute.
|
|
48
50
|
* @param params {@link WritableMap} payload of the event
|
|
49
51
|
*/
|
|
50
|
-
public synchronized void invoke(
|
|
52
|
+
public synchronized void invoke(
|
|
53
|
+
@NonNull String eventName,
|
|
54
|
+
@Nullable WritableMap params,
|
|
55
|
+
@EventCategoryDef int eventCategory) {
|
|
51
56
|
if (!isValid()) {
|
|
52
57
|
return;
|
|
53
58
|
}
|
|
54
59
|
NativeMap payload = params == null ? new WritableNativeMap() : (NativeMap) params;
|
|
55
|
-
invokeEvent(eventName, payload);
|
|
60
|
+
invokeEvent(eventName, payload, eventCategory);
|
|
56
61
|
}
|
|
57
62
|
|
|
58
63
|
/**
|
|
@@ -10,8 +10,6 @@ package com.facebook.react.fabric.events;
|
|
|
10
10
|
import static com.facebook.react.uimanager.events.TouchesHelper.CHANGED_TOUCHES_KEY;
|
|
11
11
|
import static com.facebook.react.uimanager.events.TouchesHelper.TARGET_KEY;
|
|
12
12
|
import static com.facebook.react.uimanager.events.TouchesHelper.TARGET_SURFACE_KEY;
|
|
13
|
-
import static com.facebook.react.uimanager.events.TouchesHelper.TOP_TOUCH_CANCEL_KEY;
|
|
14
|
-
import static com.facebook.react.uimanager.events.TouchesHelper.TOP_TOUCH_END_KEY;
|
|
15
13
|
import static com.facebook.react.uimanager.events.TouchesHelper.TOUCHES_KEY;
|
|
16
14
|
|
|
17
15
|
import android.util.Pair;
|
|
@@ -24,7 +22,9 @@ import com.facebook.react.bridge.WritableMap;
|
|
|
24
22
|
import com.facebook.react.bridge.WritableNativeArray;
|
|
25
23
|
import com.facebook.react.bridge.WritableNativeMap;
|
|
26
24
|
import com.facebook.react.fabric.FabricUIManager;
|
|
25
|
+
import com.facebook.react.uimanager.events.EventCategoryDef;
|
|
27
26
|
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
|
|
27
|
+
import com.facebook.react.uimanager.events.TouchEventType;
|
|
28
28
|
import com.facebook.systrace.Systrace;
|
|
29
29
|
import java.util.HashSet;
|
|
30
30
|
import java.util.Set;
|
|
@@ -47,7 +47,7 @@ public class FabricEventEmitter implements RCTModernEventEmitter {
|
|
|
47
47
|
@Override
|
|
48
48
|
public void receiveEvent(
|
|
49
49
|
int surfaceId, int reactTag, String eventName, @Nullable WritableMap params) {
|
|
50
|
-
receiveEvent(surfaceId, reactTag, eventName, false, 0, params);
|
|
50
|
+
receiveEvent(surfaceId, reactTag, eventName, false, 0, params, EventCategoryDef.UNSPECIFIED);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
@Override
|
|
@@ -57,29 +57,46 @@ public class FabricEventEmitter implements RCTModernEventEmitter {
|
|
|
57
57
|
String eventName,
|
|
58
58
|
boolean canCoalesceEvent,
|
|
59
59
|
int customCoalesceKey,
|
|
60
|
-
@Nullable WritableMap params
|
|
60
|
+
@Nullable WritableMap params,
|
|
61
|
+
@EventCategoryDef int category) {
|
|
61
62
|
Systrace.beginSection(
|
|
62
63
|
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE,
|
|
63
64
|
"FabricEventEmitter.receiveEvent('" + eventName + "')");
|
|
64
65
|
mUIManager.receiveEvent(
|
|
65
|
-
surfaceId, reactTag, eventName, canCoalesceEvent, customCoalesceKey, params);
|
|
66
|
+
surfaceId, reactTag, eventName, canCoalesceEvent, customCoalesceKey, params, category);
|
|
66
67
|
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Processes touches in a JS compatible way and send it to Fabric core
|
|
72
|
+
*
|
|
73
|
+
* @param eventName the event name (see {@link TouchEventType})
|
|
74
|
+
* @param touches all the touch data extracted from MotionEvent
|
|
75
|
+
* @param changedIndices the indices of the pointers that changed (MOVE/CANCEL includes all
|
|
76
|
+
* touches, START/END only the one that was added/removed)
|
|
77
|
+
*/
|
|
69
78
|
@Override
|
|
70
79
|
public void receiveTouches(
|
|
71
|
-
@NonNull String
|
|
80
|
+
@NonNull String eventName,
|
|
72
81
|
@NonNull WritableArray touches,
|
|
73
82
|
@NonNull WritableArray changedIndices) {
|
|
83
|
+
Systrace.beginSection(
|
|
84
|
+
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE,
|
|
85
|
+
"FabricEventEmitter.receiveTouches('" + eventName + "')");
|
|
86
|
+
|
|
87
|
+
boolean isFinalEvent =
|
|
88
|
+
TouchEventType.END.getJsName().equalsIgnoreCase(eventName)
|
|
89
|
+
|| TouchEventType.CANCEL.getJsName().equalsIgnoreCase(eventName);
|
|
90
|
+
|
|
74
91
|
Pair<WritableArray, WritableArray> result =
|
|
75
|
-
|
|
76
|
-
|| TOP_TOUCH_CANCEL_KEY.equalsIgnoreCase(eventTopLevelType)
|
|
92
|
+
isFinalEvent
|
|
77
93
|
? removeTouchesAtIndices(touches, changedIndices)
|
|
78
94
|
: touchSubsequence(touches, changedIndices);
|
|
79
95
|
|
|
80
96
|
WritableArray changedTouches = result.first;
|
|
81
97
|
touches = result.second;
|
|
82
98
|
|
|
99
|
+
int eventCategory = getTouchCategory(eventName);
|
|
83
100
|
for (int jj = 0; jj < changedTouches.size(); jj++) {
|
|
84
101
|
WritableMap touch = getWritableMap(changedTouches.getMap(jj));
|
|
85
102
|
// Touch objects can fulfill the role of `DOM` `Event` objects if we set
|
|
@@ -97,8 +114,10 @@ public class FabricEventEmitter implements RCTModernEventEmitter {
|
|
|
97
114
|
rootNodeID = targetReactTag;
|
|
98
115
|
}
|
|
99
116
|
|
|
100
|
-
receiveEvent(targetSurfaceId, rootNodeID,
|
|
117
|
+
receiveEvent(targetSurfaceId, rootNodeID, eventName, false, 0, touch, eventCategory);
|
|
101
118
|
}
|
|
119
|
+
|
|
120
|
+
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
|
|
102
121
|
}
|
|
103
122
|
|
|
104
123
|
/** TODO T31905686 optimize this to avoid copying arrays */
|
|
@@ -174,4 +193,19 @@ public class FabricEventEmitter implements RCTModernEventEmitter {
|
|
|
174
193
|
map.merge(readableMap);
|
|
175
194
|
return map;
|
|
176
195
|
}
|
|
196
|
+
|
|
197
|
+
@EventCategoryDef
|
|
198
|
+
private static int getTouchCategory(String touchEventType) {
|
|
199
|
+
int category = EventCategoryDef.UNSPECIFIED;
|
|
200
|
+
if (TouchEventType.MOVE.getJsName().equals(touchEventType)) {
|
|
201
|
+
category = EventCategoryDef.CONTINUOUS;
|
|
202
|
+
} else if (TouchEventType.START.getJsName().equals(touchEventType)) {
|
|
203
|
+
category = EventCategoryDef.CONTINUOUS_START;
|
|
204
|
+
} else if (TouchEventType.END.getJsName().equals(touchEventType)
|
|
205
|
+
|| TouchEventType.CANCEL.getJsName().equals(touchEventType)) {
|
|
206
|
+
category = EventCategoryDef.CONTINUOUS_END;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return category;
|
|
210
|
+
}
|
|
177
211
|
}
|
|
@@ -11,7 +11,7 @@ LOCAL_MODULE := fabricjni
|
|
|
11
11
|
|
|
12
12
|
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
|
|
13
13
|
|
|
14
|
-
LOCAL_SHARED_LIBRARIES := libjsi libreactconfig librrc_slider librrc_progressbar librrc_switch librrc_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core react_render_componentregistry librrc_view librrc_unimplementedview librrc_root librrc_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_codegen_rncore rrc_text librrc_image librrc_textinput libreact_debug libreact_render_mapbuffer libmapbufferjni libreact_render_telemetry
|
|
14
|
+
LOCAL_SHARED_LIBRARIES := libjsi libreactconfig librrc_slider librrc_progressbar librrc_switch librrc_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core react_render_componentregistry librrc_view librrc_unimplementedview librrc_root librrc_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_codegen_rncore rrc_text librrc_image librrc_textinput libreact_debug libreact_render_mapbuffer libmapbufferjni libreact_render_telemetry libreact_render_runtimescheduler
|
|
15
15
|
|
|
16
16
|
LOCAL_STATIC_LIBRARIES :=
|
|
17
17
|
|
|
@@ -56,6 +56,7 @@ $(call import-module,react/renderer/graphics)
|
|
|
56
56
|
$(call import-module,react/renderer/imagemanager)
|
|
57
57
|
$(call import-module,react/renderer/mapbuffer)
|
|
58
58
|
$(call import-module,react/renderer/mounting)
|
|
59
|
+
$(call import-module,react/renderer/runtimescheduler)
|
|
59
60
|
$(call import-module,react/renderer/scheduler)
|
|
60
61
|
$(call import-module,react/renderer/templateprocessor)
|
|
61
62
|
$(call import-module,react/renderer/textlayoutmanager)
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
#include <jsi/jsi.h>
|
|
9
|
+
#include <react/renderer/core/EventBeat.h>
|
|
10
|
+
#include <react/renderer/uimanager/primitives.h>
|
|
11
|
+
|
|
12
|
+
#include "AsyncEventBeatV2.h"
|
|
13
|
+
|
|
14
|
+
namespace facebook::react {
|
|
15
|
+
|
|
16
|
+
AsyncEventBeatV2::AsyncEventBeatV2(
|
|
17
|
+
EventBeat::SharedOwnerBox const &ownerBox,
|
|
18
|
+
EventBeatManager *eventBeatManager,
|
|
19
|
+
RuntimeExecutor runtimeExecutor,
|
|
20
|
+
jni::global_ref<jobject> javaUIManager)
|
|
21
|
+
: EventBeat(ownerBox),
|
|
22
|
+
eventBeatManager_(eventBeatManager),
|
|
23
|
+
runtimeExecutor_(runtimeExecutor),
|
|
24
|
+
javaUIManager_(javaUIManager) {
|
|
25
|
+
eventBeatManager->addObserver(*this);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
AsyncEventBeatV2::~AsyncEventBeatV2() {
|
|
29
|
+
eventBeatManager_->removeObserver(*this);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
void AsyncEventBeatV2::tick() const {
|
|
33
|
+
if (!isRequested_ || isBeatCallbackScheduled_) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
isRequested_ = false;
|
|
38
|
+
isBeatCallbackScheduled_ = true;
|
|
39
|
+
|
|
40
|
+
runtimeExecutor_([this, ownerBox = ownerBox_](jsi::Runtime &runtime) {
|
|
41
|
+
isBeatCallbackScheduled_ = false;
|
|
42
|
+
auto owner = ownerBox->owner.lock();
|
|
43
|
+
if (!owner) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (beatCallback_) {
|
|
48
|
+
beatCallback_(runtime);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
void AsyncEventBeatV2::induce() const {
|
|
54
|
+
tick();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void AsyncEventBeatV2::request() const {
|
|
58
|
+
bool alreadyRequested = isRequested_;
|
|
59
|
+
EventBeat::request();
|
|
60
|
+
if (!alreadyRequested) {
|
|
61
|
+
// Notifies java side that an event will be dispatched (e.g. LayoutEvent)
|
|
62
|
+
static auto onRequestEventBeat =
|
|
63
|
+
jni::findClassStatic("com/facebook/react/fabric/FabricUIManager")
|
|
64
|
+
->getMethod<void()>("onRequestEventBeat");
|
|
65
|
+
onRequestEventBeat(javaUIManager_);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <react/renderer/core/EventBeat.h>
|
|
11
|
+
|
|
12
|
+
#include "EventBeatManager.h"
|
|
13
|
+
|
|
14
|
+
namespace facebook::react {
|
|
15
|
+
|
|
16
|
+
class AsyncEventBeatV2 final : public EventBeat,
|
|
17
|
+
public EventBeatManagerObserver {
|
|
18
|
+
public:
|
|
19
|
+
AsyncEventBeatV2(
|
|
20
|
+
EventBeat::SharedOwnerBox const &ownerBox,
|
|
21
|
+
EventBeatManager *eventBeatManager,
|
|
22
|
+
RuntimeExecutor runtimeExecutor,
|
|
23
|
+
jni::global_ref<jobject> javaUIManager);
|
|
24
|
+
|
|
25
|
+
~AsyncEventBeatV2() override;
|
|
26
|
+
|
|
27
|
+
void tick() const override;
|
|
28
|
+
|
|
29
|
+
void induce() const override;
|
|
30
|
+
|
|
31
|
+
void request() const override;
|
|
32
|
+
|
|
33
|
+
private:
|
|
34
|
+
EventBeatManager *eventBeatManager_;
|
|
35
|
+
RuntimeExecutor runtimeExecutor_;
|
|
36
|
+
jni::global_ref<jobject> javaUIManager_;
|
|
37
|
+
mutable std::atomic<bool> isBeatCallbackScheduled_{false};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
} // namespace facebook::react
|
|
@@ -11,12 +11,8 @@ rn_xplat_cxx_library(
|
|
|
11
11
|
],
|
|
12
12
|
prefix = "react/fabric",
|
|
13
13
|
),
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"-frtti",
|
|
17
|
-
"-std=c++17",
|
|
18
|
-
"-Wall",
|
|
19
|
-
],
|
|
14
|
+
compiler_flags_enable_exceptions = True,
|
|
15
|
+
compiler_flags_enable_rtti = True, # dynamic_cast used within Binding.cpp
|
|
20
16
|
fbandroid_allow_jni_merging = True,
|
|
21
17
|
labels = ["supermodule:xplat/default/public.react_native.infra"],
|
|
22
18
|
platforms = ANDROID,
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "Binding.h"
|
|
9
9
|
#include "AsyncEventBeat.h"
|
|
10
|
+
#include "AsyncEventBeatV2.h"
|
|
10
11
|
#include "EventEmitterWrapper.h"
|
|
11
12
|
#include "ReactNativeConfigHolder.h"
|
|
12
13
|
#include "StateWrapperImpl.h"
|
|
@@ -242,8 +243,9 @@ Binding::getInspectorDataForInstance(
|
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
EventEmitterWrapper *cEventEmitter = cthis(eventEmitterWrapper);
|
|
245
|
-
InspectorData data =
|
|
246
|
-
|
|
246
|
+
InspectorData data = scheduler->getInspectorDataForInstance(
|
|
247
|
+
enableEventEmitterRawPointer_ ? *cEventEmitter->eventEmitterPointer
|
|
248
|
+
: *cEventEmitter->eventEmitter);
|
|
247
249
|
|
|
248
250
|
folly::dynamic result = folly::dynamic::object;
|
|
249
251
|
result["fileName"] = data.fileName;
|
|
@@ -493,9 +495,9 @@ bool isMapBufferSerializationEnabled() {
|
|
|
493
495
|
|
|
494
496
|
void Binding::installFabricUIManager(
|
|
495
497
|
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
|
|
498
|
+
jni::alias_ref<JRuntimeScheduler::javaobject> runtimeSchedulerHolder,
|
|
496
499
|
jni::alias_ref<jobject> javaUIManager,
|
|
497
500
|
EventBeatManager *eventBeatManager,
|
|
498
|
-
jni::alias_ref<JavaMessageQueueThread::javaobject> jsMessageQueueThread,
|
|
499
501
|
ComponentFactory *componentsRegistry,
|
|
500
502
|
jni::alias_ref<jobject> reactNativeConfig) {
|
|
501
503
|
SystraceSection s("FabricUIManagerBinding::installFabricUIManager");
|
|
@@ -506,6 +508,12 @@ void Binding::installFabricUIManager(
|
|
|
506
508
|
enableFabricLogs_ =
|
|
507
509
|
config->getBool("react_fabric:enabled_android_fabric_logs");
|
|
508
510
|
|
|
511
|
+
disableRevisionCheckForPreallocation_ =
|
|
512
|
+
config->getBool("react_fabric:disable_revision_check_for_preallocation");
|
|
513
|
+
|
|
514
|
+
enableEventEmitterRawPointer_ =
|
|
515
|
+
config->getBool("react_fabric:enable_event_emitter_wrapper_raw_pointer");
|
|
516
|
+
|
|
509
517
|
if (enableFabricLogs_) {
|
|
510
518
|
LOG(WARNING) << "Binding::installFabricUIManager() was called (address: "
|
|
511
519
|
<< this << ").";
|
|
@@ -523,26 +531,54 @@ void Binding::installFabricUIManager(
|
|
|
523
531
|
ContextContainer::Shared contextContainer =
|
|
524
532
|
std::make_shared<ContextContainer>();
|
|
525
533
|
|
|
526
|
-
auto sharedJSMessageQueueThread =
|
|
527
|
-
std::make_shared<JMessageQueueThread>(jsMessageQueueThread);
|
|
528
534
|
auto runtimeExecutor = runtimeExecutorHolder->cthis()->get();
|
|
529
535
|
|
|
536
|
+
if (runtimeSchedulerHolder) {
|
|
537
|
+
auto runtimeScheduler = runtimeSchedulerHolder->cthis()->get().lock();
|
|
538
|
+
if (runtimeScheduler) {
|
|
539
|
+
runtimeScheduler->setEnableYielding(config->getBool(
|
|
540
|
+
"react_native_new_architecture:runtimescheduler_enable_yielding_android"));
|
|
541
|
+
runtimeExecutor =
|
|
542
|
+
[runtimeScheduler](
|
|
543
|
+
std::function<void(jsi::Runtime & runtime)> &&callback) {
|
|
544
|
+
runtimeScheduler->scheduleWork(std::move(callback));
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
auto enableV2AsynchronousEventBeat =
|
|
550
|
+
config->getBool("react_fabric:enable_asynchronous_event_beat_v2_android");
|
|
551
|
+
|
|
530
552
|
// TODO: T31905686 Create synchronous Event Beat
|
|
531
553
|
jni::global_ref<jobject> localJavaUIManager = javaUIManager_;
|
|
532
554
|
EventBeat::Factory synchronousBeatFactory =
|
|
533
|
-
[eventBeatManager,
|
|
534
|
-
|
|
555
|
+
[eventBeatManager,
|
|
556
|
+
runtimeExecutor,
|
|
557
|
+
localJavaUIManager,
|
|
558
|
+
enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
|
|
535
559
|
-> std::unique_ptr<EventBeat> {
|
|
536
|
-
|
|
537
|
-
|
|
560
|
+
if (enableV2AsynchronousEventBeat) {
|
|
561
|
+
return std::make_unique<AsyncEventBeatV2>(
|
|
562
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
563
|
+
} else {
|
|
564
|
+
return std::make_unique<AsyncEventBeat>(
|
|
565
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
566
|
+
}
|
|
538
567
|
};
|
|
539
568
|
|
|
540
569
|
EventBeat::Factory asynchronousBeatFactory =
|
|
541
|
-
[eventBeatManager,
|
|
542
|
-
|
|
570
|
+
[eventBeatManager,
|
|
571
|
+
runtimeExecutor,
|
|
572
|
+
localJavaUIManager,
|
|
573
|
+
enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
|
|
543
574
|
-> std::unique_ptr<EventBeat> {
|
|
544
|
-
|
|
545
|
-
|
|
575
|
+
if (enableV2AsynchronousEventBeat) {
|
|
576
|
+
return std::make_unique<AsyncEventBeatV2>(
|
|
577
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
578
|
+
} else {
|
|
579
|
+
return std::make_unique<AsyncEventBeat>(
|
|
580
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
581
|
+
}
|
|
546
582
|
};
|
|
547
583
|
|
|
548
584
|
contextContainer->insert("ReactNativeConfig", config);
|
|
@@ -573,8 +609,8 @@ void Binding::installFabricUIManager(
|
|
|
573
609
|
toolbox.backgroundExecutor = backgroundExecutor_->get();
|
|
574
610
|
}
|
|
575
611
|
|
|
576
|
-
animationDriver_ =
|
|
577
|
-
|
|
612
|
+
animationDriver_ = std::make_shared<LayoutAnimationDriver>(
|
|
613
|
+
runtimeExecutor, contextContainer, this);
|
|
578
614
|
scheduler_ = std::make_shared<Scheduler>(
|
|
579
615
|
toolbox, (animationDriver_ ? animationDriver_.get() : nullptr), this);
|
|
580
616
|
}
|
|
@@ -610,16 +646,19 @@ inline local_ref<ReadableArray::javaobject> castReadableArray(
|
|
|
610
646
|
|
|
611
647
|
// TODO: this method will be removed when binding for components are code-gen
|
|
612
648
|
local_ref<JString> getPlatformComponentName(const ShadowView &shadowView) {
|
|
613
|
-
|
|
614
|
-
auto newViewProps =
|
|
615
|
-
std::dynamic_pointer_cast<const ScrollViewProps>(shadowView.props);
|
|
649
|
+
static std::string scrollViewComponentName = std::string("ScrollView");
|
|
616
650
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
651
|
+
local_ref<JString> componentName;
|
|
652
|
+
if (scrollViewComponentName.compare(shadowView.componentName) == 0) {
|
|
653
|
+
auto newViewProps =
|
|
654
|
+
std::static_pointer_cast<const ScrollViewProps>(shadowView.props);
|
|
655
|
+
if (newViewProps->getProbablyMoreHorizontalThanVertical_DEPRECATED()) {
|
|
656
|
+
componentName = make_jstring("AndroidHorizontalScrollView");
|
|
657
|
+
return componentName;
|
|
658
|
+
}
|
|
622
659
|
}
|
|
660
|
+
|
|
661
|
+
componentName = make_jstring(shadowView.componentName);
|
|
623
662
|
return componentName;
|
|
624
663
|
}
|
|
625
664
|
|
|
@@ -885,8 +924,11 @@ void Binding::schedulerDidFinishTransaction(
|
|
|
885
924
|
mountItem.newChildShadowView.eventEmitter;
|
|
886
925
|
auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
887
926
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
888
|
-
|
|
889
|
-
|
|
927
|
+
if (enableEventEmitterRawPointer_) {
|
|
928
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
929
|
+
} else {
|
|
930
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
931
|
+
}
|
|
890
932
|
temp[0] = mountItem.newChildShadowView.tag;
|
|
891
933
|
temp[1] = isLayoutable;
|
|
892
934
|
env->SetIntArrayRegion(intBufferArray, intBufferPosition, 2, temp);
|
|
@@ -1036,7 +1078,11 @@ void Binding::schedulerDidFinishTransaction(
|
|
|
1036
1078
|
// Do not hold a reference to javaEventEmitter from the C++ side.
|
|
1037
1079
|
auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
1038
1080
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
1039
|
-
|
|
1081
|
+
if (enableEventEmitterRawPointer_) {
|
|
1082
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
1083
|
+
} else {
|
|
1084
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
1085
|
+
}
|
|
1040
1086
|
|
|
1041
1087
|
(*objBufferArray)[objBufferPosition++] = javaEventEmitter.get();
|
|
1042
1088
|
}
|
|
@@ -1163,7 +1209,11 @@ void Binding::preallocateShadowView(
|
|
|
1163
1209
|
if (eventEmitter != nullptr) {
|
|
1164
1210
|
javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
1165
1211
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
1166
|
-
|
|
1212
|
+
if (enableEventEmitterRawPointer_) {
|
|
1213
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
1214
|
+
} else {
|
|
1215
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
1216
|
+
}
|
|
1167
1217
|
}
|
|
1168
1218
|
}
|
|
1169
1219
|
|
|
@@ -1210,11 +1260,13 @@ void Binding::schedulerDidCloneShadowNode(
|
|
|
1210
1260
|
// 1. The revision is exactly 1
|
|
1211
1261
|
// 2. At revision 0 (the old node), View Preallocation would have been skipped
|
|
1212
1262
|
|
|
1213
|
-
if (
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1263
|
+
if (!disableRevisionCheckForPreallocation_) {
|
|
1264
|
+
if (newShadowNode.getProps()->revision != 1) {
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1267
|
+
if (oldShadowNode.getProps()->revision != 0) {
|
|
1268
|
+
return;
|
|
1269
|
+
}
|
|
1218
1270
|
}
|
|
1219
1271
|
|
|
1220
1272
|
// If the new node is concrete and the old wasn't, we can preallocate
|