react-native 0.66.0 → 0.67.0-rc.2

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 (448) 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/hermes/reactexecutor/HermesExecutor.java +14 -8
  122. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
  127. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  128. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  137. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  138. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  162. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  163. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  164. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  165. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  179. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  180. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  181. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  182. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  183. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +8 -8
  211. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  212. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  213. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  214. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  215. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  216. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  217. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  218. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  219. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  220. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  221. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  222. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  223. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  224. package/ReactCommon/React-Fabric.podspec +9 -1
  225. package/ReactCommon/better/BUCK +0 -6
  226. package/ReactCommon/callinvoker/BUCK +2 -8
  227. package/ReactCommon/cxxreact/BUCK +1 -16
  228. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  229. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  230. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  231. package/ReactCommon/jsi/BUCK +0 -9
  232. package/ReactCommon/jsinspector/BUCK +0 -5
  233. package/ReactCommon/logger/BUCK +0 -5
  234. package/ReactCommon/react/config/BUCK +0 -6
  235. package/ReactCommon/react/debug/BUCK +0 -6
  236. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  237. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  238. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  239. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  241. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  242. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  243. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  244. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  245. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  246. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  247. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  248. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  249. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  250. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  251. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  252. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  253. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  254. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  255. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  256. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  257. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  258. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  259. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  261. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  262. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  263. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  264. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  266. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  268. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  269. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  271. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  273. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  275. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  276. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  277. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  278. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  279. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  280. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  281. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  282. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  283. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  284. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  285. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  286. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  287. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  288. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  289. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  290. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  291. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  292. package/ReactCommon/react/renderer/core/BUCK +2 -6
  293. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  294. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  295. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  296. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  297. package/ReactCommon/react/renderer/core/Props.h +1 -0
  298. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  299. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  300. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  301. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  302. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  303. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  304. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  305. package/ReactCommon/react/renderer/element/BUCK +0 -6
  306. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  307. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  308. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  309. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  310. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  311. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  312. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  313. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  314. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  315. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  316. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  317. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  318. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  319. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  320. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  321. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  325. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  326. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  327. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  328. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  330. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  331. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  332. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  333. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  334. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  335. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  336. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  337. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  338. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  339. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  340. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  341. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  342. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  343. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  344. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  345. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  346. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  347. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  348. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  349. package/ReactCommon/react/test_utils/BUCK +3 -6
  350. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  351. package/ReactCommon/react/utils/BUCK +0 -6
  352. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  353. package/ReactCommon/reactperflogger/BUCK +0 -4
  354. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  355. package/ReactCommon/yoga/BUCK +1 -5
  356. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.aar → 0.67.0-rc.2/react-native-0.67.0-rc.2.aar} +0 -0
  357. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.md5 +1 -0
  358. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha1 +1 -0
  359. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha256 +1 -0
  360. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha512 +1 -0
  361. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.module → 0.67.0-rc.2/react-native-0.67.0-rc.2.module} +16 -17
  362. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.md5 +1 -0
  363. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha1 +1 -0
  364. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha256 +1 -0
  365. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha512 +1 -0
  366. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.pom → 0.67.0-rc.2/react-native-0.67.0-rc.2.pom} +2 -2
  367. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.md5 +1 -0
  368. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha1 +1 -0
  369. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha256 +1 -0
  370. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha512 +1 -0
  371. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  372. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  373. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  374. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  375. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  376. package/flow/global.js +45 -0
  377. package/index.js +15 -10
  378. package/jest/mockModal.js +31 -0
  379. package/jest/setup.js +5 -3
  380. package/package.json +8 -9
  381. package/react.gradle +53 -18
  382. package/scripts/find-node.sh +13 -0
  383. package/scripts/generate-specs-cli.js +18 -0
  384. package/scripts/ios-configure-glog.sh +4 -0
  385. package/scripts/react-native-xcode.sh +7 -7
  386. package/scripts/react_native_pods.rb +200 -57
  387. package/template/Gemfile +6 -0
  388. package/template/Gemfile.lock +100 -0
  389. package/template/_bundle/config +2 -0
  390. package/template/_flowconfig +1 -1
  391. package/template/_ruby-version +1 -0
  392. package/template/android/app/build.gradle +1 -1
  393. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  394. package/template/android/app/src/main/res/values/styles.xml +1 -0
  395. package/template/android/build.gradle +7 -3
  396. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  397. package/template/android/gradle.properties +1 -1
  398. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  399. package/template/package.json +1 -1
  400. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  401. package/third-party-podspecs/glog.podspec +0 -1
  402. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  403. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  404. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  405. package/Libraries/Components/StaticContainer.react.js +0 -51
  406. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  407. package/Libraries/Interaction/InteractionMixin.js +0 -54
  408. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  409. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  410. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  412. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  413. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  415. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  419. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  420. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  421. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  422. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  430. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  431. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  432. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  433. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  434. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.md5 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha1 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha256 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha512 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.md5 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha1 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha256 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha512 +0 -1
  442. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.md5 +0 -1
  443. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha1 +0 -1
  444. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha256 +0 -1
  445. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha512 +0 -1
  446. package/scripts/generate-specs.sh +0 -99
  447. package/template/_editorconfig +0 -3
  448. package/template/_gitattributes +0 -3
