react-native 0.66.2 → 0.67.0-rc.3

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 (444) 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 +3 -3
  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 +0 -1
  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 +3 -3
  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/RCTDevLoadingView.mm +5 -10
  86. package/React/CoreModules/RCTDevSettings.mm +6 -6
  87. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  88. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  89. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  90. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  91. package/React/CoreModules/RCTLogBox.mm +0 -1
  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/hermes/reactexecutor/HermesExecutor.java +14 -8
  122. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  127. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  133. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  136. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  137. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  147. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  162. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  163. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +3 -3
  175. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  176. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  177. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  178. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  179. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  180. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  181. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  194. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  195. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  208. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  209. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  210. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  211. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  212. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  213. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  214. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  215. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  216. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  217. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  218. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  219. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  220. package/ReactCommon/React-Fabric.podspec +9 -1
  221. package/ReactCommon/better/BUCK +0 -6
  222. package/ReactCommon/callinvoker/BUCK +2 -8
  223. package/ReactCommon/cxxreact/BUCK +1 -16
  224. package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
  225. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  226. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  227. package/ReactCommon/jsi/BUCK +0 -9
  228. package/ReactCommon/jsinspector/BUCK +0 -5
  229. package/ReactCommon/logger/BUCK +0 -5
  230. package/ReactCommon/react/config/BUCK +0 -6
  231. package/ReactCommon/react/debug/BUCK +0 -6
  232. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  233. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  234. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  235. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  236. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  237. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  238. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  239. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  241. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  242. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  243. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  244. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  245. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  246. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  247. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  248. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  249. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  250. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  251. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  252. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  253. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  254. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  255. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  256. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  257. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  258. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  259. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  261. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  262. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  263. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  264. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  266. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  268. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  269. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  271. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  273. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  275. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  276. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  277. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  278. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  279. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  280. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  281. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  282. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  283. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  284. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  285. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  286. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  287. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  288. package/ReactCommon/react/renderer/core/BUCK +2 -6
  289. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  290. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  291. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  292. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  293. package/ReactCommon/react/renderer/core/Props.h +1 -0
  294. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  295. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  296. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  297. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  298. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  299. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  300. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  301. package/ReactCommon/react/renderer/element/BUCK +0 -6
  302. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  303. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  304. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  305. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  306. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  307. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  308. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  309. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  310. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  311. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  312. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  313. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  314. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  315. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  316. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  317. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  318. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  319. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  320. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  321. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  325. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  326. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  327. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  328. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  330. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  331. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  332. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  333. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  334. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  335. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  336. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  337. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  338. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  339. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  340. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  341. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  342. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  343. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  344. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  345. package/ReactCommon/react/test_utils/BUCK +3 -6
  346. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  347. package/ReactCommon/react/utils/BUCK +0 -6
  348. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  349. package/ReactCommon/reactperflogger/BUCK +0 -4
  350. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  351. package/ReactCommon/yoga/BUCK +1 -5
  352. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.aar → 0.67.0-rc.3/react-native-0.67.0-rc.3.aar} +0 -0
  353. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.md5 +1 -0
  354. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha1 +1 -0
  355. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha256 +1 -0
  356. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha512 +1 -0
  357. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.module → 0.67.0-rc.3/react-native-0.67.0-rc.3.module} +16 -17
  358. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.md5 +1 -0
  359. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha1 +1 -0
  360. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha256 +1 -0
  361. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha512 +1 -0
  362. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.pom → 0.67.0-rc.3/react-native-0.67.0-rc.3.pom} +2 -2
  363. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.md5 +1 -0
  364. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha1 +1 -0
  365. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha256 +1 -0
  366. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha512 +1 -0
  367. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  368. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  369. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  370. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  371. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  372. package/flow/global.js +45 -0
  373. package/index.js +15 -10
  374. package/jest/mockModal.js +31 -0
  375. package/jest/setup.js +5 -3
  376. package/package.json +8 -9
  377. package/react.gradle +53 -18
  378. package/scripts/find-node.sh +13 -0
  379. package/scripts/generate-specs-cli.js +18 -0
  380. package/scripts/ios-configure-glog.sh +4 -0
  381. package/scripts/react-native-xcode.sh +6 -6
  382. package/scripts/react_native_pods.rb +200 -57
  383. package/template/Gemfile +6 -0
  384. package/template/Gemfile.lock +100 -0
  385. package/template/_bundle/config +2 -0
  386. package/template/_flowconfig +1 -1
  387. package/template/_ruby-version +1 -0
  388. package/template/android/app/build.gradle +1 -1
  389. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  390. package/template/android/app/src/main/res/values/styles.xml +1 -0
  391. package/template/android/build.gradle +7 -3
  392. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  393. package/template/android/gradle.properties +1 -1
  394. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  395. package/template/package.json +1 -1
  396. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  397. package/third-party-podspecs/glog.podspec +0 -1
  398. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  399. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  400. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  401. package/Libraries/Components/StaticContainer.react.js +0 -51
  402. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  403. package/Libraries/Interaction/InteractionMixin.js +0 -54
  404. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  405. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  406. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  407. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  408. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  409. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  412. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  413. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  414. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  415. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  419. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  420. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  421. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  422. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  430. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.md5 +0 -1
  431. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha1 +0 -1
  432. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha256 +0 -1
  433. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha512 +0 -1
  434. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.md5 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha1 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha256 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha512 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.md5 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha1 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha256 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha512 +0 -1
  442. package/scripts/generate-specs.sh +0 -99
  443. package/template/_editorconfig +0 -3
  444. package/template/_gitattributes +0 -3
