react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec

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 (616) 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 +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -27,8 +27,8 @@ import com.facebook.react.modules.core.PermissionListener;
27
27
  */
28
28
  public class ReactFragment extends Fragment implements PermissionAwareActivity {
29
29
 
30
- private static final String ARG_COMPONENT_NAME = "arg_component_name";
31
- private static final String ARG_LAUNCH_OPTIONS = "arg_launch_options";
30
+ protected static final String ARG_COMPONENT_NAME = "arg_component_name";
31
+ protected static final String ARG_LAUNCH_OPTIONS = "arg_launch_options";
32
32
 
33
33
  private ReactDelegate mReactDelegate;
34
34
 
@@ -79,6 +79,10 @@ public class ReactFragment extends Fragment implements PermissionAwareActivity {
79
79
  return ((ReactApplication) getActivity().getApplication()).getReactNativeHost();
80
80
  }
81
81
 
82
+ protected ReactDelegate getReactDelegate() {
83
+ return mReactDelegate;
84
+ }
85
+
82
86
  @Override
83
87
  public View onCreateView(
84
88
  LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -65,10 +65,11 @@ 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;
71
- import com.facebook.react.bridge.ReactSoftException;
72
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
72
73
  import com.facebook.react.bridge.UIManager;
73
74
  import com.facebook.react.bridge.UiThreadUtil;
74
75
  import com.facebook.react.bridge.WritableNativeMap;
@@ -91,7 +92,6 @@ import com.facebook.react.modules.core.ReactChoreographer;
91
92
  import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
92
93
  import com.facebook.react.modules.fabric.ReactFabric;
93
94
  import com.facebook.react.packagerconnection.RequestHandler;
94
- import com.facebook.react.runtimescheduler.RuntimeSchedulerManager;
95
95
  import com.facebook.react.surface.ReactStage;
96
96
  import com.facebook.react.turbomodule.core.TurboModuleManager;
97
97
  import com.facebook.react.turbomodule.core.TurboModuleManagerDelegate;
@@ -107,6 +107,7 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
107
107
  import com.facebook.soloader.SoLoader;
108
108
  import com.facebook.systrace.Systrace;
109
109
  import com.facebook.systrace.SystraceMessage;
110
+ import java.lang.reflect.Method;
110
111
  import java.util.ArrayList;
111
112
  import java.util.Collection;
112
113
  import java.util.Collections;
@@ -156,14 +157,15 @@ public class ReactInstanceManager {
156
157
  /* accessed from any thread */
157
158
  private final JavaScriptExecutorFactory mJavaScriptExecutorFactory;
158
159
 
160
+ // See {@code ReactInstanceManagerBuilder} for description of all flags here.
159
161
  private @Nullable List<String> mViewManagerNames = null;
160
162
  private final @Nullable JSBundleLoader mBundleLoader;
161
163
  private final @Nullable String mJSMainModulePath; /* path to JS bundle root on Metro */
162
164
  private final List<ReactPackage> mPackages;
163
165
  private final DevSupportManager mDevSupportManager;
164
166
  private final boolean mUseDeveloperSupport;
167
+ private final boolean mRequireActivity;
165
168
  private @Nullable ComponentNameResolverManager mComponentNameResolverManager;
166
- private @Nullable RuntimeSchedulerManager mRuntimeSchedulerManager;
167
169
  private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
168
170
  private final Object mReactContextLock = new Object();
169
171
  private @Nullable volatile ReactContext mCurrentReactContext;
@@ -182,6 +184,7 @@ public class ReactInstanceManager {
182
184
  private final @Nullable JSIModulePackage mJSIModulePackage;
183
185
  private final @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
184
186
  private List<ViewManager> mViewManagers;
187
+ private boolean mUseFallbackBundle = false;
185
188
 
186
189
  private class ReactContextInitParams {
187
190
  private final JavaScriptExecutorFactory mJsExecutorFactory;
@@ -216,6 +219,8 @@ public class ReactInstanceManager {
216
219
  @Nullable String jsMainModulePath,
217
220
  List<ReactPackage> packages,
218
221
  boolean useDeveloperSupport,
222
+ DevSupportManagerFactory devSupportManagerFactory,
223
+ boolean requireActivity,
219
224
  @Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener,
220
225
  LifecycleState initialLifecycleState,
221
226
  @Nullable UIImplementationProvider mUIImplementationProvider,
@@ -233,6 +238,7 @@ public class ReactInstanceManager {
233
238
 
234
239
  DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(applicationContext);
235
240
 
241
+ // See {@code ReactInstanceManagerBuilder} for description of all flags here.
236
242
  mApplicationContext = applicationContext;
237
243
  mCurrentActivity = currentActivity;
238
244
  mDefaultBackButtonImpl = defaultHardwareBackBtnHandler;
@@ -241,10 +247,11 @@ public class ReactInstanceManager {
241
247
  mJSMainModulePath = jsMainModulePath;
242
248
  mPackages = new ArrayList<>();
243
249
  mUseDeveloperSupport = useDeveloperSupport;
250
+ mRequireActivity = requireActivity;
244
251
  Systrace.beginSection(
245
252
  Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "ReactInstanceManager.initDevSupportManager");
246
253
  mDevSupportManager =
247
- DevSupportManagerFactory.create(
254
+ devSupportManagerFactory.create(
248
255
  applicationContext,
249
256
  createDevHelperInterface(),
250
257
  mJSMainModulePath,
@@ -286,6 +293,8 @@ public class ReactInstanceManager {
286
293
  if (mUseDeveloperSupport) {
287
294
  mDevSupportManager.startInspector();
288
295
  }
296
+
297
+ registerCxxErrorHandlerFunc();
289
298
  }
290
299
 
291
300
  private ReactInstanceDevHelper createDevHelperInterface() {
@@ -343,6 +352,10 @@ public class ReactInstanceManager {
343
352
  };
344
353
  }
345
354
 
355
+ public synchronized void setUseFallbackBundle(boolean useFallbackBundle) {
356
+ mUseFallbackBundle = useFallbackBundle;
357
+ }
358
+
346
359
  private JavaScriptExecutorFactory getJSExecutorFactory() {
347
360
  return mJavaScriptExecutorFactory;
348
361
  }
@@ -359,6 +372,22 @@ public class ReactInstanceManager {
359
372
  return new ArrayList<>(mPackages);
360
373
  }
361
374
 
375
+ public void handleCxxError(Exception e) {
376
+ mDevSupportManager.handleException(e);
377
+ }
378
+
379
+ public void registerCxxErrorHandlerFunc() {
380
+ Class[] parameterTypes = new Class[1];
381
+ parameterTypes[0] = Exception.class;
382
+ Method handleCxxErrorFunc = null;
383
+ try {
384
+ handleCxxErrorFunc = ReactInstanceManager.class.getMethod("handleCxxError", parameterTypes);
385
+ } catch (NoSuchMethodException e) {
386
+ FLog.e("ReactInstanceHolder", "Failed to set cxx error hanlder function", e);
387
+ }
388
+ ReactCxxErrorHandler.setHandleErrorFunc(this, handleCxxErrorFunc);
389
+ }
390
+
362
391
  static void initializeSoLoaderIfNecessary(Context applicationContext) {
363
392
  // Call SoLoader.initialize here, this is required for apps that does not use exopackage and
364
393
  // does not use SoLoader for loading other native code except from the one used by React Native
@@ -429,7 +458,8 @@ public class ReactInstanceManager {
429
458
  if (packagerIsRunning) {
430
459
  mDevSupportManager.handleReloadJS();
431
460
  } else if (mDevSupportManager.hasUpToDateJSBundleInCache()
432
- && !devSettings.isRemoteJSDebugEnabled()) {
461
+ && !devSettings.isRemoteJSDebugEnabled()
462
+ && !mUseFallbackBundle) {
433
463
  // If there is a up-to-date bundle downloaded from server,
434
464
  // with remote JS debugging disabled, always use that.
435
465
  onJSBundleLoadedFromServer();
@@ -524,7 +554,7 @@ public class ReactInstanceManager {
524
554
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
525
555
  .emit("toggleElementInspector", null);
526
556
  } else {
527
- ReactSoftException.logSoftException(
557
+ ReactSoftExceptionLogger.logSoftException(
528
558
  TAG,
529
559
  new ReactNoCrashSoftException(
530
560
  "Cannot toggleElementInspector, CatalystInstance not available"));
@@ -558,16 +588,20 @@ public class ReactInstanceManager {
558
588
  * @param activity the activity being paused
559
589
  */
560
590
  @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());
591
+ public void onHostPause(@Nullable Activity activity) {
592
+ if (mRequireActivity) {
593
+ Assertions.assertCondition(mCurrentActivity != null);
594
+ }
595
+ if (mCurrentActivity != null) {
596
+ Assertions.assertCondition(
597
+ activity == mCurrentActivity,
598
+ "Pausing an activity that is not the current activity, this is incorrect! "
599
+ + "Current activity: "
600
+ + mCurrentActivity.getClass().getSimpleName()
601
+ + " "
602
+ + "Paused activity: "
603
+ + activity.getClass().getSimpleName());
604
+ }
571
605
  onHostPause();
572
606
  }
573
607
 
@@ -583,7 +617,8 @@ public class ReactInstanceManager {
583
617
  * this instance of {@link ReactInstanceManager}.
584
618
  */
585
619
  @ThreadConfined(UI)
586
- public void onHostResume(Activity activity, DefaultHardwareBackBtnHandler defaultBackButtonImpl) {
620
+ public void onHostResume(
621
+ @Nullable Activity activity, DefaultHardwareBackBtnHandler defaultBackButtonImpl) {
587
622
  UiThreadUtil.assertOnUiThread();
588
623
 
589
624
  mDefaultBackButtonImpl = defaultBackButtonImpl;
@@ -592,40 +627,47 @@ public class ReactInstanceManager {
592
627
 
593
628
  /** Use this method when the activity resumes. */
594
629
  @ThreadConfined(UI)
595
- public void onHostResume(Activity activity) {
630
+ public void onHostResume(@Nullable Activity activity) {
596
631
  UiThreadUtil.assertOnUiThread();
597
632
 
598
633
  mCurrentActivity = activity;
599
634
 
600
635
  if (mUseDeveloperSupport) {
601
- // Resume can be called from one of two different states:
636
+ // Resume can be called from one of three different states:
602
637
  // a) when activity was paused
603
638
  // b) when activity has just been created
639
+ // c) when there is no activity
604
640
  // In case of (a) the activity is attached to window and it is ok to add new views to it or
605
641
  // open dialogs. In case of (b) there is often a slight delay before such a thing happens.
606
642
  // As dev support manager can add views or open dialogs immediately after it gets enabled
607
643
  // (e.g. in the case when JS bundle is being fetched in background) we only want to enable
608
644
  // it once we know for sure the current activity is attached.
645
+ // We want to enable the various devsupport tools in case of (c) even without any activity
646
+
647
+ if (mCurrentActivity != null) {
648
+ // We check if activity is attached to window by checking if decor view is attached
649
+ final View decorView = mCurrentActivity.getWindow().getDecorView();
650
+ if (!ViewCompat.isAttachedToWindow(decorView)) {
651
+ decorView.addOnAttachStateChangeListener(
652
+ new View.OnAttachStateChangeListener() {
653
+ @Override
654
+ public void onViewAttachedToWindow(View v) {
655
+ // we can drop listener now that we know the view is attached
656
+ decorView.removeOnAttachStateChangeListener(this);
657
+ mDevSupportManager.setDevSupportEnabled(true);
658
+ }
609
659
 
610
- // We check if activity is attached to window by checking if decor view is attached
611
- final View decorView = mCurrentActivity.getWindow().getDecorView();
612
- if (!ViewCompat.isAttachedToWindow(decorView)) {
613
- decorView.addOnAttachStateChangeListener(
614
- new View.OnAttachStateChangeListener() {
615
- @Override
616
- public void onViewAttachedToWindow(View v) {
617
- // we can drop listener now that we know the view is attached
618
- decorView.removeOnAttachStateChangeListener(this);
619
- mDevSupportManager.setDevSupportEnabled(true);
620
- }
621
-
622
- @Override
623
- public void onViewDetachedFromWindow(View v) {
624
- // do nothing
625
- }
626
- });
627
- } else {
628
- // activity is attached to window, we can enable dev support immediately
660
+ @Override
661
+ public void onViewDetachedFromWindow(View v) {
662
+ // do nothing
663
+ }
664
+ });
665
+ } else {
666
+ // activity is attached to window, we can enable dev support immediately
667
+ mDevSupportManager.setDevSupportEnabled(true);
668
+ }
669
+ } else if (!mRequireActivity) {
670
+ // there is no activity, but we can enable dev support
629
671
  mDevSupportManager.setDevSupportEnabled(true);
630
672
  }
631
673
  }
@@ -659,7 +701,9 @@ public class ReactInstanceManager {
659
701
  * @param activity the activity being destroyed
660
702
  */
661
703
  @ThreadConfined(UI)
662
- public void onHostDestroy(Activity activity) {
704
+ public void onHostDestroy(@Nullable Activity activity) {
705
+ // In some cases, Activity may (correctly) be null.
706
+ // See mRequireActivity flag.
663
707
  if (activity == mCurrentActivity) {
664
708
  onHostDestroy();
665
709
  }
@@ -720,7 +764,6 @@ public class ReactInstanceManager {
720
764
  mViewManagerNames = null;
721
765
  }
722
766
  mComponentNameResolverManager = null;
723
- mRuntimeSchedulerManager = null;
724
767
  FLog.d(ReactConstants.TAG, "ReactInstanceManager has been destroyed");
725
768
  }
726
769
 
@@ -1183,7 +1226,8 @@ public class ReactInstanceManager {
1183
1226
  // If we can't get a UIManager something has probably gone horribly wrong
1184
1227
  if (uiManager == null) {
1185
1228
  throw new IllegalStateException(
1186
- "Unable to attach a rootView to ReactInstance when UIManager is not properly initialized.");
1229
+ "Unable to attach a rootView to ReactInstance when UIManager is not properly"
1230
+ + " initialized.");
1187
1231
  }
1188
1232
 
1189
1233
  @Nullable Bundle initialProperties = reactRoot.getAppProperties();
@@ -1324,6 +1368,10 @@ public class ReactInstanceManager {
1324
1368
  }
1325
1369
  }
1326
1370
 
1371
+ if (ReactFeatureFlags.enableRuntimeScheduler) {
1372
+ catalystInstance.installRuntimeScheduler();
1373
+ }
1374
+
1327
1375
  if (mJSIModulePackage != null) {
1328
1376
  catalystInstance.addJSIModules(
1329
1377
  mJSIModulePackage.getJSIModules(
@@ -1355,9 +1403,6 @@ public class ReactInstanceManager {
1355
1403
  });
1356
1404
  catalystInstance.setGlobalVariable("__fbStaticViewConfig", "true");
1357
1405
  }
1358
- if (ReactFeatureFlags.enableRuntimeScheduler) {
1359
- mRuntimeSchedulerManager = new RuntimeSchedulerManager(catalystInstance.getRuntimeExecutor());
1360
- }
1361
1406
 
1362
1407
  ReactMarker.logMarker(ReactMarkerConstants.PRE_RUN_JS_BUNDLE_START);
1363
1408
  Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "runJSBundle");
@@ -22,6 +22,8 @@ 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.devsupport.DefaultDevSupportManagerFactory;
26
+ import com.facebook.react.devsupport.DevSupportManagerFactory;
25
27
  import com.facebook.react.devsupport.RedBoxHandler;
26
28
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
27
29
  import com.facebook.react.devsupport.interfaces.DevSupportManager;
@@ -45,6 +47,8 @@ public class ReactInstanceManagerBuilder {
45
47
  private @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
46
48
  private @Nullable Application mApplication;
47
49
  private boolean mUseDeveloperSupport;
50
+ private @Nullable DevSupportManagerFactory mDevSupportManagerFactory;
51
+ private boolean mRequireActivity;
48
52
  private @Nullable LifecycleState mInitialLifecycleState;
49
53
  private @Nullable UIImplementationProvider mUIImplementationProvider;
50
54
  private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
@@ -171,6 +175,26 @@ public class ReactInstanceManagerBuilder {
171
175
  return this;
172
176
  }
173
177
 
178
+ /**
179
+ * Set the custom {@link DevSupportManagerFactory}. If not set, will use {@link
180
+ * DefaultDevSupportManagerFactory}.
181
+ */
182
+ public ReactInstanceManagerBuilder setDevSupportManagerFactory(
183
+ final DevSupportManagerFactory devSupportManagerFactory) {
184
+ mDevSupportManagerFactory = devSupportManagerFactory;
185
+ return this;
186
+ }
187
+
188
+ /**
189
+ * When {@code false}, indicates that correct usage of React Native will NOT involve an Activity.
190
+ * For the vast majority of Android apps in the ecosystem, this will not need to change. Unless
191
+ * you really know what you're doing, you should probably not change this!
192
+ */
193
+ public ReactInstanceManagerBuilder setRequireActivity(boolean requireActivity) {
194
+ mRequireActivity = requireActivity;
195
+ return this;
196
+ }
197
+
174
198
  /**
175
199
  * Sets the initial lifecycle state of the host. For example, if the host is already resumed at
176
200
  * creation time, we wouldn't expect an onResume call until we get an onPause call.
@@ -283,6 +307,10 @@ public class ReactInstanceManagerBuilder {
283
307
  mJSMainModulePath,
284
308
  mPackages,
285
309
  mUseDeveloperSupport,
310
+ mDevSupportManagerFactory == null
311
+ ? new DefaultDevSupportManagerFactory()
312
+ : mDevSupportManagerFactory,
313
+ mRequireActivity,
286
314
  mBridgeIdleDebugListener,
287
315
  Assertions.assertNotNull(mInitialLifecycleState, "Initial lifecycle state was not set"),
288
316
  mUIImplementationProvider,
@@ -15,6 +15,7 @@ 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.devsupport.DevSupportManagerFactory;
18
19
  import com.facebook.react.devsupport.RedBoxHandler;
19
20
  import com.facebook.react.uimanager.UIImplementationProvider;
20
21
  import java.util.List;
@@ -68,6 +69,8 @@ public abstract class ReactNativeHost {
68
69
  .setApplication(mApplication)
69
70
  .setJSMainModulePath(getJSMainModuleName())
70
71
  .setUseDeveloperSupport(getUseDeveloperSupport())
72
+ .setDevSupportManagerFactory(getDevSupportManagerFactory())
73
+ .setRequireActivity(getShouldRequireActivity())
71
74
  .setRedBoxHandler(getRedBoxHandler())
72
75
  .setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
73
76
  .setUIImplementationProvider(getUIImplementationProvider())
@@ -124,6 +127,11 @@ public abstract class ReactNativeHost {
124
127
  return null;
125
128
  }
126
129
 
130
+ /** Returns whether or not to treat it as normal if Activity is null. */
131
+ public boolean getShouldRequireActivity() {
132
+ return true;
133
+ }
134
+
127
135
  /**
128
136
  * Returns the name of the main module. Determines the URL used to fetch the JS bundle from Metro.
129
137
  * It is only used when dev support is enabled. This is the first file to be executed once the
@@ -154,6 +162,11 @@ public abstract class ReactNativeHost {
154
162
  /** Returns whether dev mode should be enabled. This enables e.g. the dev menu. */
155
163
  public abstract boolean getUseDeveloperSupport();
156
164
 
165
+ /** Get the {@link DevSupportManagerFactory}. Override this to use a custom dev support manager */
166
+ protected @Nullable DevSupportManagerFactory getDevSupportManagerFactory() {
167
+ return null;
168
+ }
169
+
157
170
  /**
158
171
  * Returns a list of {@link ReactPackage} used by the app. You'll most likely want to return at
159
172
  * least the {@code MainReactPackage}. If your app uses additional views or modules besides the
@@ -35,7 +35,8 @@ import com.facebook.react.bridge.CatalystInstance;
35
35
  import com.facebook.react.bridge.ReactContext;
36
36
  import com.facebook.react.bridge.ReactMarker;
37
37
  import com.facebook.react.bridge.ReactMarkerConstants;
38
- import com.facebook.react.bridge.ReactSoftException;
38
+ import com.facebook.react.bridge.ReactNoCrashSoftException;
39
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
39
40
  import com.facebook.react.bridge.UIManager;
40
41
  import com.facebook.react.bridge.UiThreadUtil;
41
42
  import com.facebook.react.bridge.WritableMap;
@@ -340,9 +341,9 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
340
341
  @Override
341
342
  public void run() {
342
343
  if (!child.isShown()) {
343
- ReactSoftException.logSoftException(
344
+ ReactSoftExceptionLogger.logSoftException(
344
345
  TAG,
345
- new IllegalViewOperationException(
346
+ new ReactNoCrashSoftException(
346
347
  "A view was illegally added as a child of a ReactRootView. "
347
348
  + "This View should not be a direct child of a ReactRootView, because it is not visible and will never be reachable. Child: "
348
349
  + child.getClass().getCanonicalName().toString()
@@ -528,7 +529,7 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
528
529
  removeAllViews();
529
530
 
530
531
  if (surfaceId == NO_ID) {
531
- ReactSoftException.logSoftException(
532
+ ReactSoftExceptionLogger.logSoftException(
532
533
  TAG,
533
534
  new RuntimeException(
534
535
  "unmountReactApplication called on ReactRootView with invalid id"));
@@ -29,5 +29,5 @@ rn_android_library(
29
29
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
30
30
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
31
31
  ],
32
- exported_deps = [react_native_root_target("Libraries:FBReactNativeSpec")],
32
+ exported_deps = [react_native_root_target(":FBReactNativeSpec")],
33
33
  )
@@ -17,7 +17,7 @@ import com.facebook.react.bridge.Arguments;
17
17
  import com.facebook.react.bridge.Callback;
18
18
  import com.facebook.react.bridge.LifecycleEventListener;
19
19
  import com.facebook.react.bridge.ReactApplicationContext;
20
- import com.facebook.react.bridge.ReactSoftException;
20
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
21
21
  import com.facebook.react.bridge.ReadableMap;
22
22
  import com.facebook.react.bridge.UIManager;
23
23
  import com.facebook.react.bridge.UIManagerListener;
@@ -365,7 +365,7 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
365
365
  if (nodesManager != null) {
366
366
  nodesManager.initializeEventListenerForUIManagerType(mUIManagerType);
367
367
  } else {
368
- ReactSoftException.logSoftException(
368
+ ReactSoftExceptionLogger.logSoftException(
369
369
  NAME,
370
370
  new RuntimeException(
371
371
  "initializeLifecycleEventListenersForViewTag could not get NativeAnimatedNodesManager"));
@@ -17,7 +17,7 @@ import com.facebook.react.bridge.JSApplicationCausedNativeException;
17
17
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
18
18
  import com.facebook.react.bridge.ReactApplicationContext;
19
19
  import com.facebook.react.bridge.ReactNoCrashSoftException;
20
- import com.facebook.react.bridge.ReactSoftException;
20
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
21
21
  import com.facebook.react.bridge.ReadableArray;
22
22
  import com.facebook.react.bridge.ReadableMap;
23
23
  import com.facebook.react.bridge.UIManager;
@@ -391,7 +391,7 @@ import java.util.Queue;
391
391
  UIManager uiManager =
392
392
  UIManagerHelper.getUIManagerForReactTag(mReactApplicationContext, viewTag);
393
393
  if (uiManager == null) {
394
- ReactSoftException.logSoftException(
394
+ ReactSoftExceptionLogger.logSoftException(
395
395
  TAG,
396
396
  new ReactNoCrashSoftException(
397
397
  "connectAnimatedNodeToView: Animated node could not be connected to UIManager - uiManager disappeared for tag: "
@@ -753,11 +753,11 @@ import java.util.Queue;
753
753
  if (mEventListenerInitializedForFabric && cyclesDetected == 0) {
754
754
  // TODO T71377544: investigate these SoftExceptions and see if we can remove entirely
755
755
  // or fix the root cause
756
- ReactSoftException.logSoftException(TAG, new ReactNoCrashSoftException(ex));
756
+ ReactSoftExceptionLogger.logSoftException(TAG, new ReactNoCrashSoftException(ex));
757
757
  } else if (mEventListenerInitializedForFabric) {
758
758
  // TODO T71377544: investigate these SoftExceptions and see if we can remove entirely
759
759
  // or fix the root cause
760
- ReactSoftException.logSoftException(TAG, new ReactNoCrashSoftException(ex));
760
+ ReactSoftExceptionLogger.logSoftException(TAG, new ReactNoCrashSoftException(ex));
761
761
  } else {
762
762
  throw ex;
763
763
  }
@@ -30,13 +30,14 @@ public class BackgroundExecutor {
30
30
  // but it's also cheap to leave it here.
31
31
 
32
32
  if (runnable == null) {
33
- ReactSoftException.logSoftException(TAG, new ReactNoCrashSoftException("runnable is null"));
33
+ ReactSoftExceptionLogger.logSoftException(
34
+ TAG, new ReactNoCrashSoftException("runnable is null"));
34
35
  return;
35
36
  }
36
37
 
37
38
  final ExecutorService executorService = mExecutorService;
38
39
  if (executorService == null) {
39
- ReactSoftException.logSoftException(
40
+ ReactSoftExceptionLogger.logSoftException(
40
41
  TAG, new ReactNoCrashSoftException("executorService is null"));
41
42
  return;
42
43
  }
@@ -111,6 +111,10 @@ public interface CatalystInstance
111
111
 
112
112
  RuntimeExecutor getRuntimeExecutor();
113
113
 
114
+ RuntimeScheduler getRuntimeScheduler();
115
+
116
+ void installRuntimeScheduler();
117
+
114
118
  void addJSIModules(List<JSIModuleSpec> jsiModules);
115
119
 
116
120
  /**
@@ -139,6 +139,11 @@ public class CatalystInstanceImpl implements CatalystInstance {
139
139
 
140
140
  FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge before initializeBridge");
141
141
  Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "initializeCxxBridge");
142
+
143
+ if (ReactFeatureFlags.warnOnLegacyNativeModuleSystemUse) {
144
+ warnOnLegacyNativeModuleSystemUse();
145
+ }
146
+
142
147
  initializeBridge(
143
148
  new BridgeCallback(this),
144
149
  jsExecutor,
@@ -206,6 +211,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
206
211
  private native void jniExtendNativeModules(
207
212
  Collection<JavaModuleWrapper> javaModules, Collection<ModuleHolder> cxxModules);
208
213
 
214
+ private native void warnOnLegacyNativeModuleSystemUse();
215
+
209
216
  private native void initializeBridge(
210
217
  ReactCallback callback,
211
218
  JavaScriptExecutor jsExecutor,
@@ -551,6 +558,10 @@ public class CatalystInstanceImpl implements CatalystInstance {
551
558
 
552
559
  public native RuntimeExecutor getRuntimeExecutor();
553
560
 
561
+ public native RuntimeScheduler getRuntimeScheduler();
562
+
563
+ public native void installRuntimeScheduler();
564
+
554
565
  @Override
555
566
  public void addJSIModules(List<JSIModuleSpec> jsiModules) {
556
567
  mJSIModuleRegistry.registerModules(jsiModules);
@@ -15,6 +15,7 @@ import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
15
15
 
16
16
  import androidx.annotation.Nullable;
17
17
  import com.facebook.proguard.annotations.DoNotStrip;
18
+ import com.facebook.react.config.ReactFeatureFlags;
18
19
  import com.facebook.systrace.Systrace;
19
20
  import com.facebook.systrace.SystraceMessage;
20
21
  import java.lang.reflect.Method;
@@ -43,6 +44,7 @@ public class JavaModuleWrapper {
43
44
  private final ModuleHolder mModuleHolder;
44
45
  private final ArrayList<NativeModule.NativeMethod> mMethods;
45
46
  private final ArrayList<MethodDescriptor> mDescs;
47
+ private static final String TAG = JavaModuleWrapper.class.getSimpleName();
46
48
 
47
49
  public JavaModuleWrapper(JSInstance jsInstance, ModuleHolder moduleHolder) {
48
50
  mJSInstance = jsInstance;
@@ -113,6 +115,17 @@ public class JavaModuleWrapper {
113
115
 
114
116
  @DoNotStrip
115
117
  public @Nullable NativeMap getConstants() {
118
+ if (ReactFeatureFlags.warnOnLegacyNativeModuleSystemUse) {
119
+ ReactSoftExceptionLogger.logSoftException(
120
+ TAG,
121
+ new ReactNoCrashSoftException(
122
+ "Calling getConstants() on Java NativeModule (name = \""
123
+ + mModuleHolder.getName()
124
+ + "\", className = "
125
+ + mModuleHolder.getClassName()
126
+ + ")."));
127
+ }
128
+
116
129
  if (!mModuleHolder.getHasConstants()) {
117
130
  return null;
118
131
  }
@@ -144,10 +157,34 @@ public class JavaModuleWrapper {
144
157
 
145
158
  @DoNotStrip
146
159
  public void invoke(int methodId, ReadableNativeArray parameters) {
160
+ if (ReactFeatureFlags.warnOnLegacyNativeModuleSystemUse) {
161
+ ReactSoftExceptionLogger.logSoftException(
162
+ TAG,
163
+ new ReactNoCrashSoftException(
164
+ "Calling method on Java NativeModule (name = \""
165
+ + mModuleHolder.getName()
166
+ + "\", className = "
167
+ + mModuleHolder.getClassName()
168
+ + ")."));
169
+ }
170
+
147
171
  if (mMethods == null || methodId >= mMethods.size()) {
148
172
  return;
149
173
  }
150
174
 
175
+ if (ReactFeatureFlags.warnOnLegacyNativeModuleSystemUse) {
176
+ ReactSoftExceptionLogger.logSoftException(
177
+ TAG,
178
+ new ReactNoCrashSoftException(
179
+ "Calling "
180
+ + mDescs.get(methodId).name
181
+ + "() on Java NativeModule (name = \""
182
+ + mModuleHolder.getName()
183
+ + "\", className = "
184
+ + mModuleHolder.getClassName()
185
+ + ")."));
186
+ }
187
+
151
188
  mMethods.get(methodId).invoke(mJSInstance, parameters);
152
189
  }
153
190
  }