@@ -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
+ }
@@ -0,0 +1,24 @@
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
+ * Factory to create a {@link SurfaceDelegate}. The moduleName is needed to help the factory decide
12
+ * which surface to return {@link SurfaceDelegate} that the given module should use to interact
13
+ * with.
14
+ */
15
+ public interface SurfaceDelegateFactory {
16
+ /**
17
+ * Create a {@link SurfaceDelegate} instance which is used to interact with a surface of platform
18
+ * the app is running in.
19
+ *
20
+ * @param moduleName the module name that will be using the surface
21
+ * @return {@link SurfaceDelegate} instance
22
+ */
23
+ SurfaceDelegate createSurfaceDelegate(String moduleName);
24
+ }
@@ -11,12 +11,6 @@ rn_xplat_cxx_library(
11
11
  ],
12
12
  prefix = "react/common/mapbuffer",
13
13
  ),
14
- compiler_flags = [
15
- "-fexceptions",
16
- "-frtti",
17
- "-std=c++17",
18
- "-Wall",
19
- ],
20
14
  fbandroid_allow_jni_merging = True,
21
15
  labels = ["supermodule:xplat/default/public.react_native.infra"],
22
16
  platforms = ANDROID,
@@ -25,6 +25,12 @@ public class ReactFeatureFlags {
25
25
  */
26
26
  public static volatile boolean useTurboModules = false;
27
27
 
28
+ /**
29
+ * Should this application use the new (Fabric) Renderer? If yes, all rendering in this app will
30
+ * use Fabric instead of the legacy renderer.
31
+ */
32
+ public static volatile boolean enableFabricRenderer = false;
33
+
28
34
  /**
29
35
  * After TurboModules and Fabric are enabled, we need to ensure that the legacy NativeModule isn't
30
36
  * isn't used. So, turn this flag on to trigger warnings whenever the legacy NativeModule system
@@ -66,6 +72,8 @@ public class ReactFeatureFlags {
66
72
 
67
73
  public static boolean enableRuntimeScheduler = false;
68
74
 
75
+ public static boolean enableRuntimeSchedulerInTurboModule = false;
76
+
69
77
  /** Enables a more aggressive cleanup during destruction of ReactContext */
70
78
  public static boolean enableReactContextCleanupFix = false;
71
79
 
@@ -89,4 +97,12 @@ public class ReactFeatureFlags {
89
97
  public static boolean enableLockFreeEventDispatcher = false;
90
98
 
91
99
  public static boolean enableAggressiveEventEmitterCleanup = false;
100
+
101
+ public static boolean insertZReorderBarriersOnViewGroupChildren = true;
102
+
103
+ public static boolean enableScrollViewSnapToAlignmentProp = true;
104
+
105
+ public static boolean useDispatchUniqueForCoalescableEvents = false;
106
+
107
+ public static boolean useUpdatedTouchPreprocessing = false;
92
108
  }
@@ -57,6 +57,7 @@ rn_android_library(
57
57
  react_native_dep("third-party/android/androidx:annotation"),
58
58
  react_native_dep("third-party/java/jsr-305:jsr-305"),
59
59
  react_native_target("java/com/facebook/react/bridge:bridge"),
60
+ react_native_target("java/com/facebook/react/common:common"),
60
61
  react_native_target("java/com/facebook/react/modules/debug:interfaces"),
61
62
  ],
62
63
  )