@@ -16,14 +16,20 @@ public class HermesExecutor extends JavaScriptExecutor {
16
16
  private static String mode_;
17
17
 
18
18
  static {
19
- // libhermes must be loaded explicitly to invoke its JNI_OnLoad.
20
- SoLoader.loadLibrary("hermes");
21
- try {
22
- SoLoader.loadLibrary("hermes-executor-debug");
23
- mode_ = "Debug";
24
- } catch (UnsatisfiedLinkError e) {
25
- SoLoader.loadLibrary("hermes-executor-release");
26
- mode_ = "Release";
19
+ loadLibrary();
20
+ }
21
+
22
+ public static void loadLibrary() throws UnsatisfiedLinkError {
23
+ if (mode_ == null) {
24
+ // libhermes must be loaded explicitly to invoke its JNI_OnLoad.
25
+ SoLoader.loadLibrary("hermes");
26
+ try {
27
+ SoLoader.loadLibrary("hermes-executor-debug");
28
+ mode_ = "Debug";
29
+ } catch (UnsatisfiedLinkError e) {
30
+ SoLoader.loadLibrary("hermes-executor-release");
31
+ mode_ = "Release";
32
+ }
27
33
  }
28
34
  }
29
35
 
@@ -49,7 +49,6 @@ rn_android_library(
49
49
  react_native_target("java/com/facebook/react/config:config"),
50
50
  react_native_target("java/com/facebook/react/turbomodule/core:core"),
51
51
  react_native_target("java/com/facebook/react/turbomodule/core/interfaces:interfaces"),
52
- react_native_target("java/com/facebook/react/runtimescheduler:runtimescheduler"),
53
52
  ],
54
53
  exported_deps = [
55
54
  react_native_target("java/com/facebook/react/modules/core:core"),
@@ -65,6 +65,7 @@ import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
65
65
  import com.facebook.react.bridge.ProxyJavaScriptExecutor;
66
66
  import com.facebook.react.bridge.ReactApplicationContext;
67
67
  import com.facebook.react.bridge.ReactContext;
68
+ import com.facebook.react.bridge.ReactCxxErrorHandler;
68
69
  import com.facebook.react.bridge.ReactMarker;
69
70
  import com.facebook.react.bridge.ReactMarkerConstants;
70
71
  import com.facebook.react.bridge.ReactNoCrashSoftException;
@@ -75,6 +76,7 @@ import com.facebook.react.bridge.WritableNativeMap;
75
76
  import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec;
76
77
  import com.facebook.react.common.LifecycleState;
77
78
  import com.facebook.react.common.ReactConstants;
79
+ import com.facebook.react.common.SurfaceDelegateFactory;
78
80
  import com.facebook.react.common.annotations.VisibleForTesting;
79
81
  import com.facebook.react.config.ReactFeatureFlags;
80
82
  import com.facebook.react.devsupport.DevSupportManagerFactory;
@@ -91,7 +93,6 @@ import com.facebook.react.modules.core.ReactChoreographer;
91
93
  import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
92
94
  import com.facebook.react.modules.fabric.ReactFabric;
93
95
  import com.facebook.react.packagerconnection.RequestHandler;
94
- import com.facebook.react.runtimescheduler.RuntimeSchedulerManager;
95
96
  import com.facebook.react.surface.ReactStage;
96
97
  import com.facebook.react.turbomodule.core.TurboModuleManager;
97
98
  import com.facebook.react.turbomodule.core.TurboModuleManagerDelegate;
@@ -107,6 +108,7 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
107
108
  import com.facebook.soloader.SoLoader;
108
109
  import com.facebook.systrace.Systrace;
109
110
  import com.facebook.systrace.SystraceMessage;
111
+ import java.lang.reflect.Method;
110
112
  import java.util.ArrayList;
111
113
  import java.util.Collection;
112
114
  import java.util.Collections;
@@ -156,14 +158,15 @@ public class ReactInstanceManager {
156
158
  /* accessed from any thread */
157
159
  private final JavaScriptExecutorFactory mJavaScriptExecutorFactory;
158
160
 
161
+ // See {@code ReactInstanceManagerBuilder} for description of all flags here.
159
162
  private @Nullable List<String> mViewManagerNames = null;
160
163
  private final @Nullable JSBundleLoader mBundleLoader;
161
164
  private final @Nullable String mJSMainModulePath; /* path to JS bundle root on Metro */
162
165
  private final List<ReactPackage> mPackages;
163
166
  private final DevSupportManager mDevSupportManager;
164
167
  private final boolean mUseDeveloperSupport;
168
+ private final boolean mRequireActivity;
165
169
  private @Nullable ComponentNameResolverManager mComponentNameResolverManager;
166
- private @Nullable RuntimeSchedulerManager mRuntimeSchedulerManager;
167
170
  private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
168
171
  private final Object mReactContextLock = new Object();
169
172
  private @Nullable volatile ReactContext mCurrentReactContext;
@@ -182,6 +185,7 @@ public class ReactInstanceManager {
182
185
  private final @Nullable JSIModulePackage mJSIModulePackage;
183
186
  private final @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
184
187
  private List<ViewManager> mViewManagers;
188
+ private boolean mUseFallbackBundle = false;
185
189
 
186
190
  private class ReactContextInitParams {
187
191
  private final JavaScriptExecutorFactory mJsExecutorFactory;
@@ -216,6 +220,8 @@ public class ReactInstanceManager {
216
220
  @Nullable String jsMainModulePath,
217
221
  List<ReactPackage> packages,
218
222
  boolean useDeveloperSupport,
223
+ DevSupportManagerFactory devSupportManagerFactory,
224
+ boolean requireActivity,
219
225
  @Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener,
220
226
  LifecycleState initialLifecycleState,
221
227
  @Nullable UIImplementationProvider mUIImplementationProvider,
@@ -227,12 +233,14 @@ public class ReactInstanceManager {
227
233
  int minTimeLeftInFrameForNonBatchedOperationMs,
228
234
  @Nullable JSIModulePackage jsiModulePackage,
229
235
  @Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
230
- @Nullable ReactPackageTurboModuleManagerDelegate.Builder tmmDelegateBuilder) {
236
+ @Nullable ReactPackageTurboModuleManagerDelegate.Builder tmmDelegateBuilder,
237
+ @Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
231
238
  FLog.d(TAG, "ReactInstanceManager.ctor()");
232
239
  initializeSoLoaderIfNecessary(applicationContext);
233
240
 
234
241
  DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(applicationContext);
235
242
 
243
+ // See {@code ReactInstanceManagerBuilder} for description of all flags here.
236
244
  mApplicationContext = applicationContext;
237
245
  mCurrentActivity = currentActivity;
238
246
  mDefaultBackButtonImpl = defaultHardwareBackBtnHandler;
@@ -241,10 +249,11 @@ public class ReactInstanceManager {
241
249
  mJSMainModulePath = jsMainModulePath;
242
250
  mPackages = new ArrayList<>();
243
251
  mUseDeveloperSupport = useDeveloperSupport;
252
+ mRequireActivity = requireActivity;
244
253
  Systrace.beginSection(
245
254
  Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "ReactInstanceManager.initDevSupportManager");
246
255
  mDevSupportManager =
247
- DevSupportManagerFactory.create(
256
+ devSupportManagerFactory.create(
248
257
  applicationContext,
249
258
  createDevHelperInterface(),
250
259
  mJSMainModulePath,
@@ -252,7 +261,8 @@ public class ReactInstanceManager {
252
261
  redBoxHandler,
253
262
  devBundleDownloadListener,
254
263
  minNumShakes,
255
- customPackagerCommandHandlers);
264
+ customPackagerCommandHandlers,
265
+ surfaceDelegateFactory);
256
266
  Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
257
267
  mBridgeIdleDebugListener = bridgeIdleDebugListener;
258
268
  mLifecycleState = initialLifecycleState;
@@ -286,6 +296,8 @@ public class ReactInstanceManager {
286
296
  if (mUseDeveloperSupport) {
287
297
  mDevSupportManager.startInspector();
288
298
  }
299
+
300
+ registerCxxErrorHandlerFunc();
289
301
  }
290
302
 
291
303
  private ReactInstanceDevHelper createDevHelperInterface() {
@@ -343,6 +355,10 @@ public class ReactInstanceManager {
343
355
  };
344
356
  }
345
357
 
358
+ public synchronized void setUseFallbackBundle(boolean useFallbackBundle) {
359
+ mUseFallbackBundle = useFallbackBundle;
360
+ }
361
+
346
362
  private JavaScriptExecutorFactory getJSExecutorFactory() {
347
363
  return mJavaScriptExecutorFactory;
348
364
  }
@@ -359,6 +375,22 @@ public class ReactInstanceManager {
359
375
  return new ArrayList<>(mPackages);
360
376
  }
361
377
 
378
+ public void handleCxxError(Exception e) {
379
+ mDevSupportManager.handleException(e);
380
+ }
381
+
382
+ public void registerCxxErrorHandlerFunc() {
383
+ Class[] parameterTypes = new Class[1];
384
+ parameterTypes[0] = Exception.class;
385
+ Method handleCxxErrorFunc = null;
386
+ try {
387
+ handleCxxErrorFunc = ReactInstanceManager.class.getMethod("handleCxxError", parameterTypes);
388
+ } catch (NoSuchMethodException e) {
389
+ FLog.e("ReactInstanceHolder", "Failed to set cxx error hanlder function", e);
390
+ }
391
+ ReactCxxErrorHandler.setHandleErrorFunc(this, handleCxxErrorFunc);
392
+ }
393
+
362
394
  static void initializeSoLoaderIfNecessary(Context applicationContext) {
363
395
  // Call SoLoader.initialize here, this is required for apps that does not use exopackage and
364
396
  // does not use SoLoader for loading other native code except from the one used by React Native
@@ -429,7 +461,8 @@ public class ReactInstanceManager {
429
461
  if (packagerIsRunning) {
430
462
  mDevSupportManager.handleReloadJS();
431
463
  } else if (mDevSupportManager.hasUpToDateJSBundleInCache()
432
- && !devSettings.isRemoteJSDebugEnabled()) {
464
+ && !devSettings.isRemoteJSDebugEnabled()
465
+ && !mUseFallbackBundle) {
433
466
  // If there is a up-to-date bundle downloaded from server,
434
467
  // with remote JS debugging disabled, always use that.
435
468
  onJSBundleLoadedFromServer();
@@ -558,16 +591,20 @@ public class ReactInstanceManager {
558
591
  * @param activity the activity being paused
559
592
  */
560
593
  @ThreadConfined(UI)
561
- public void onHostPause(Activity activity) {
562
- Assertions.assertNotNull(mCurrentActivity);
563
- Assertions.assertCondition(
564
- activity == mCurrentActivity,
565
- "Pausing an activity that is not the current activity, this is incorrect! "
566
- + "Current activity: "
567
- + mCurrentActivity.getClass().getSimpleName()
568
- + " "
569
- + "Paused activity: "
570
- + activity.getClass().getSimpleName());
594
+ public void onHostPause(@Nullable Activity activity) {
595
+ if (mRequireActivity) {
596
+ Assertions.assertCondition(mCurrentActivity != null);
597
+ }
598
+ if (mCurrentActivity != null) {
599
+ Assertions.assertCondition(
600
+ activity == mCurrentActivity,
601
+ "Pausing an activity that is not the current activity, this is incorrect! "
602
+ + "Current activity: "
603
+ + mCurrentActivity.getClass().getSimpleName()
604
+ + " "
605
+ + "Paused activity: "
606
+ + activity.getClass().getSimpleName());
607
+ }
571
608
  onHostPause();
572
609
  }
573
610
 
@@ -583,7 +620,8 @@ public class ReactInstanceManager {
583
620
  * this instance of {@link ReactInstanceManager}.
584
621
  */
585
622
  @ThreadConfined(UI)
586
- public void onHostResume(Activity activity, DefaultHardwareBackBtnHandler defaultBackButtonImpl) {
623
+ public void onHostResume(
624
+ @Nullable Activity activity, DefaultHardwareBackBtnHandler defaultBackButtonImpl) {
587
625
  UiThreadUtil.assertOnUiThread();
588
626
 
589
627
  mDefaultBackButtonImpl = defaultBackButtonImpl;
@@ -592,7 +630,7 @@ public class ReactInstanceManager {
592
630
 
593
631
  /** Use this method when the activity resumes. */
594
632
  @ThreadConfined(UI)
595
- public void onHostResume(Activity activity) {
633
+ public void onHostResume(@Nullable Activity activity) {
596
634
  UiThreadUtil.assertOnUiThread();
597
635
 
598
636
  mCurrentActivity = activity;
@@ -631,8 +669,8 @@ public class ReactInstanceManager {
631
669
  // activity is attached to window, we can enable dev support immediately
632
670
  mDevSupportManager.setDevSupportEnabled(true);
633
671
  }
634
- } else {
635
- // there is no activity, we can enable dev support
672
+ } else if (!mRequireActivity) {
673
+ // there is no activity, but we can enable dev support
636
674
  mDevSupportManager.setDevSupportEnabled(true);
637
675
  }
638
676
  }
@@ -666,7 +704,9 @@ public class ReactInstanceManager {
666
704
  * @param activity the activity being destroyed
667
705
  */
668
706
  @ThreadConfined(UI)
669
- public void onHostDestroy(Activity activity) {
707
+ public void onHostDestroy(@Nullable Activity activity) {
708
+ // In some cases, Activity may (correctly) be null.
709
+ // See mRequireActivity flag.
670
710
  if (activity == mCurrentActivity) {
671
711
  onHostDestroy();
672
712
  }
@@ -727,7 +767,6 @@ public class ReactInstanceManager {
727
767
  mViewManagerNames = null;
728
768
  }
729
769
  mComponentNameResolverManager = null;
730
- mRuntimeSchedulerManager = null;
731
770
  FLog.d(ReactConstants.TAG, "ReactInstanceManager has been destroyed");
732
771
  }
733
772
 
@@ -1190,7 +1229,8 @@ public class ReactInstanceManager {
1190
1229
  // If we can't get a UIManager something has probably gone horribly wrong
1191
1230
  if (uiManager == null) {
1192
1231
  throw new IllegalStateException(
1193
- "Unable to attach a rootView to ReactInstance when UIManager is not properly initialized.");
1232
+ "Unable to attach a rootView to ReactInstance when UIManager is not properly"
1233
+ + " initialized.");
1194
1234
  }
1195
1235
 
1196
1236
  @Nullable Bundle initialProperties = reactRoot.getAppProperties();
@@ -1362,9 +1402,6 @@ public class ReactInstanceManager {
1362
1402
  });
1363
1403
  catalystInstance.setGlobalVariable("__fbStaticViewConfig", "true");
1364
1404
  }
1365
- if (ReactFeatureFlags.enableRuntimeScheduler) {
1366
- mRuntimeSchedulerManager = new RuntimeSchedulerManager(catalystInstance.getRuntimeExecutor());
1367
- }
1368
1405
 
1369
1406
  ReactMarker.logMarker(ReactMarkerConstants.PRE_RUN_JS_BUNDLE_START);
1370
1407
  Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "runJSBundle");
@@ -14,6 +14,7 @@ import android.app.Activity;
14
14
  import android.app.Application;
15
15
  import android.content.Context;
16
16
  import androidx.annotation.Nullable;
17
+ import com.facebook.hermes.reactexecutor.HermesExecutor;
17
18
  import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
18
19
  import com.facebook.infer.annotation.Assertions;
19
20
  import com.facebook.react.bridge.JSBundleLoader;
@@ -22,9 +23,13 @@ import com.facebook.react.bridge.JavaScriptExecutorFactory;
22
23
  import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
23
24
  import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
24
25
  import com.facebook.react.common.LifecycleState;
26
+ import com.facebook.react.common.SurfaceDelegateFactory;
27
+ import com.facebook.react.devsupport.DefaultDevSupportManagerFactory;
28
+ import com.facebook.react.devsupport.DevSupportManagerFactory;
25
29
  import com.facebook.react.devsupport.RedBoxHandler;
26
30
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
27
31
  import com.facebook.react.devsupport.interfaces.DevSupportManager;
32
+ import com.facebook.react.jscexecutor.JSCExecutor;
28
33
  import com.facebook.react.jscexecutor.JSCExecutorFactory;
29
34
  import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
30
35
  import com.facebook.react.packagerconnection.RequestHandler;
@@ -45,6 +50,8 @@ public class ReactInstanceManagerBuilder {
45
50
  private @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
46
51
  private @Nullable Application mApplication;
47
52
  private boolean mUseDeveloperSupport;
53
+ private @Nullable DevSupportManagerFactory mDevSupportManagerFactory;
54
+ private boolean mRequireActivity;
48
55
  private @Nullable LifecycleState mInitialLifecycleState;
49
56
  private @Nullable UIImplementationProvider mUIImplementationProvider;
50
57
  private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
@@ -59,6 +66,7 @@ public class ReactInstanceManagerBuilder {
59
66
  private @Nullable JSIModulePackage mJSIModulesPackage;
60
67
  private @Nullable Map<String, RequestHandler> mCustomPackagerCommandHandlers;
61
68
  private @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
69
+ private @Nullable SurfaceDelegateFactory mSurfaceDelegateFactory;
62
70
 
63
71
  /* package protected */ ReactInstanceManagerBuilder() {}
64
72
 
@@ -171,6 +179,40 @@ public class ReactInstanceManagerBuilder {
171
179
  return this;
172
180
  }
173
181
 
182
+ /**
183
+ * Set the custom {@link DevSupportManagerFactory}. If not set, will use {@link
184
+ * DefaultDevSupportManagerFactory}.
185
+ */
186
+ public ReactInstanceManagerBuilder setDevSupportManagerFactory(
187
+ final DevSupportManagerFactory devSupportManagerFactory) {
188
+ mDevSupportManagerFactory = devSupportManagerFactory;
189
+ return this;
190
+ }
191
+
192
+ /**
193
+ * When {@code false}, indicates that correct usage of React Native will NOT involve an Activity.
194
+ * For the vast majority of Android apps in the ecosystem, this will not need to change. Unless
195
+ * you really know what you're doing, you should probably not change this!
196
+ */
197
+ public ReactInstanceManagerBuilder setRequireActivity(boolean requireActivity) {
198
+ mRequireActivity = requireActivity;
199
+ return this;
200
+ }
201
+
202
+ /**
203
+ * When the {@link SurfaceDelegateFactory} is provided, it will be used for native modules to get
204
+ * a {@link SurfaceDelegate} to interact with the platform specific surface that they that needs
205
+ * to be rendered in. For mobile platform this is default to be null so that these modules will
206
+ * need to provide a default surface delegate. One example of such native module is LogBoxModule,
207
+ * which is rendered in mobile platform with LogBoxDialog, while in VR platform with custom layer
208
+ * provided by runtime.
209
+ */
210
+ public ReactInstanceManagerBuilder setSurfaceDelegateFactory(
211
+ @Nullable final SurfaceDelegateFactory surfaceDelegateFactory) {
212
+ mSurfaceDelegateFactory = surfaceDelegateFactory;
213
+ return this;
214
+ }
215
+
174
216
  /**
175
217
  * Sets the initial lifecycle state of the host. For example, if the host is already resumed at
176
218
  * creation time, we wouldn't expect an onResume call until we get an onPause call.
@@ -283,6 +325,10 @@ public class ReactInstanceManagerBuilder {
283
325
  mJSMainModulePath,
284
326
  mPackages,
285
327
  mUseDeveloperSupport,
328
+ mDevSupportManagerFactory == null
329
+ ? new DefaultDevSupportManagerFactory()
330
+ : mDevSupportManagerFactory,
331
+ mRequireActivity,
286
332
  mBridgeIdleDebugListener,
287
333
  Assertions.assertNotNull(mInitialLifecycleState, "Initial lifecycle state was not set"),
288
334
  mUIImplementationProvider,
@@ -294,7 +340,8 @@ public class ReactInstanceManagerBuilder {
294
340
  mMinTimeLeftInFrameForNonBatchedOperationMs,
295
341
  mJSIModulesPackage,
296
342
  mCustomPackagerCommandHandlers,
297
- mTMMDelegateBuilder);
343
+ mTMMDelegateBuilder,
344
+ mSurfaceDelegateFactory);
298
345
  }
299
346
 
300
347
  private JavaScriptExecutorFactory getDefaultJSExecutorFactory(
@@ -302,7 +349,7 @@ public class ReactInstanceManagerBuilder {
302
349
  try {
303
350
  // If JSC is included, use it as normal
304
351
  initializeSoLoaderIfNecessary(applicationContext);
305
- SoLoader.loadLibrary("jscexecutor");
352
+ JSCExecutor.loadLibrary();
306
353
  return new JSCExecutorFactory(appName, deviceName);
307
354
  } catch (UnsatisfiedLinkError jscE) {
308
355
  // https://github.com/facebook/hermes/issues/78 shows that
@@ -320,6 +367,7 @@ public class ReactInstanceManagerBuilder {
320
367
 
321
368
  // Otherwise use Hermes
322
369
  try {
370
+ HermesExecutor.loadLibrary();
323
371
  return new HermesExecutorFactory();
324
372
  } catch (UnsatisfiedLinkError hermesE) {
325
373
  // If we get here, either this is a JSC build, and of course
@@ -15,6 +15,9 @@ import com.facebook.react.bridge.JavaScriptExecutorFactory;
15
15
  import com.facebook.react.bridge.ReactMarker;
16
16
  import com.facebook.react.bridge.ReactMarkerConstants;
17
17
  import com.facebook.react.common.LifecycleState;
18
+ import com.facebook.react.common.SurfaceDelegate;
19
+ import com.facebook.react.common.SurfaceDelegateFactory;
20
+ import com.facebook.react.devsupport.DevSupportManagerFactory;
18
21
  import com.facebook.react.devsupport.RedBoxHandler;
19
22
  import com.facebook.react.uimanager.UIImplementationProvider;
20
23
  import java.util.List;
@@ -68,6 +71,9 @@ public abstract class ReactNativeHost {
68
71
  .setApplication(mApplication)
69
72
  .setJSMainModulePath(getJSMainModuleName())
70
73
  .setUseDeveloperSupport(getUseDeveloperSupport())
74
+ .setDevSupportManagerFactory(getDevSupportManagerFactory())
75
+ .setRequireActivity(getShouldRequireActivity())
76
+ .setSurfaceDelegateFactory(getSurfaceDelegateFactory())
71
77
  .setRedBoxHandler(getRedBoxHandler())
72
78
  .setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
73
79
  .setUIImplementationProvider(getUIImplementationProvider())
@@ -124,6 +130,26 @@ public abstract class ReactNativeHost {
124
130
  return null;
125
131
  }
126
132
 
133
+ /** Returns whether or not to treat it as normal if Activity is null. */
134
+ public boolean getShouldRequireActivity() {
135
+ return true;
136
+ }
137
+
138
+ /**
139
+ * Return the {@link SurfaceDelegateFactory} used by NativeModules to get access to a {@link
140
+ * SurfaceDelegate} to interact with a surface. By default in the mobile platform the {@link
141
+ * SurfaceDelegate} it returns is null, and the NativeModule needs to implement its own {@link
142
+ * SurfaceDelegate} to decide how it would interact with its own container surface.
143
+ */
144
+ public SurfaceDelegateFactory getSurfaceDelegateFactory() {
145
+ return new SurfaceDelegateFactory() {
146
+ @Override
147
+ public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) {
148
+ return null;
149
+ }
150
+ };
151
+ }
152
+
127
153
  /**
128
154
  * Returns the name of the main module. Determines the URL used to fetch the JS bundle from Metro.
129
155
  * It is only used when dev support is enabled. This is the first file to be executed once the
@@ -154,6 +180,11 @@ public abstract class ReactNativeHost {
154
180
  /** Returns whether dev mode should be enabled. This enables e.g. the dev menu. */
155
181
  public abstract boolean getUseDeveloperSupport();
156
182
 
183
+ /** Get the {@link DevSupportManagerFactory}. Override this to use a custom dev support manager */
184
+ protected @Nullable DevSupportManagerFactory getDevSupportManagerFactory() {
185
+ return null;
186
+ }
187
+
157
188
  /**
158
189
  * Returns a list of {@link ReactPackage} used by the app. You'll most likely want to return at
159
190
  * least the {@code MainReactPackage}. If your app uses additional views or modules besides the
@@ -16,8 +16,10 @@ import android.content.Context;
16
16
  import android.graphics.Canvas;
17
17
  import android.graphics.Point;
18
18
  import android.graphics.Rect;
19
+ import android.os.Build;
19
20
  import android.os.Bundle;
20
21
  import android.util.AttributeSet;
22
+ import android.view.DisplayCutout;
21
23
  import android.view.KeyEvent;
22
24
  import android.view.MotionEvent;
23
25
  import android.view.Surface;
@@ -647,6 +649,11 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
647
649
  mJSTouchDispatcher = new JSTouchDispatcher(this);
648
650
  }
649
651
 
652
+ @VisibleForTesting
653
+ /* package */ void simulateCheckForKeyboardForTesting() {
654
+ getCustomGlobalLayoutListener().checkForKeyboardEvents();
655
+ }
656
+
650
657
  private CustomGlobalLayoutListener getCustomGlobalLayoutListener() {
651
658
  if (mCustomGlobalLayoutListener == null) {
652
659
  mCustomGlobalLayoutListener = new CustomGlobalLayoutListener();
@@ -766,8 +773,17 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
766
773
 
767
774
  private void checkForKeyboardEvents() {
768
775
  getRootView().getWindowVisibleDisplayFrame(mVisibleViewArea);
776
+ int notchHeight = 0;
777
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
778
+ DisplayCutout displayCutout = getRootView().getRootWindowInsets().getDisplayCutout();
779
+ if (displayCutout != null) {
780
+ notchHeight = displayCutout.getSafeInsetTop();
781
+ }
782
+ }
769
783
  final int heightDiff =
770
- DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels - mVisibleViewArea.bottom;
784
+ DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels
785
+ - mVisibleViewArea.bottom
786
+ + notchHeight;
771
787
 
772
788
  boolean isKeyboardShowingOrKeyboardHeightChanged =
773
789
  mKeyboardHeight != heightDiff && heightDiff > mMinKeyboardHeightDetected;
@@ -111,6 +111,8 @@ public interface CatalystInstance
111
111
 
112
112
  RuntimeExecutor getRuntimeExecutor();
113
113
 
114
+ RuntimeScheduler getRuntimeScheduler();
115
+
114
116
  void addJSIModules(List<JSIModuleSpec> jsiModules);
115
117
 
116
118
  /**
@@ -108,7 +108,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
108
108
  // C++ parts
109
109
  private final HybridData mHybridData;
110
110
 
111
- private static native HybridData initHybrid();
111
+ private static native HybridData initHybrid(
112
+ boolean enableRuntimeScheduler, boolean enableRuntimeSchedulerInTurboModule);
112
113
 
113
114
  public native CallInvokerHolderImpl getJSCallInvokerHolder();
114
115
 
@@ -123,7 +124,15 @@ public class CatalystInstanceImpl implements CatalystInstance {
123
124
  FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge.");
124
125
  Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createCatalystInstanceImpl");
125
126
 
126
- mHybridData = initHybrid();
127
+ if (ReactFeatureFlags.enableRuntimeSchedulerInTurboModule
128
+ && !ReactFeatureFlags.enableRuntimeScheduler) {
129
+ Assertions.assertUnreachable();
130
+ }
131
+
132
+ mHybridData =
133
+ initHybrid(
134
+ ReactFeatureFlags.enableRuntimeScheduler,
135
+ ReactFeatureFlags.enableRuntimeSchedulerInTurboModule);
127
136
 
128
137
  mReactQueueConfiguration =
129
138
  ReactQueueConfigurationImpl.create(
@@ -558,6 +567,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
558
567
 
559
568
  public native RuntimeExecutor getRuntimeExecutor();
560
569
 
570
+ public native RuntimeScheduler getRuntimeScheduler();
571
+
561
572
  @Override
562
573
  public void addJSIModules(List<JSIModuleSpec> jsiModules) {
563
574
  mJSIModuleRegistry.registerModules(jsiModules);
@@ -91,6 +91,7 @@ public class ReactContext extends ContextWrapper {
91
91
 
92
92
  /** Initialize message queue threads using a ReactQueueConfiguration. */
93
93
  public synchronized void initializeMessageQueueThreads(ReactQueueConfiguration queueConfig) {
94
+ FLog.w(TAG, "initializeMessageQueueThreads() is called.");
94
95
  if (mUiMessageQueueThread != null
95
96
  || mNativeModulesMessageQueueThread != null
96
97
  || mJSMessageQueueThread != null) {
@@ -0,0 +1,39 @@
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.bridge;
9
+
10
+ import com.facebook.common.logging.FLog;
11
+ import com.facebook.proguard.annotations.DoNotStrip;
12
+ import java.lang.reflect.Method;
13
+
14
+ @DoNotStrip
15
+ public class ReactCxxErrorHandler {
16
+
17
+ private static Method mHandleErrorFunc;
18
+ private static Object mObject;
19
+
20
+ @DoNotStrip
21
+ public static void setHandleErrorFunc(Object object, Method handleErrorFunc) {
22
+ mObject = object;
23
+ mHandleErrorFunc = handleErrorFunc;
24
+ }
25
+
26
+ @DoNotStrip
27
+ // For use from within the C++ JReactCxxErrorHandler
28
+ private static void handleError(final String message) {
29
+ if (mHandleErrorFunc != null) {
30
+ try {
31
+ Object[] parameters = new Object[1];
32
+ parameters[0] = new Exception(message);
33
+ mHandleErrorFunc.invoke(mObject, parameters);
34
+ } catch (Exception e) {
35
+ FLog.e("ReactCxxErrorHandler", "Failed to invole error hanlder function", e);
36
+ }
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,21 @@
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.bridge;
9
+
10
+ import com.facebook.jni.HybridData;
11
+ import com.facebook.proguard.annotations.DoNotStrip;
12
+
13
+ /** A Java holder for a C++ RuntimeScheduler. */
14
+ public class RuntimeScheduler {
15
+
16
+ @DoNotStrip private HybridData mHybridData;
17
+
18
+ public RuntimeScheduler(HybridData hybridData) {
19
+ mHybridData = hybridData;
20
+ }
21
+ }
@@ -1,4 +1,4 @@
1
- load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "rn_android_build_config", "rn_android_library")
1
+ load("//tools/build_defs/oss:rn_defs.bzl", "HERMES_BYTECODE_VERSION", "react_native_dep", "rn_android_build_config", "rn_android_library")
2
2
 
3
3
  SUB_PROJECTS = [
4
4
  "network/**/*",
@@ -41,7 +41,7 @@ rn_android_build_config(
41
41
  package = "com.facebook.react",
42
42
  values = [
43
43
  "boolean IS_INTERNAL_BUILD = true",
44
- "int HERMES_BYTECODE_VERSION = 0",
44
+ "int HERMES_BYTECODE_VERSION = {}".format(HERMES_BYTECODE_VERSION),
45
45
  ],
46
46
  visibility = [
47
47
  "PUBLIC",