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
@@ -8,6 +8,7 @@
8
8
  package com.facebook.react;
9
9
 
10
10
  import android.content.Intent;
11
+ import android.content.res.Configuration;
11
12
  import android.os.Bundle;
12
13
  import android.view.KeyEvent;
13
14
  import androidx.annotation.Nullable;
@@ -121,6 +122,12 @@ public abstract class ReactActivity extends AppCompatActivity
121
122
  mDelegate.onWindowFocusChanged(hasFocus);
122
123
  }
123
124
 
125
+ @Override
126
+ public void onConfigurationChanged(Configuration newConfig) {
127
+ super.onConfigurationChanged(newConfig);
128
+ mDelegate.onConfigurationChanged(newConfig);
129
+ }
130
+
124
131
  protected final ReactNativeHost getReactNativeHost() {
125
132
  return mDelegate.getReactNativeHost();
126
133
  }
@@ -11,6 +11,7 @@ import android.annotation.TargetApi;
11
11
  import android.app.Activity;
12
12
  import android.content.Context;
13
13
  import android.content.Intent;
14
+ import android.content.res.Configuration;
14
15
  import android.os.Build;
15
16
  import android.os.Bundle;
16
17
  import android.view.KeyEvent;
@@ -154,6 +155,12 @@ public class ReactActivityDelegate {
154
155
  }
155
156
  }
156
157
 
158
+ public void onConfigurationChanged(Configuration newConfig) {
159
+ if (getReactNativeHost().hasInstance()) {
160
+ getReactInstanceManager().onConfigurationChanged(getContext(), newConfig);
161
+ }
162
+ }
163
+
157
164
  @TargetApi(Build.VERSION_CODES.M)