@@ -22,6 +22,7 @@ import com.facebook.react.bridge.ReactMarker;
22
22
  import com.facebook.react.bridge.ReactMarkerConstants;
23
23
  import com.facebook.react.bridge.UiThreadUtil;
24
24
  import com.facebook.react.common.ReactConstants;
25
+ import com.facebook.react.common.SurfaceDelegateFactory;
25
26
  import com.facebook.react.common.futures.SimpleSettableFuture;
26
27
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
27
28
  import com.facebook.react.devsupport.interfaces.DevOptionHandler;
@@ -71,7 +72,8 @@ public final class BridgeDevSupportManager extends DevSupportManagerBase {
71
72
  @Nullable RedBoxHandler redBoxHandler,
72
73
  @Nullable DevBundleDownloadListener devBundleDownloadListener,
73
74
  int minNumShakes,
74
- @Nullable Map<String, RequestHandler> customPackagerCommandHandlers) {
75
+ @Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
76
+ @Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
75
77
  super(
76
78
  applicationContext,
77
79
  reactInstanceManagerHelper,
@@ -80,7 +82,8 @@ public final class BridgeDevSupportManager extends DevSupportManagerBase {
80
82
  redBoxHandler,
81
83
  devBundleDownloadListener,
82
84
  minNumShakes,
83
- customPackagerCommandHandlers);
85
+ customPackagerCommandHandlers,
86
+ surfaceDelegateFactory);
84
87
 
85
88
  if (getDevSettings().isStartSamplingProfilerOnInit()) {
86
89
  // Only start the profiler. If its already running, there is an error
@@ -0,0 +1,102 @@
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.devsupport;
9
+
10
+ import android.content.Context;
11
+ import androidx.annotation.Nullable;
12
+ import com.facebook.react.common.SurfaceDelegateFactory;
13
+ import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
14
+ import com.facebook.react.devsupport.interfaces.DevSupportManager;
15
+ import com.facebook.react.packagerconnection.RequestHandler;
16
+ import java.lang.reflect.Constructor;
17
+ import java.util.Map;
18
+
19
+ /**
20
+ * A simple factory that creates instances of {@link DevSupportManager} implementations. Uses
21
+ * reflection to create BridgeDevSupportManager if it exists. This allows ProGuard to strip that
22
+ * class and its dependencies in release builds. If the class isn't found, {@link
23
+ * DisabledDevSupportManager} is returned instead.
24
+ */
25
+ public class DefaultDevSupportManagerFactory implements DevSupportManagerFactory {
26
+
27
+ private static final String DEVSUPPORT_IMPL_PACKAGE = "com.facebook.react.devsupport";
28
+ private static final String DEVSUPPORT_IMPL_CLASS = "BridgeDevSupportManager";
29
+
30
+ public DevSupportManager create(
31
+ Context applicationContext,
32
+ ReactInstanceDevHelper reactInstanceDevHelper,
33
+ @Nullable String packagerPathForJSBundleName,
34
+ boolean enableOnCreate,
35
+ int minNumShakes) {
36
+
37
+ return create(
38
+ applicationContext,
39
+ reactInstanceDevHelper,
40
+ packagerPathForJSBundleName,
41
+ enableOnCreate,
42
+ null,
43
+ null,
44
+ minNumShakes,
45
+ null,
46
+ null);
47
+ }
48
+
49
+ @Override
50
+ public DevSupportManager create(
51
+ Context applicationContext,
52
+ ReactInstanceDevHelper reactInstanceManagerHelper,
53
+ @Nullable String packagerPathForJSBundleName,
54
+ boolean enableOnCreate,
55
+ @Nullable RedBoxHandler redBoxHandler,
56
+ @Nullable DevBundleDownloadListener devBundleDownloadListener,
57
+ int minNumShakes,
58
+ @Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
59
+ @Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
60
+ if (!enableOnCreate) {
61
+ return new DisabledDevSupportManager();
62
+ }
63
+ try {
64
+ // ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
65
+ // Class.forName() with a static string. So instead we generate a quasi-dynamic string to
66
+ // confuse it.
67
+ String className =
68
+ new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
69
+ .append(".")
70
+ .append(DEVSUPPORT_IMPL_CLASS)
71
+ .toString();
72
+ Class<?> devSupportManagerClass = Class.forName(className);
73
+ Constructor constructor =
74
+ devSupportManagerClass.getConstructor(
75
+ Context.class,
76
+ ReactInstanceDevHelper.class,
77
+ String.class,
78
+ boolean.class,
79
+ RedBoxHandler.class,
80
+ DevBundleDownloadListener.class,
81
+ int.class,
82
+ Map.class,
83
+ SurfaceDelegateFactory.class);
84
+ return (DevSupportManager)
85
+ constructor.newInstance(
86
+ applicationContext,
87
+ reactInstanceManagerHelper,
88
+ packagerPathForJSBundleName,
89
+ true,
90
+ redBoxHandler,
91
+ devBundleDownloadListener,
92
+ minNumShakes,
93
+ customPackagerCommandHandlers,
94
+ surfaceDelegateFactory);
95
+ } catch (Exception e) {
96
+ throw new RuntimeException(
97
+ "Requested enabled DevSupportManager, but BridgeDevSupportManager class was not found"
98
+ + " or could not be created",
99
+ e);
100
+ }
101
+ }
102
+ }
@@ -41,6 +41,8 @@ import com.facebook.react.bridge.UiThreadUtil;
41
41
  import com.facebook.react.common.DebugServerException;
42
42
  import com.facebook.react.common.ReactConstants;
43
43
  import com.facebook.react.common.ShakeDetector;
44
+ import com.facebook.react.common.SurfaceDelegate;
45
+ import com.facebook.react.common.SurfaceDelegateFactory;
44
46
  import com.facebook.react.devsupport.DevServerHelper.PackagerCommandListener;
45
47
  import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
46
48
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
@@ -118,6 +120,7 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
118
120
  private @Nullable Map<String, RequestHandler> mCustomPackagerCommandHandlers;
119
121
 
120
122
  private @Nullable Activity currentActivity;
123
+ private @Nullable final SurfaceDelegateFactory mSurfaceDelegateFactory;
121
124
 
122
125
  public DevSupportManagerBase(
123
126
  Context applicationContext,
@@ -127,7 +130,8 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
127
130
  @Nullable RedBoxHandler redBoxHandler,
128
131
  @Nullable DevBundleDownloadListener devBundleDownloadListener,
129
132
  int minNumShakes,
130
- @Nullable Map<String, RequestHandler> customPackagerCommandHandlers) {
133
+ @Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
134
+ @Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
131
135
  mReactInstanceDevHelper = reactInstanceDevHelper;
132
136
  mApplicationContext = applicationContext;
133
137
  mJSAppBundleName = packagerPathForJSBundleName;
@@ -202,7 +206,8 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
202
206
 
203
207
  mRedBoxHandler = redBoxHandler;
204
208
  mDevLoadingViewController = new DevLoadingViewController(reactInstanceDevHelper);
205
- }
209
+ mSurfaceDelegateFactory = surfaceDelegateFactory;
210
+ };
206
211
 
207
212
  protected abstract String getUniqueTag();
208
213
 
@@ -345,16 +350,21 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
345
350
  @Override
346
351
  public void run() {
347
352
  Activity context = mReactInstanceDevHelper.getCurrentActivity();
348
- if (mRedBoxDialog == null || context != currentActivity) {
349
- if (context == null || context.isFinishing()) {
350
- FLog.e(
351
- ReactConstants.TAG,
352
- "Unable to launch redbox because react activity "
353
- + "is not available, here is the error that redbox would've displayed: "
354
- + message);
355
- return;
356
- }
353
+ if (context != null && !context.isFinishing() && currentActivity != context) {
357
354
  currentActivity = context;
355
+ // Create a new RedBox when currentActivity get updated
356
+ mRedBoxDialog =
357
+ new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
358
+ }
359
+ if (currentActivity == null || currentActivity.isFinishing()) {
360
+ FLog.e(
361
+ ReactConstants.TAG,
362
+ "Unable to launch redbox because react activity "
363
+ + "is not available, here is the error that redbox would've displayed: "
364
+ + message);
365
+ return;
366
+ }
367
+ if (mRedBoxDialog == null) {
358
368
  mRedBoxDialog =
359
369
  new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
360
370
  }
@@ -1199,4 +1209,18 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
1199
1209
  DevSupportManager.PackagerLocationCustomizer packagerLocationCustomizer) {
1200
1210
  mPackagerLocationCustomizer = packagerLocationCustomizer;
1201
1211
  }
1212
+
1213
+ @Override
1214
+ public @Nullable Activity getCurrentActivity() {
1215
+ return mReactInstanceDevHelper.getCurrentActivity();
1216
+ }
1217
+
1218
+ @Override
1219
+ public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) {
1220
+ if (mSurfaceDelegateFactory == null) {
1221
+ return null;
1222
+ }
1223
+
1224
+ return mSurfaceDelegateFactory.createSurfaceDelegate(moduleName);
1225
+ }
1202
1226
  }
