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.
Files changed (447) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
  5. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  6. package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
  7. package/Libraries/Animated/components/AnimatedText.js +3 -3
  8. package/Libraries/Animated/components/AnimatedView.js +1 -3
  9. package/Libraries/Animated/createAnimatedComponent.js +3 -34
  10. package/Libraries/Components/Button.js +3 -0
  11. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  13. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollView.js +17 -16
  15. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  16. package/Libraries/Components/View/View.js +1 -1
  17. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  18. package/Libraries/Core/ExceptionsManager.js +45 -80
  19. package/Libraries/Core/ExtendedError.js +0 -1
  20. package/Libraries/Core/ReactNativeVersion.js +2 -2
  21. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  22. package/Libraries/Core/setUpGlobals.js +2 -4
  23. package/Libraries/Core/setUpTimers.js +2 -2
  24. package/Libraries/Image/Image.ios.js +6 -0
  25. package/Libraries/Image/ImageBackground.js +10 -8
  26. package/Libraries/Image/ImageProps.js +28 -0
  27. package/Libraries/Image/RCTImageView.mm +4 -0
  28. package/Libraries/LogBox/Data/LogBoxData.js +18 -19
  29. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  30. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  31. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  32. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  33. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  34. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  35. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  36. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  37. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
  38. package/Libraries/NewAppScreen/components/logo.png +0 -0
  39. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  40. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  41. package/Libraries/Pressability/Pressability.js +13 -13
  42. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  43. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  44. package/Libraries/ReactNative/AppRegistry.js +4 -2
  45. package/Libraries/Renderer/REVISION +1 -1
  46. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
  47. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
  48. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
  51. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
  52. package/Libraries/Share/Share.js +1 -1
  53. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  54. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
  55. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  56. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  57. package/Libraries/Text/TextProps.js +1 -7
  58. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  59. package/Libraries/Utilities/HMRClient.js +1 -1
  60. package/README.md +1 -1
  61. package/React/Base/RCTBridge+Private.h +8 -0
  62. package/React/Base/RCTBridge.h +4 -0
  63. package/React/Base/RCTBridge.m +19 -7
  64. package/React/Base/RCTBridgeModule.h +2 -11
  65. package/React/Base/RCTBundleURLProvider.h +1 -1
  66. package/React/Base/RCTBundleURLProvider.mm +5 -3
  67. package/React/Base/RCTConstants.h +0 -6
  68. package/React/Base/RCTConstants.m +0 -15
  69. package/React/Base/RCTConvert.h +1 -1
  70. package/React/Base/RCTDefines.h +12 -3
  71. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  72. package/React/Base/RCTJSThread.h +29 -0
  73. package/React/Base/RCTJSThread.m +19 -0
  74. package/React/Base/RCTRootView.h +15 -0
  75. package/React/Base/RCTRootView.m +15 -0
  76. package/React/Base/RCTTouchHandler.m +1 -9
  77. package/React/Base/RCTUtils.h +3 -0
  78. package/React/Base/RCTUtils.m +14 -7
  79. package/React/Base/RCTVersion.m +2 -2
  80. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  81. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  82. package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
  83. package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
  84. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  85. package/React/CoreModules/RCTAppearance.mm +3 -1
  86. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  87. package/React/CoreModules/RCTDevSettings.mm +6 -6
  88. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  89. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  90. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  91. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  92. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  93. package/React/CoreModules/RCTRedBox.mm +1 -5
  94. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  95. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  96. package/React/DevSupport/RCTPackagerConnection.mm +9 -5
  97. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
  98. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
  100. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  101. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
  102. package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
  103. package/React/Fabric/RCTScheduler.mm +12 -5
  104. package/React/Fabric/RCTSurfacePresenter.mm +0 -4
  105. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  106. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
  107. package/React/React-RCTFabric.podspec +0 -1
  108. package/React/Views/RCTFont.mm +54 -38
  109. package/React/Views/RCTView.m +1 -6
  110. package/React/Views/RCTViewManager.m +3 -2
  111. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  112. package/React/Views/ScrollView/RCTScrollView.m +5 -15
  113. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
  114. package/React/Views/UIView+React.m +2 -11
  115. package/React-Core.podspec +0 -1
  116. package/ReactAndroid/build.gradle +11 -5
  117. package/ReactAndroid/gradle.properties +1 -1
  118. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  119. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  120. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
  121. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  122. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +46 -1
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  127. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  137. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  147. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  162. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  163. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  176. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  177. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  178. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  179. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  180. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  181. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  195. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  196. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +8 -8
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  210. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  211. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  212. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  213. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  214. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  215. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  216. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  217. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  218. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  219. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  220. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  221. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  222. package/ReactCommon/React-Fabric.podspec +9 -1
  223. package/ReactCommon/better/BUCK +0 -6
  224. package/ReactCommon/callinvoker/BUCK +2 -8
  225. package/ReactCommon/cxxreact/BUCK +1 -16
  226. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  227. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  228. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  229. package/ReactCommon/jsi/BUCK +0 -9
  230. package/ReactCommon/jsinspector/BUCK +0 -5
  231. package/ReactCommon/logger/BUCK +0 -5
  232. package/ReactCommon/react/config/BUCK +0 -6
  233. package/ReactCommon/react/debug/BUCK +0 -6
  234. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  235. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  236. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  237. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  238. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  239. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  241. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  242. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  243. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  244. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  245. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  246. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  247. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  248. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  249. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  250. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  251. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  252. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  253. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  254. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  255. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  256. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  257. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  258. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  259. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  261. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  262. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  263. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  264. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  266. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  268. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  269. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  271. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  273. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  275. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  276. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  277. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  278. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  279. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  280. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  281. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  282. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  283. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  284. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  285. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  286. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  287. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  288. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  289. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  290. package/ReactCommon/react/renderer/core/BUCK +2 -6
  291. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  292. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  293. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  294. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  295. package/ReactCommon/react/renderer/core/Props.h +1 -0
  296. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  297. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  298. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  299. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  300. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  301. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  302. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  303. package/ReactCommon/react/renderer/element/BUCK +0 -6
  304. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  305. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  306. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  307. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  308. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  309. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  310. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  311. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  312. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  313. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  314. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  315. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  316. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  317. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  318. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  319. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  320. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  321. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  325. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  326. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  327. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  328. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  330. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  331. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  332. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  333. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  334. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  335. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  336. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  337. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  338. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  339. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  340. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  341. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  342. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  343. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  344. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  345. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  346. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  347. package/ReactCommon/react/test_utils/BUCK +3 -6
  348. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  349. package/ReactCommon/react/utils/BUCK +0 -6
  350. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  351. package/ReactCommon/reactperflogger/BUCK +0 -4
  352. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  353. package/ReactCommon/yoga/BUCK +1 -5
  354. 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
  355. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.md5 +1 -0
  356. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha1 +1 -0
  357. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha256 +1 -0
  358. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha512 +1 -0
  359. 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
  360. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.md5 +1 -0
  361. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha1 +1 -0
  362. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha256 +1 -0
  363. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha512 +1 -0
  364. 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
  365. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.md5 +1 -0
  366. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha1 +1 -0
  367. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha256 +1 -0
  368. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha512 +1 -0
  369. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  370. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  371. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  372. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  373. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  374. package/flow/global.js +45 -0
  375. package/index.js +15 -10
  376. package/jest/mockModal.js +31 -0
  377. package/jest/setup.js +5 -3
  378. package/package.json +8 -9
  379. package/react.gradle +53 -18
  380. package/scripts/find-node.sh +13 -0
  381. package/scripts/generate-specs-cli.js +18 -0
  382. package/scripts/ios-configure-glog.sh +4 -0
  383. package/scripts/react-native-xcode.sh +7 -7
  384. package/scripts/react_native_pods.rb +202 -70
  385. package/template/Gemfile +6 -0
  386. package/template/Gemfile.lock +100 -0
  387. package/template/_bundle/config +2 -0
  388. package/template/_flowconfig +1 -1
  389. package/template/_ruby-version +1 -0
  390. package/template/android/app/build.gradle +1 -1
  391. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  392. package/template/android/app/src/main/res/values/styles.xml +1 -0
  393. package/template/android/build.gradle +7 -3
  394. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  395. package/template/android/gradle.properties +1 -1
  396. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  397. package/template/ios/Podfile +0 -1
  398. package/template/package.json +1 -1
  399. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  400. package/third-party-podspecs/glog.podspec +0 -1
  401. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  402. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  403. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  404. package/Libraries/Components/StaticContainer.react.js +0 -51
  405. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  406. package/Libraries/Interaction/InteractionMixin.js +0 -54
  407. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  408. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  409. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  412. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  413. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  415. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  419. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  420. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  421. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  422. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  430. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  431. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  432. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  433. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.md5 +0 -1
  434. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha1 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha256 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha512 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.md5 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha1 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha256 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha512 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.md5 +0 -1
  442. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha1 +0 -1
  443. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha256 +0 -1
  444. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha512 +0 -1
  445. package/scripts/generate-specs.sh +0 -99
  446. package/template/_editorconfig +0 -3
  447. 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(Layout.HYPHENATION_FREQUENCY_NORMAL)
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(Layout.HYPHENATION_FREQUENCY_NORMAL);
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, boring, width, widthYogaMeasureMode, includeFontPadding, textBreakStrategy);
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, boring, width, YogaMeasureMode.EXACTLY, includeFontPadding, textBreakStrategy);
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
 
