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
|
@@ -64,6 +64,7 @@ public class TextLayoutManager {
|
|
|
64
64
|
private static final boolean DEFAULT_INCLUDE_FONT_PADDING = true;
|
|
65
65
|
private static final String INCLUDE_FONT_PADDING_KEY = "includeFontPadding";
|
|
66
66
|
private static final String TEXT_BREAK_STRATEGY_KEY = "textBreakStrategy";
|
|
67
|
+
private static final String HYPHENATION_FREQUENCY_KEY = "android_hyphenationFrequency";
|
|
67
68
|
private static final String MAXIMUM_NUMBER_OF_LINES_KEY = "maximumNumberOfLines";
|
|
68
69
|
private static final LruCache<ReadableNativeMap, Spannable> sSpannableCache =
|
|
69
70
|
new LruCache<>(spannableCacheSize);
|
|
@@ -250,7 +251,8 @@ public class TextLayoutManager {
|
|
|
250
251
|
float width,
|
|
251
252
|
YogaMeasureMode widthYogaMeasureMode,
|
|
252
253
|
boolean includeFontPadding,
|
|
253
|
-
int textBreakStrategy
|
|
254
|
+
int textBreakStrategy,
|
|
255
|
+
int hyphenationFrequency) {
|
|
254
256
|
Layout layout;
|
|
255
257
|
int spanLength = text.length();
|
|
256
258
|
boolean unconstrainedWidth = widthYogaMeasureMode == YogaMeasureMode.UNDEFINED || width < 0;
|
|
@@ -281,10 +283,9 @@ public class TextLayoutManager {
|
|
|
281
283
|
.setLineSpacing(0.f, 1.f)
|
|
282
284
|
.setIncludePad(includeFontPadding)
|
|
283
285
|
.setBreakStrategy(textBreakStrategy)
|
|
284
|
-
.setHyphenationFrequency(
|
|
286
|
+
.setHyphenationFrequency(hyphenationFrequency)
|
|
285
287
|
.build();
|
|
286
288
|
}
|
|
287
|
-
|
|
288
289
|
} else if (boring != null && (unconstrainedWidth || boring.width <= width)) {
|
|
289
290
|
int boringLayoutWidth = boring.width;
|
|
290
291
|
if (boring.width < 0) {
|
|
@@ -325,7 +326,7 @@ public class TextLayoutManager {
|
|
|
325
326
|
.setLineSpacing(0.f, 1.f)
|
|
326
327
|
.setIncludePad(includeFontPadding)
|
|
327
328
|
.setBreakStrategy(textBreakStrategy)
|
|
328
|
-
.setHyphenationFrequency(
|
|
329
|
+
.setHyphenationFrequency(hyphenationFrequency);
|
|
329
330
|
|
|
330
331
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
331
332
|
builder.setUseLineSpacingFromFallbacks(true);
|
|
@@ -378,6 +379,9 @@ public class TextLayoutManager {
|
|
|
378
379
|
paragraphAttributes.hasKey(INCLUDE_FONT_PADDING_KEY)
|
|
379
380
|
? paragraphAttributes.getBoolean(INCLUDE_FONT_PADDING_KEY)
|
|
380
381
|
: DEFAULT_INCLUDE_FONT_PADDING;
|
|
382
|
+
int hyphenationFrequency =
|
|
383
|
+
TextAttributeProps.getHyphenationFrequency(
|
|
384
|
+
paragraphAttributes.getString(HYPHENATION_FREQUENCY_KEY));
|
|
381
385
|
|
|
382
386
|
if (text == null) {
|
|
383
387
|
throw new IllegalStateException("Spannable element has not been prepared in onBeforeLayout");
|
|
@@ -387,7 +391,13 @@ public class TextLayoutManager {
|
|
|
387
391
|
|
|
388
392
|
Layout layout =
|
|
389
393
|
createLayout(
|
|
390
|
-
text,
|
|
394
|
+
text,
|
|
395
|
+
boring,
|
|
396
|
+
width,
|
|
397
|
+
widthYogaMeasureMode,
|
|
398
|
+
includeFontPadding,
|
|
399
|
+
textBreakStrategy,
|
|
400
|
+
hyphenationFrequency);
|
|
391
401
|
|
|
392
402
|
int maximumNumberOfLines =
|
|
393
403
|
paragraphAttributes.hasKey(MAXIMUM_NUMBER_OF_LINES_KEY)
|
|
@@ -539,10 +549,19 @@ public class TextLayoutManager {
|
|
|
539
549
|
paragraphAttributes.hasKey(INCLUDE_FONT_PADDING_KEY)
|
|
540
550
|
? paragraphAttributes.getBoolean(INCLUDE_FONT_PADDING_KEY)
|
|
541
551
|
: DEFAULT_INCLUDE_FONT_PADDING;
|
|
552
|
+
int hyphenationFrequency =
|
|
553
|
+
TextAttributeProps.getTextBreakStrategy(
|
|
554
|
+
paragraphAttributes.getString(HYPHENATION_FREQUENCY_KEY));
|
|
542
555
|
|
|
543
556
|
Layout layout =
|
|
544
557
|
createLayout(
|
|
545
|
-
text,
|
|
558
|
+
text,
|
|
559
|
+
boring,
|
|
560
|
+
width,
|
|
561
|
+
YogaMeasureMode.EXACTLY,
|
|
562
|
+
includeFontPadding,
|
|
563
|
+
textBreakStrategy,
|
|
564
|
+
hyphenationFrequency);
|
|
546
565
|
return FontMetricsUtil.getFontMetrics(text, layout, sTextPaintInstance, context);
|
|
547
566
|
}
|
|
548
567
|
|
package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java
CHANGED
|
@@ -61,6 +61,7 @@ public class TextLayoutManagerMapBuffer {
|
|
|
61
61
|
public static final short PA_KEY_TEXT_BREAK_STRATEGY = 2;
|
|
62
62
|
public static final short PA_KEY_ADJUST_FONT_SIZE_TO_FIT = 3;
|
|
63
63
|
public static final short PA_KEY_INCLUDE_FONT_PADDING = 4;
|
|
64
|
+
public static final short PA_KEY_HYPHENATION_FREQUENCY = 5;
|
|
64
65
|
|
|
65
66
|
private static final boolean ENABLE_MEASURE_LOGGING = ReactBuildConfig.DEBUG && false;
|
|
66
67
|
|
|
@@ -264,7 +265,8 @@ public class TextLayoutManagerMapBuffer {
|
|
|
264
265
|
float width,
|
|
265
266
|
YogaMeasureMode widthYogaMeasureMode,
|
|
266
267
|
boolean includeFontPadding,
|
|
267
|
-
int textBreakStrategy
|
|
268
|
+
int textBreakStrategy,
|
|
269
|
+
int hyphenationFrequency) {
|
|
268
270
|
Layout layout;
|
|
269
271
|
int spanLength = text.length();
|
|
270
272
|
boolean unconstrainedWidth = widthYogaMeasureMode == YogaMeasureMode.UNDEFINED || width < 0;
|
|
@@ -295,7 +297,7 @@ public class TextLayoutManagerMapBuffer {
|
|
|
295
297
|
.setLineSpacing(0.f, 1.f)
|
|
296
298
|
.setIncludePad(includeFontPadding)
|
|
297
299
|
.setBreakStrategy(textBreakStrategy)
|
|
298
|
-
.setHyphenationFrequency(
|
|
300
|
+
.setHyphenationFrequency(hyphenationFrequency)
|
|
299
301
|
.build();
|
|
300
302
|
}
|
|
301
303
|
|
|
@@ -338,7 +340,7 @@ public class TextLayoutManagerMapBuffer {
|
|
|
338
340
|
.setLineSpacing(0.f, 1.f)
|
|
339
341
|
.setIncludePad(includeFontPadding)
|
|
340
342
|
.setBreakStrategy(textBreakStrategy)
|
|
341
|
-
.setHyphenationFrequency(
|
|
343
|
+
.setHyphenationFrequency(hyphenationFrequency);
|
|
342
344
|
|
|
343
345
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
344
346
|
builder.setUseLineSpacingFromFallbacks(true);
|
|
@@ -391,6 +393,9 @@ public class TextLayoutManagerMapBuffer {
|
|
|
391
393
|
paragraphAttributes.hasKey(PA_KEY_INCLUDE_FONT_PADDING)
|
|
392
394
|
? paragraphAttributes.getBoolean(PA_KEY_INCLUDE_FONT_PADDING)
|
|
393
395
|
: DEFAULT_INCLUDE_FONT_PADDING;
|
|
396
|
+
int hyphenationFrequency =
|
|
397
|
+
TextAttributeProps.getTextBreakStrategy(
|
|
398
|
+
paragraphAttributes.getString(PA_KEY_HYPHENATION_FREQUENCY));
|
|
394
399
|
|
|
395
400
|
if (text == null) {
|
|
396
401
|
throw new IllegalStateException("Spannable element has not been prepared in onBeforeLayout");
|
|
@@ -404,7 +409,13 @@ public class TextLayoutManagerMapBuffer {
|
|
|
404
409
|
|
|
405
410
|
Layout layout =
|
|
406
411
|
createLayout(
|
|
407
|
-
text,
|
|
412
|
+
text,
|
|
413
|
+
boring,
|
|
414
|
+
width,
|
|
415
|
+
widthYogaMeasureMode,
|
|
416
|
+
includeFontPadding,
|
|
417
|
+
textBreakStrategy,
|
|
418
|
+
hyphenationFrequency);
|
|
408
419
|
|
|
409
420
|
int maximumNumberOfLines =
|
|
410
421
|
paragraphAttributes.hasKey(PA_KEY_MAX_NUMBER_OF_LINES)
|
|
@@ -561,10 +572,19 @@ public class TextLayoutManagerMapBuffer {
|
|
|
561
572
|
paragraphAttributes.hasKey(PA_KEY_INCLUDE_FONT_PADDING)
|
|
562
573
|
? paragraphAttributes.getBoolean(PA_KEY_INCLUDE_FONT_PADDING)
|
|
563
574
|
: DEFAULT_INCLUDE_FONT_PADDING;
|
|
575
|
+
int hyphenationFrequency =
|
|
576
|
+
TextAttributeProps.getTextBreakStrategy(
|
|
577
|
+
paragraphAttributes.getString(PA_KEY_HYPHENATION_FREQUENCY));
|
|
564
578
|
|
|
565
579
|
Layout layout =
|
|
566
580
|
createLayout(
|
|
567
|
-
text,
|
|
581
|
+
text,
|
|
582
|
+
boring,
|
|
583
|
+
width,
|
|
584
|
+
YogaMeasureMode.EXACTLY,
|
|
585
|
+
includeFontPadding,
|
|
586
|
+
textBreakStrategy,
|
|
587
|
+
hyphenationFrequency);
|
|
568
588
|
return FontMetricsUtil.getFontMetrics(text, layout, sTextPaintInstance, context);
|
|
569
589
|
}
|
|
570
590
|
|
|
@@ -131,10 +131,13 @@ class ReactEditTextInputConnectionWrapper extends InputConnectionWrapper {
|
|
|
131
131
|
@Override
|
|
132
132
|
public boolean sendKeyEvent(KeyEvent event) {
|
|
133
133
|
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
|
134
|
+
boolean isNumberKey = event.getUnicodeChar() < 58 && event.getUnicodeChar() > 47;
|
|
134
135
|
if (event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
|
|
135
136
|
dispatchKeyEvent(BACKSPACE_KEY_VALUE);
|
|
136
137
|
} else if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
|
|
137
138
|
dispatchKeyEvent(ENTER_KEY_VALUE);
|
|
139
|
+
} else if (isNumberKey) {
|
|
140
|
+
dispatchKeyEvent(String.valueOf(event.getNumber()));
|
|
138
141
|
}
|
|
139
142
|
}
|
|
140
143
|
return super.sendKeyEvent(event);
|
|
@@ -0,0 +1,92 @@
|
|
|
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.views.view;
|
|
9
|
+
|
|
10
|
+
import android.annotation.SuppressLint;
|
|
11
|
+
import android.graphics.Canvas;
|
|
12
|
+
import android.os.Build;
|
|
13
|
+
import java.lang.reflect.InvocationTargetException;
|
|
14
|
+
import java.lang.reflect.Method;
|
|
15
|
+
import javax.annotation.Nullable;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Copied from <a
|
|
19
|
+
* href="https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/CanvasUtils.android.kt;drc=3b2dde134afab8d58b9c39ad4820eaf9a6e014a9">
|
|
20
|
+
* Compose canvas utils </a>
|
|
21
|
+
*/
|
|
22
|
+
public class CanvasUtil {
|
|
23
|
+
private CanvasUtil() {}
|
|
24
|
+
|
|
25
|
+
private @Nullable static Method mReorderBarrierMethod = null;
|
|
26
|
+
private @Nullable static Method mInorderBarrierMethod = null;
|
|
27
|
+
private static boolean mOrderMethodsFetched = false;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Enables Z support for the Canvas. The method is publicly available starting from API 29 and was
|
|
31
|
+
* hidden before, so we have to resort to reflection tricks to ensure we can use this API.
|
|
32
|
+
*/
|
|
33
|
+
@SuppressLint({"SoonBlockedPrivateApi", "PrivateApi"})
|
|
34
|
+
public static void enableZ(Canvas canvas, boolean enable) {
|
|
35
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (Build.VERSION.SDK_INT >= 29) {
|
|
40
|
+
if (enable) {
|
|
41
|
+
canvas.enableZ();
|
|
42
|
+
} else {
|
|
43
|
+
canvas.disableZ();
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
fetchOrderMethods();
|
|
47
|
+
try {
|
|
48
|
+
if (enable && mReorderBarrierMethod != null) {
|
|
49
|
+
mReorderBarrierMethod.invoke(canvas);
|
|
50
|
+
}
|
|
51
|
+
if (!enable && mInorderBarrierMethod != null) {
|
|
52
|
+
mInorderBarrierMethod.invoke(canvas);
|
|
53
|
+
}
|
|
54
|
+
} catch (IllegalAccessException | InvocationTargetException ignore) {
|
|
55
|
+
// Do nothing
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private static void fetchOrderMethods() {
|
|
61
|
+
if (!mOrderMethodsFetched) {
|
|
62
|
+
try {
|
|
63
|
+
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.P) {
|
|
64
|
+
// use double reflection to avoid grey list on P
|
|
65
|
+
Method getDeclaredMethod =
|
|
66
|
+
Class.class.getDeclaredMethod("getDeclaredMethod", String.class, Class[].class);
|
|
67
|
+
mReorderBarrierMethod =
|
|
68
|
+
(Method) getDeclaredMethod.invoke(Canvas.class, "insertReorderBarrier", new Class[0]);
|
|
69
|
+
mInorderBarrierMethod =
|
|
70
|
+
(Method) getDeclaredMethod.invoke(Canvas.class, "insertInorderBarrier", new Class[0]);
|
|
71
|
+
} else {
|
|
72
|
+
mReorderBarrierMethod = Canvas.class.getDeclaredMethod("insertReorderBarrier");
|
|
73
|
+
mInorderBarrierMethod = Canvas.class.getDeclaredMethod("insertInorderBarrier");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (mReorderBarrierMethod == null || mInorderBarrierMethod == null) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
mReorderBarrierMethod.setAccessible(true);
|
|
81
|
+
mInorderBarrierMethod.setAccessible(true);
|
|
82
|
+
} catch (IllegalAccessException ignore) {
|
|
83
|
+
// Do nothing
|
|
84
|
+
} catch (InvocationTargetException ignore) {
|
|
85
|
+
// Do nothing
|
|
86
|
+
} catch (NoSuchMethodException ignore) {
|
|
87
|
+
// Do nothing
|
|
88
|
+
}
|
|
89
|
+
mOrderMethodsFetched = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java
CHANGED
|
@@ -1106,8 +1106,8 @@ public class ReactViewBackgroundDrawable extends Drawable {
|
|
|
1106
1106
|
int width = Math.round(borderWidth.left);
|
|
1107
1107
|
updatePathEffect(width);
|
|
1108
1108
|
mPaint.setStrokeWidth(width);
|
|
1109
|
-
mPathForSingleBorder.moveTo(left
|
|
1110
|
-
mPathForSingleBorder.lineTo(left
|
|
1109
|
+
mPathForSingleBorder.moveTo(left + width / 2, top);
|
|
1110
|
+
mPathForSingleBorder.lineTo(left + width / 2, bottom);
|
|
1111
1111
|
canvas.drawPath(mPathForSingleBorder, mPaint);
|
|
1112
1112
|
}
|
|
1113
1113
|
if (borderTop > 0) {
|
|
@@ -1115,8 +1115,8 @@ public class ReactViewBackgroundDrawable extends Drawable {
|
|
|
1115
1115
|
int width = Math.round(borderWidth.top);
|
|
1116
1116
|
updatePathEffect(width);
|
|
1117
1117
|
mPaint.setStrokeWidth(width);
|
|
1118
|
-
mPathForSingleBorder.moveTo(left, top);
|
|
1119
|
-
mPathForSingleBorder.lineTo(right, top);
|
|
1118
|
+
mPathForSingleBorder.moveTo(left, top + width / 2);
|
|
1119
|
+
mPathForSingleBorder.lineTo(right, top + width / 2);
|
|
1120
1120
|
canvas.drawPath(mPathForSingleBorder, mPaint);
|
|
1121
1121
|
}
|
|
1122
1122
|
if (borderRight > 0) {
|
|
@@ -1124,8 +1124,8 @@ public class ReactViewBackgroundDrawable extends Drawable {
|
|
|
1124
1124
|
int width = Math.round(borderWidth.right);
|
|
1125
1125
|
updatePathEffect(width);
|
|
1126
1126
|
mPaint.setStrokeWidth(width);
|
|
1127
|
-
mPathForSingleBorder.moveTo(right
|
|
1128
|
-
mPathForSingleBorder.lineTo(right
|
|
1127
|
+
mPathForSingleBorder.moveTo(right - width / 2, top);
|
|
1128
|
+
mPathForSingleBorder.lineTo(right - width / 2, bottom);
|
|
1129
1129
|
canvas.drawPath(mPathForSingleBorder, mPaint);
|
|
1130
1130
|
}
|
|
1131
1131
|
if (borderBottom > 0) {
|
|
@@ -1133,8 +1133,8 @@ public class ReactViewBackgroundDrawable extends Drawable {
|
|
|
1133
1133
|
int width = Math.round(borderWidth.bottom);
|
|
1134
1134
|
updatePathEffect(width);
|
|
1135
1135
|
mPaint.setStrokeWidth(width);
|
|
1136
|
-
mPathForSingleBorder.moveTo(left, bottom);
|
|
1137
|
-
mPathForSingleBorder.lineTo(right, bottom);
|
|
1136
|
+
mPathForSingleBorder.moveTo(left, bottom - width / 2);
|
|
1137
|
+
mPathForSingleBorder.lineTo(right, bottom - width / 2);
|
|
1138
1138
|
canvas.drawPath(mPathForSingleBorder, mPaint);
|
|
1139
1139
|
}
|
|
1140
1140
|
}
|
|
@@ -33,6 +33,7 @@ import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
|
33
33
|
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
|
34
34
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
35
35
|
import com.facebook.react.common.annotations.VisibleForTesting;
|
|
36
|
+
import com.facebook.react.config.ReactFeatureFlags;
|
|
36
37
|
import com.facebook.react.modules.i18nmanager.I18nUtil;
|
|
37
38
|
import com.facebook.react.touch.OnInterceptTouchEventListener;
|
|
38
39
|
import com.facebook.react.touch.ReactHitSlopView;
|
|
@@ -759,6 +760,23 @@ public class ReactViewGroup extends ViewGroup
|
|
|
759
760
|
}
|
|
760
761
|
}
|
|
761
762
|
|
|
763
|
+
@Override
|
|
764
|
+
protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
|
|
765
|
+
boolean drawWithZ =
|
|
766
|
+
child.getElevation() > 0 && ReactFeatureFlags.insertZReorderBarriersOnViewGroupChildren;
|
|
767
|
+
|
|
768
|
+
if (drawWithZ) {
|
|
769
|
+
CanvasUtil.enableZ(canvas, true);
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
boolean result = super.drawChild(canvas, child, drawingTime);
|
|
773
|
+
|
|
774
|
+
if (drawWithZ) {
|
|
775
|
+
CanvasUtil.enableZ(canvas, false);
|
|
776
|
+
}
|
|
777
|
+
return result;
|
|
778
|
+
}
|
|
779
|
+
|
|
762
780
|
private void dispatchOverflowDraw(Canvas canvas) {
|
|
763
781
|
if (mOverflow != null) {
|
|
764
782
|
switch (mOverflow) {
|
|
@@ -768,6 +786,7 @@ public class ReactViewGroup extends ViewGroup
|
|
|
768
786
|
}
|
|
769
787
|
break;
|
|
770
788
|
case ViewProps.HIDDEN:
|
|
789
|
+
case ViewProps.SCROLL:
|
|
771
790
|
float left = 0f;
|
|
772
791
|
float top = 0f;
|
|
773
792
|
float right = getWidth();
|
|
@@ -27,7 +27,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -Wno-unused-lambda-capture
|
|
|
27
27
|
LOCAL_LDLIBS += -landroid
|
|
28
28
|
|
|
29
29
|
# The dynamic libraries (.so files) that this module depends on.
|
|
30
|
-
LOCAL_SHARED_LIBRARIES := libfolly_json libfb libfbjni libglog_init libyoga
|
|
30
|
+
LOCAL_SHARED_LIBRARIES := libfolly_json libfb libfbjni libglog_init libyoga libreact_render_runtimescheduler
|
|
31
31
|
|
|
32
32
|
# The static libraries (.a files) that this module depends on.
|
|
33
33
|
LOCAL_STATIC_LIBRARIES := libreactnative libcallinvokerholder libruntimeexecutor
|
|
@@ -77,7 +77,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -Wno-unused-lambda-capture
|
|
|
77
77
|
LOCAL_LDLIBS += -landroid
|
|
78
78
|
|
|
79
79
|
# The dynamic libraries (.so files) that this module depends on.
|
|
80
|
-
LOCAL_SHARED_LIBRARIES := libreactnativeutilsjni libfolly_json libfb libfbjni libglog_init libyoga logger
|
|
80
|
+
LOCAL_SHARED_LIBRARIES := libreactnativeutilsjni libfolly_json libfb libfbjni libglog_init libyoga logger libreact_render_runtimescheduler
|
|
81
81
|
|
|
82
82
|
# The static libraries (.a files) that this module depends on.
|
|
83
83
|
LOCAL_STATIC_LIBRARIES := libreactnative libruntimeexecutor libcallinvokerholder
|
|
@@ -129,6 +129,7 @@ $(call import-module,callinvoker)
|
|
|
129
129
|
$(call import-module,reactperflogger)
|
|
130
130
|
$(call import-module,hermes)
|
|
131
131
|
$(call import-module,runtimeexecutor)
|
|
132
|
+
$(call import-module,react/renderer/runtimescheduler)
|
|
132
133
|
$(call import-module,react/nativemodule/core)
|
|
133
134
|
|
|
134
135
|
include $(REACT_SRC_DIR)/reactperflogger/jni/Android.mk
|
|
@@ -20,6 +20,7 @@ EXPORTED_HEADERS = [
|
|
|
20
20
|
"ReadableNativeArray.h",
|
|
21
21
|
"ReadableNativeMap.h",
|
|
22
22
|
"JRuntimeExecutor.h",
|
|
23
|
+
"JRuntimeScheduler.h",
|
|
23
24
|
"WritableNativeArray.h",
|
|
24
25
|
"WritableNativeMap.h",
|
|
25
26
|
]
|
|
@@ -34,14 +35,11 @@ rn_xplat_cxx_library(
|
|
|
34
35
|
header_namespace = "react/jni",
|
|
35
36
|
exported_headers = EXPORTED_HEADERS,
|
|
36
37
|
compiler_flags = [
|
|
37
|
-
"-Wall",
|
|
38
|
-
"-Werror",
|
|
39
|
-
"-fexceptions",
|
|
40
|
-
"-std=c++1y",
|
|
41
|
-
"-frtti",
|
|
42
38
|
"-Wno-pessimizing-move",
|
|
43
39
|
"-Wno-inconsistent-missing-override",
|
|
44
40
|
],
|
|
41
|
+
compiler_flags_enable_exceptions = True,
|
|
42
|
+
compiler_flags_enable_rtti = True, # dynamic_cast used within ReadableNative*
|
|
45
43
|
fbandroid_allow_jni_merging = True,
|
|
46
44
|
labels = ["supermodule:xplat/default/public.react_native.infra"],
|
|
47
45
|
platforms = ANDROID,
|
|
@@ -67,6 +65,7 @@ rn_xplat_cxx_library(
|
|
|
67
65
|
react_native_xplat_target("cxxreact:module"),
|
|
68
66
|
react_native_xplat_target("jsinspector:jsinspector"),
|
|
69
67
|
react_native_xplat_target("runtimeexecutor:runtimeexecutor"),
|
|
68
|
+
react_native_xplat_target("react/renderer/runtimescheduler:runtimescheduler"),
|
|
70
69
|
react_native_xplat_target("logger:logger"),
|
|
71
70
|
react_native_xplat_dep("jsi:jsi"),
|
|
72
71
|
FBJNI_TARGET,
|
|
@@ -27,11 +27,15 @@
|
|
|
27
27
|
#include <fbjni/ByteBuffer.h>
|
|
28
28
|
#include <folly/dynamic.h>
|
|
29
29
|
#include <glog/logging.h>
|
|
30
|
+
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
|
31
|
+
#include <react/renderer/runtimescheduler/RuntimeSchedulerBinding.h>
|
|
32
|
+
#include <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
|
|
30
33
|
|
|
31
34
|
#include <logger/react_native_log.h>
|
|
32
35
|
|
|
33
36
|
#include "CxxModuleWrapper.h"
|
|
34
37
|
#include "JNativeRunnable.h"
|
|
38
|
+
#include "JReactCxxErrorHandler.h"
|
|
35
39
|
#include "JReactSoftExceptionLogger.h"
|
|
36
40
|
#include "JavaScriptExecutorHolder.h"
|
|
37
41
|
#include "JniJSModulesUnbundle.h"
|
|
@@ -89,12 +93,21 @@ class JInstanceCallback : public InstanceCallback {
|
|
|
89
93
|
} // namespace
|
|
90
94
|
|
|
91
95
|
jni::local_ref<CatalystInstanceImpl::jhybriddata>
|
|
92
|
-
CatalystInstanceImpl::initHybrid(
|
|
93
|
-
|
|
96
|
+
CatalystInstanceImpl::initHybrid(
|
|
97
|
+
jni::alias_ref<jclass>,
|
|
98
|
+
bool enableRuntimeScheduler,
|
|
99
|
+
bool enableRuntimeSchedulerInTurboModule) {
|
|
100
|
+
return makeCxxInstance(
|
|
101
|
+
enableRuntimeScheduler, enableRuntimeSchedulerInTurboModule);
|
|
94
102
|
}
|
|
95
103
|
|
|
96
|
-
CatalystInstanceImpl::CatalystInstanceImpl(
|
|
97
|
-
|
|
104
|
+
CatalystInstanceImpl::CatalystInstanceImpl(
|
|
105
|
+
bool enableRuntimeScheduler,
|
|
106
|
+
bool enableRuntimeSchedulerInTurboModule)
|
|
107
|
+
: instance_(std::make_unique<Instance>()),
|
|
108
|
+
enableRuntimeScheduler_(enableRuntimeScheduler),
|
|
109
|
+
enableRuntimeSchedulerInTurboModule_(
|
|
110
|
+
enableRuntimeScheduler && enableRuntimeSchedulerInTurboModule) {}
|
|
98
111
|
|
|
99
112
|
void CatalystInstanceImpl::warnOnLegacyNativeModuleSystemUse() {
|
|
100
113
|
CxxNativeModule::setShouldWarnOnUse(true);
|
|
@@ -135,6 +148,8 @@ void CatalystInstanceImpl::registerNatives() {
|
|
|
135
148
|
CatalystInstanceImpl::handleMemoryPressure),
|
|
136
149
|
makeNativeMethod(
|
|
137
150
|
"getRuntimeExecutor", CatalystInstanceImpl::getRuntimeExecutor),
|
|
151
|
+
makeNativeMethod(
|
|
152
|
+
"getRuntimeScheduler", CatalystInstanceImpl::getRuntimeScheduler),
|
|
138
153
|
makeNativeMethod(
|
|
139
154
|
"warnOnLegacyNativeModuleSystemUse",
|
|
140
155
|
CatalystInstanceImpl::warnOnLegacyNativeModuleSystemUse),
|
|
@@ -155,6 +170,7 @@ void log(ReactNativeLogLevel level, const char *message) {
|
|
|
155
170
|
break;
|
|
156
171
|
case ReactNativeLogLevelError:
|
|
157
172
|
LOG(ERROR) << message;
|
|
173
|
+
JReactCxxErrorHandler::handleError(message);
|
|
158
174
|
break;
|
|
159
175
|
case ReactNativeLogLevelFatal:
|
|
160
176
|
LOG(FATAL) << message;
|
|
@@ -338,10 +354,18 @@ void CatalystInstanceImpl::handleMemoryPressure(int pressureLevel) {
|
|
|
338
354
|
jni::alias_ref<CallInvokerHolder::javaobject>
|
|
339
355
|
CatalystInstanceImpl::getJSCallInvokerHolder() {
|
|
340
356
|
if (!jsCallInvokerHolder_) {
|
|
341
|
-
|
|
342
|
-
|
|
357
|
+
if (enableRuntimeSchedulerInTurboModule_) {
|
|
358
|
+
auto runtimeScheduler = getRuntimeScheduler();
|
|
359
|
+
auto runtimeSchedulerCallInvoker =
|
|
360
|
+
std::make_shared<RuntimeSchedulerCallInvoker>(
|
|
361
|
+
runtimeScheduler->cthis()->get());
|
|
362
|
+
jsCallInvokerHolder_ = jni::make_global(
|
|
363
|
+
CallInvokerHolder::newObjectCxxArgs(runtimeSchedulerCallInvoker));
|
|
364
|
+
} else {
|
|
365
|
+
jsCallInvokerHolder_ = jni::make_global(
|
|
366
|
+
CallInvokerHolder::newObjectCxxArgs(instance_->getJSCallInvoker()));
|
|
367
|
+
}
|
|
343
368
|
}
|
|
344
|
-
|
|
345
369
|
return jsCallInvokerHolder_;
|
|
346
370
|
}
|
|
347
371
|
|
|
@@ -386,5 +410,23 @@ CatalystInstanceImpl::getRuntimeExecutor() {
|
|
|
386
410
|
return runtimeExecutor_;
|
|
387
411
|
}
|
|
388
412
|
|
|
413
|
+
jni::alias_ref<JRuntimeScheduler::javaobject>
|
|
414
|
+
CatalystInstanceImpl::getRuntimeScheduler() {
|
|
415
|
+
if (enableRuntimeScheduler_ && !runtimeScheduler_) {
|
|
416
|
+
auto runtimeExecutor = instance_->getRuntimeExecutor();
|
|
417
|
+
auto runtimeScheduler = std::make_shared<RuntimeScheduler>(runtimeExecutor);
|
|
418
|
+
|
|
419
|
+
runtimeScheduler_ =
|
|
420
|
+
jni::make_global(JRuntimeScheduler::newObjectCxxArgs(runtimeScheduler));
|
|
421
|
+
|
|
422
|
+
runtimeExecutor([runtimeScheduler](jsi::Runtime &runtime) {
|
|
423
|
+
RuntimeSchedulerBinding::createAndInstallIfNeeded(
|
|
424
|
+
runtime, runtimeScheduler);
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return runtimeScheduler_;
|
|
429
|
+
}
|
|
430
|
+
|
|
389
431
|
} // namespace react
|
|
390
432
|
} // namespace facebook
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "CxxModuleWrapper.h"
|
|
16
16
|
#include "JMessageQueueThread.h"
|
|
17
17
|
#include "JRuntimeExecutor.h"
|
|
18
|
+
#include "JRuntimeScheduler.h"
|
|
18
19
|
#include "JSLoader.h"
|
|
19
20
|
#include "JavaModuleWrapper.h"
|
|
20
21
|
#include "ModuleRegistryBuilder.h"
|
|
@@ -36,7 +37,10 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
|
|
36
37
|
static constexpr auto kJavaDescriptor =
|
|
37
38
|
"Lcom/facebook/react/bridge/CatalystInstanceImpl;";
|
|
38
39
|
|
|
39
|
-
static jni::local_ref<jhybriddata> initHybrid(
|
|
40
|
+
static jni::local_ref<jhybriddata> initHybrid(
|
|
41
|
+
jni::alias_ref<jclass>,
|
|
42
|
+
bool enableRuntimeScheduler,
|
|
43
|
+
bool enableRuntimeSchedulerInTurboModule);
|
|
40
44
|
|
|
41
45
|
static void registerNatives();
|
|
42
46
|
|
|
@@ -47,7 +51,9 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
|
|
47
51
|
private:
|
|
48
52
|
friend HybridBase;
|
|
49
53
|
|
|
50
|
-
CatalystInstanceImpl(
|
|
54
|
+
CatalystInstanceImpl(
|
|
55
|
+
bool enableRuntimeScheduler,
|
|
56
|
+
bool enableRuntimeSchedulerInTurboModule);
|
|
51
57
|
|
|
52
58
|
void initializeBridge(
|
|
53
59
|
jni::alias_ref<ReactCallback::javaobject> callback,
|
|
@@ -98,10 +104,13 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
|
|
98
104
|
jni::alias_ref<CallInvokerHolder::javaobject> getJSCallInvokerHolder();
|
|
99
105
|
jni::alias_ref<CallInvokerHolder::javaobject> getNativeCallInvokerHolder();
|
|
100
106
|
jni::alias_ref<JRuntimeExecutor::javaobject> getRuntimeExecutor();
|
|
107
|
+
jni::alias_ref<JRuntimeScheduler::javaobject> getRuntimeScheduler();
|
|
101
108
|
void setGlobalVariable(std::string propName, std::string &&jsonValue);
|
|
102
109
|
jlong getJavaScriptContext();
|
|
103
110
|
void handleMemoryPressure(int pressureLevel);
|
|
104
111
|
|
|
112
|
+
void createAndInstallRuntimeSchedulerIfNecessary();
|
|
113
|
+
|
|
105
114
|
// This should be the only long-lived strong reference, but every C++ class
|
|
106
115
|
// will have a weak reference.
|
|
107
116
|
std::shared_ptr<Instance> instance_;
|
|
@@ -110,6 +119,10 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
|
|
110
119
|
jni::global_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder_;
|
|
111
120
|
jni::global_ref<CallInvokerHolder::javaobject> nativeCallInvokerHolder_;
|
|
112
121
|
jni::global_ref<JRuntimeExecutor::javaobject> runtimeExecutor_;
|
|
122
|
+
jni::global_ref<JRuntimeScheduler::javaobject> runtimeScheduler_;
|
|
123
|
+
|
|
124
|
+
bool const enableRuntimeScheduler_;
|
|
125
|
+
bool const enableRuntimeSchedulerInTurboModule_;
|
|
113
126
|
};
|
|
114
127
|
|
|
115
128
|
} // namespace react
|
|
@@ -0,0 +1,18 @@
|
|
|
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 "JReactCxxErrorHandler.h"
|
|
9
|
+
|
|
10
|
+
using namespace facebook::react;
|
|
11
|
+
|
|
12
|
+
void JReactCxxErrorHandler::handleError(std::string message) {
|
|
13
|
+
static const auto handleError =
|
|
14
|
+
javaClassStatic()->getStaticMethod<void(std::string message)>(
|
|
15
|
+
"handleError");
|
|
16
|
+
|
|
17
|
+
return handleError(javaClassStatic(), message);
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 <fbjni/fbjni.h>
|
|
11
|
+
#include <string>
|
|
12
|
+
|
|
13
|
+
namespace facebook {
|
|
14
|
+
namespace react {
|
|
15
|
+
|
|
16
|
+
class JReactCxxErrorHandler : public jni::JavaClass<JReactCxxErrorHandler> {
|
|
17
|
+
public:
|
|
18
|
+
static constexpr const char *kJavaDescriptor =
|
|
19
|
+
"Lcom/facebook/react/bridge/ReactCxxErrorHandler;";
|
|
20
|
+
|
|
21
|
+
static void handleError(std::string message);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace react
|
|
25
|
+
} // namespace facebook
|
|
@@ -5,19 +5,17 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JRuntimeScheduler.h"
|
|
9
9
|
|
|
10
10
|
namespace facebook {
|
|
11
11
|
namespace react {
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
JRuntimeScheduler::JRuntimeScheduler(
|
|
14
|
+
std::weak_ptr<RuntimeScheduler> runtimeScheduler)
|
|
15
|
+
: runtimeScheduler_(runtimeScheduler) {}
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
bool Constants::getPropsForwardingEnabled() {
|
|
20
|
-
return isPropsForwardingEnabled;
|
|
17
|
+
std::weak_ptr<RuntimeScheduler> JRuntimeScheduler::get() {
|
|
18
|
+
return runtimeScheduler_;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
} // namespace react
|
|
@@ -0,0 +1,30 @@
|
|
|
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 <fbjni/fbjni.h>
|
|
11
|
+
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
|
12
|
+
|
|
13
|
+
namespace facebook {
|
|
14
|
+
namespace react {
|
|
15
|
+
|
|
16
|
+
class JRuntimeScheduler : public jni::HybridClass<JRuntimeScheduler> {
|
|
17
|
+
public:
|
|
18
|
+
static auto constexpr kJavaDescriptor =
|
|
19
|
+
"Lcom/facebook/react/bridge/RuntimeScheduler;";
|
|
20
|
+
|
|
21
|
+
std::weak_ptr<RuntimeScheduler> get();
|
|
22
|
+
|
|
23
|
+
private:
|
|
24
|
+
friend HybridBase;
|
|
25
|
+
JRuntimeScheduler(std::weak_ptr<RuntimeScheduler> runtimeScheduler);
|
|
26
|
+
std::weak_ptr<RuntimeScheduler> runtimeScheduler_;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
} // namespace react
|
|
30
|
+
} // namespace facebook
|