@@ -9,42 +9,14 @@ package com.facebook.react.devsupport;
9
9
 
10
10
  import android.content.Context;
11
11
  import androidx.annotation.Nullable;
12
+ import com.facebook.react.common.SurfaceDelegateFactory;
12
13
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
13
14
  import com.facebook.react.devsupport.interfaces.DevSupportManager;
14
15
  import com.facebook.react.packagerconnection.RequestHandler;
15
- import java.lang.reflect.Constructor;
16
16
  import java.util.Map;
17
17
 
18
- /**
19
- * A simple factory that creates instances of {@link DevSupportManager} implementations. Uses
20
- * reflection to create BridgeDevSupportManager if it exists. This allows ProGuard to strip that
21
- * class and its dependencies in release builds. If the class isn't found, {@link
22
- * DisabledDevSupportManager} is returned instead.
23
- */
24
- public class DevSupportManagerFactory {
25
-
26
- private static final String DEVSUPPORT_IMPL_PACKAGE = "com.facebook.react.devsupport";
27
- private static final String DEVSUPPORT_IMPL_CLASS = "BridgeDevSupportManager";
28
-
29
- public static DevSupportManager create(
30
- Context applicationContext,
31
- ReactInstanceDevHelper reactInstanceDevHelper,
32
- @Nullable String packagerPathForJSBundleName,
33
- boolean enableOnCreate,
34
- int minNumShakes) {
35
-
36
- return create(
37
- applicationContext,
38
- reactInstanceDevHelper,
39
- packagerPathForJSBundleName,
40
- enableOnCreate,
41
- null,
42
- null,
43
- minNumShakes,
44
- null);
45
- }
46
-
47
- public static DevSupportManager create(
18
+ public interface DevSupportManagerFactory {
19
+ DevSupportManager create(
48
20
  Context applicationContext,
49
21
  ReactInstanceDevHelper reactInstanceManagerHelper,
50
22
  @Nullable String packagerPathForJSBundleName,
@@ -52,45 +24,6 @@ public class DevSupportManagerFactory {
52
24
  @Nullable RedBoxHandler redBoxHandler,
53
25
  @Nullable DevBundleDownloadListener devBundleDownloadListener,
54
26
  int minNumShakes,
55
- @Nullable Map<String, RequestHandler> customPackagerCommandHandlers) {
56
- if (!enableOnCreate) {
57
- return new DisabledDevSupportManager();
58
- }
59
- try {
60
- // ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
61
- // Class.forName() with a static string. So instead we generate a quasi-dynamic string to
62
- // confuse it.
63
- String className =
64
- new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
65
- .append(".")
66
- .append(DEVSUPPORT_IMPL_CLASS)
67
- .toString();
68
- Class<?> devSupportManagerClass = Class.forName(className);
69
- Constructor constructor =
70
- devSupportManagerClass.getConstructor(
71
- Context.class,
72
- ReactInstanceDevHelper.class,
73
- String.class,
74
- boolean.class,
75
- RedBoxHandler.class,
76
- DevBundleDownloadListener.class,
77
- int.class,
78
- Map.class);
79
- return (DevSupportManager)
80
- constructor.newInstance(
81
- applicationContext,
82
- reactInstanceManagerHelper,
83
- packagerPathForJSBundleName,
84
- true,
85
- redBoxHandler,
86
- devBundleDownloadListener,
87
- minNumShakes,
88
- customPackagerCommandHandlers);
89
- } catch (Exception e) {
90
- throw new RuntimeException(
91
- "Requested enabled DevSupportManager, but BridgeDevSupportManager class was not found"
92
- + " or could not be created",
93
- e);
94
- }
95
- }
27
+ @Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
28
+ @Nullable SurfaceDelegateFactory surfaceDelegateFactory);
96
29
  }
@@ -7,11 +7,13 @@
7
7
 
8
8
  package com.facebook.react.devsupport;
9
9
 
10
+ import android.app.Activity;
10
11
  import android.view.View;
11
12
  import androidx.annotation.Nullable;
12
13
  import com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler;
13
14
  import com.facebook.react.bridge.ReactContext;
14
15
  import com.facebook.react.bridge.ReadableArray;
16
+ import com.facebook.react.common.SurfaceDelegate;
15
17
  import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
16
18
  import com.facebook.react.devsupport.interfaces.DevOptionHandler;
17
19
  import com.facebook.react.devsupport.interfaces.DevSplitBundleCallback;
@@ -175,4 +177,14 @@ public class DisabledDevSupportManager implements DevSupportManager {
175
177
  public void handleException(Exception e) {
176
178
  mDefaultNativeModuleCallExceptionHandler.handleException(e);
177
179
  }
180
+
181
+ @Override
182
+ public @Nullable Activity getCurrentActivity() {
183
+ return null;
184
+ }
185
+
186
+ @Override
187
+ public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) {
188
+ return null;
189
+ }
178
190
  }
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.devsupport;
9
+
10
+ import android.app.Activity;
11
+ import android.view.View;
12
+ import android.view.ViewGroup;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.infer.annotation.Assertions;
15
+ import com.facebook.react.common.SurfaceDelegate;
16
+ import com.facebook.react.devsupport.interfaces.DevSupportManager;
17
+ import com.facebook.react.util.RNLog;
18
+
19
+ /**
20
+ * The implementation of SurfaceDelegate with {@link Activity}. This is the default SurfaceDelegate
21
+ * for Mobile.
22
+ */
23
+ public class LogBoxDialogSurfaceDelegate implements SurfaceDelegate {
24
+
25
+ private @Nullable View mReactRootView;
26
+ private @Nullable LogBoxDialog mDialog;
27
+ private final DevSupportManager mDevSupportManager;
28
+
29
+ LogBoxDialogSurfaceDelegate(DevSupportManager devSupportManager) {
30
+ mDevSupportManager = devSupportManager;
31
+ }
32
+
33
+ @Override
34
+ public void createContentView(String appKey) {
35
+ Assertions.assertCondition(
36
+ appKey.equals("LogBox"), "This surface manager can only create LogBox React application");
37
+ mReactRootView = mDevSupportManager.createRootView("LogBox");
38
+ if (mReactRootView == null) {
39
+ RNLog.e("Unable to launch logbox because react was unable to create the root view");
40
+ }
41
+ }
42
+
43
+ @Override
44
+ public boolean isContentViewReady() {
45
+ return mReactRootView != null;
46
+ }
47
+
48
+ @Override
49
+ public void destroyContentView() {
50
+ if (mReactRootView != null) {
51
+ mDevSupportManager.destroyRootView(mReactRootView);
52
+ mReactRootView = null;
53
+ }
54
+ }
55
+
56
+ @Override
57
+ public void show() {
58
+ if (isSurfaceVisible() || !isContentViewReady()) {
59
+ return;
60
+ }
61
+
62
+ final @Nullable Activity context = mDevSupportManager.getCurrentActivity();
63
+ if (context == null || context.isFinishing()) {
64
+ RNLog.e(
65
+ "Unable to launch logbox because react activity "
66
+ + "is not available, here is the error that logbox would've displayed: ");
67
+ return;
68
+ }
69
+
70
+ mDialog = new LogBoxDialog(context, mReactRootView);
71
+ mDialog.setCancelable(false);
72
+ mDialog.show();
73
+ }
74
+
75
+ @Override
76
+ public void hide() {
77
+ if (!isSurfaceVisible()) {
78
+ return;
79
+ }
80
+
81
+ if (mReactRootView != null && mReactRootView.getParent() != null) {
82
+ ((ViewGroup) mReactRootView.getParent()).removeView(mReactRootView);
83
+ }
84
+
85
+ mDialog.dismiss();
86
+ mDialog = null;
87
+ }
88
+
89
+ private boolean isSurfaceVisible() {
90
+ return mDialog != null;
91
+ }
92
+ }