@@ -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(Layout.HYPHENATION_FREQUENCY_NORMAL)
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(Layout.HYPHENATION_FREQUENCY_NORMAL);
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, boring, width, widthYogaMeasureMode, includeFontPadding, textBreakStrategy);
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, boring, width, YogaMeasureMode.EXACTLY, includeFontPadding, textBreakStrategy);
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
+ }
@@ -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, top - borderWidth.top / 2);
1110
- mPathForSingleBorder.lineTo(left, bottom + borderWidth.bottom / 2);
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, top - borderWidth.top / 2);
1128
- mPathForSingleBorder.lineTo(right, bottom + borderWidth.bottom / 2);
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(jni::alias_ref<jclass>) {
93
- return makeCxxInstance();
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
- : instance_(std::make_unique<Instance>()) {}
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
- jsCallInvokerHolder_ = jni::make_global(
342
- CallInvokerHolder::newObjectCxxArgs(instance_->getJSCallInvoker()));
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(jni::alias_ref<jclass>);
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 "Constants.h"
8
+ #include "JRuntimeScheduler.h"
9
9
 
10
10
  namespace facebook {
11
11
  namespace react {
12
12
 
13
- static bool isPropsForwardingEnabled = false;
13
+ JRuntimeScheduler::JRuntimeScheduler(
14
+ std::weak_ptr<RuntimeScheduler> runtimeScheduler)
15
+ : runtimeScheduler_(runtimeScheduler) {}
14
16
 
15
- void Constants::setPropsForwardingEnabled(bool propsForwardingEnabled) {
16
- isPropsForwardingEnabled = propsForwardingEnabled;
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