158
165
  public void requestPermissions(
159
166
  String[] permissions, int requestCode, PermissionListener listener) {
@@ -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");
@@ -22,6 +22,9 @@ import com.facebook.react.bridge.JavaScriptExecutorFactory;
22
22
  import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
23
23
  import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
24
24
  import com.facebook.react.common.LifecycleState;
25
+ import com.facebook.react.common.SurfaceDelegateFactory;
26
+ import com.facebook.react.devsupport.DefaultDevSupportManagerFactory;
27
+ import com.facebook.react.devsupport.DevSupportManagerFactory;
25
28
  import com.facebook.react.devsupport.RedBoxHandler;
26
29
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
27
30
  import com.facebook.react.devsupport.interfaces.DevSupportManager;
@@ -45,6 +48,8 @@ public class ReactInstanceManagerBuilder {
45
48
  private @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
46
49
  private @Nullable Application mApplication;
47
50
  private boolean mUseDeveloperSupport;
51
+ private @Nullable DevSupportManagerFactory mDevSupportManagerFactory;
52
+ private boolean mRequireActivity;
48
53
  private @Nullable LifecycleState mInitialLifecycleState;
49
54
  private @Nullable UIImplementationProvider mUIImplementationProvider;
50
55
  private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
@@ -59,6 +64,7 @@ public class ReactInstanceManagerBuilder {
59
64
  private @Nullable JSIModulePackage mJSIModulesPackage;
60
65
  private @Nullable Map<String, RequestHandler> mCustomPackagerCommandHandlers;
61
66
  private @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
67
+ private @Nullable SurfaceDelegateFactory mSurfaceDelegateFactory;
62
68
 
63
69
  /* package protected */ ReactInstanceManagerBuilder() {}
64
70
 
@@ -171,6 +177,40 @@ public class ReactInstanceManagerBuilder {
171
177
  return this;
172
178
  }
173
179
 
180
+ /**
181
+ * Set the custom {@link DevSupportManagerFactory}. If not set, will use {@link
182
+ * DefaultDevSupportManagerFactory}.
183
+ */
184
+ public ReactInstanceManagerBuilder setDevSupportManagerFactory(
185
+ final DevSupportManagerFactory devSupportManagerFactory) {
186
+ mDevSupportManagerFactory = devSupportManagerFactory;
187
+ return this;
188
+ }
189
+
190
+ /**
191
+ * When {@code false}, indicates that correct usage of React Native will NOT involve an Activity.
192
+ * For the vast majority of Android apps in the ecosystem, this will not need to change. Unless
193
+ * you really know what you're doing, you should probably not change this!
194
+ */
195
+ public ReactInstanceManagerBuilder setRequireActivity(boolean requireActivity) {
196
+ mRequireActivity = requireActivity;
197
+ return this;
198
+ }
199
+
200
+ /**
201
+ * When the {@link SurfaceDelegateFactory} is provided, it will be used for native modules to get
202
+ * a {@link SurfaceDelegate} to interact with the platform specific surface that they that needs
203
+ * to be rendered in. For mobile platform this is default to be null so that these modules will
204
+ * need to provide a default surface delegate. One example of such native module is LogBoxModule,
205
+ * which is rendered in mobile platform with LogBoxDialog, while in VR platform with custom layer
206
+ * provided by runtime.
207
+ */
208
+ public ReactInstanceManagerBuilder setSurfaceDelegateFactory(
209
+ @Nullable final SurfaceDelegateFactory surfaceDelegateFactory) {
210
+ mSurfaceDelegateFactory = surfaceDelegateFactory;
211
+ return this;
212
+ }
213
+
174
214
  /**
175
215
  * Sets the initial lifecycle state of the host. For example, if the host is already resumed at
176
216
  * creation time, we wouldn't expect an onResume call until we get an onPause call.
@@ -283,6 +323,10 @@ public class ReactInstanceManagerBuilder {
283
323
  mJSMainModulePath,
284
324
  mPackages,
285
325
  mUseDeveloperSupport,
326
+ mDevSupportManagerFactory == null
327
+ ? new DefaultDevSupportManagerFactory()
328
+ : mDevSupportManagerFactory,
329
+ mRequireActivity,
286
330
  mBridgeIdleDebugListener,
287
331
  Assertions.assertNotNull(mInitialLifecycleState, "Initial lifecycle state was not set"),
288
332
  mUIImplementationProvider,
@@ -294,7 +338,8 @@ public class ReactInstanceManagerBuilder {
294
338
  mMinTimeLeftInFrameForNonBatchedOperationMs,
295
339
  mJSIModulesPackage,
296
340
  mCustomPackagerCommandHandlers,
297
- mTMMDelegateBuilder);
341
+ mTMMDelegateBuilder,
342
+ mSurfaceDelegateFactory);
298
343
  }
299
344
 
300
345
  private JavaScriptExecutorFactory getDefaultJSExecutorFactory(
@@ -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",
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.common;
9
+
10
+ /**
11
+ * Interface for handling a surface in React Native. In mobile platform a surface can be any
12
+ * container that holds some {@link View}. For example, a Dialog can be a surface to wrap content
13
+ * view object as needed. In VR platform, a surface is provided by Shell panel app sdk, which
14
+ * requires custom logic to show/hide. NativeModules requires a surface will delegate interactions
15
+ * with the surface to a SurfaceDelegate.
16
+ */
17
+ public interface SurfaceDelegate {
18
+ /**
19
+ * Create the React content view that uses the appKey as the React application name
20
+ *
21
+ * @param appKey
22
+ */
23
+ void createContentView(String appKey);
24
+
25
+ /**
26
+ * Check if the content view is created and ready to be shown
27
+ *
28
+ * @return true if the content view is ready to be shown
29
+ */
30
+ boolean isContentViewReady();
31
+
32
+ /** Destroy the React content view to avoid memory leak */
33
+ void destroyContentView();
34
+
35
+ /** Show the surface containing the React content view */
36
+ void show();
37
+
38
+ /** Hide the surface containing the React content view */
39
+ void hide();
40
+ }