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
@@ -11,7 +11,7 @@ import android.view.MotionEvent;
11
11
  import androidx.annotation.Nullable;
12
12
  import androidx.core.util.Pools;
13
13
  import com.facebook.infer.annotation.Assertions;
14
- import com.facebook.react.bridge.ReactSoftException;
14
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
15
15
  import com.facebook.react.bridge.SoftAssertions;
16
16
 
17
17
  /**
@@ -96,7 +96,7 @@ public class TouchEvent extends Event<TouchEvent> {
96
96
  float viewX,
97
97
  float viewY,
98
98
  TouchEventCoalescingKeyHelper touchEventCoalescingKeyHelper) {
99
- super.init(surfaceId, viewTag);
99
+ super.init(surfaceId, viewTag, motionEventToCopy.getEventTime());
100
100
 
101
101
  SoftAssertions.assertCondition(
102
102
  gestureStartTime != UNSET, "Gesture start time must be initialized");
@@ -131,9 +131,25 @@ public class TouchEvent extends Event<TouchEvent> {
131
131
 
132
132
  @Override
133
133
  public void onDispose() {
134
- Assertions.assertNotNull(mMotionEvent).recycle();
134
+ MotionEvent motionEvent = mMotionEvent;
135
135
  mMotionEvent = null;
136
- EVENTS_POOL.release(this);
136
+ if (motionEvent != null) {
137
+ motionEvent.recycle();
138
+ }
139
+
140
+ // Either `this` is in the event pool, or motionEvent
141
+ // is null. It is in theory not possible for a TouchEvent to
142
+ // be in the EVENTS_POOL but for motionEvent to be null. However,
143
+ // out of an abundance of caution and to avoid memory leaks or
144
+ // other crashes at all costs, we attempt to release here and log
145
+ // a soft exception here if release throws an IllegalStateException
146
+ // due to `this` being over-released. This may indicate that there is
147
+ // a logic error in our events system or pooling mechanism.
148
+ try {
149
+ EVENTS_POOL.release(this);
150
+ } catch (IllegalStateException e) {
151
+ ReactSoftExceptionLogger.logSoftException(TAG, e);
152
+ }
137
153
  }
138
154
 
139
155
  @Override
@@ -166,7 +182,7 @@ public class TouchEvent extends Event<TouchEvent> {
166
182
  @Override
167
183
  public void dispatch(RCTEventEmitter rctEventEmitter) {
168
184
  if (!hasMotionEvent()) {
169
- ReactSoftException.logSoftException(
185
+ ReactSoftExceptionLogger.logSoftException(
170
186
  TAG,
171
187
  new IllegalStateException(
172
188
  "Cannot dispatch a TouchEvent that has no MotionEvent; the TouchEvent has been recycled"));
@@ -64,7 +64,7 @@ public class TouchesHelper {
64
64
  touch.putDouble(LOCATION_Y_KEY, PixelUtil.toDIPFromPixel(locationY));
65
65
  touch.putInt(TARGET_SURFACE_KEY, surfaceId);
66
66
  touch.putInt(TARGET_KEY, reactTarget);
67
- touch.putDouble(TIMESTAMP_KEY, event.getUnixTimestampMs());
67
+ touch.putDouble(TIMESTAMP_KEY, event.getTimestampMs());
68
68
  touch.putDouble(POINTER_IDENTIFIER_KEY, motionEvent.getPointerId(index));
69
69
  touches.pushMap(touch);
70
70
  }
@@ -19,7 +19,7 @@ rn_xplat_cxx_library(
19
19
  ],
20
20
  fbandroid_allow_jni_merging = True,
21
21
  labels = ["supermodule:xplat/default/public.react_native.infra"],
22
- platforms = (ANDROID),
22
+ platforms = ANDROID,
23
23
  preprocessor_flags = [
24
24
  "-DLOG_TAG=\"ReactNative\"",
25
25
  "-DWITH_FBSYSTRACE=1",
@@ -26,6 +26,6 @@ rn_android_library(
26
26
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
27
27
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
28
28
  react_native_target("java/com/facebook/react/views/scroll:scroll"),
29
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
29
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
30
30
  ],
31
31
  )
@@ -18,7 +18,7 @@ rn_android_library(
18
18
  react_native_dep("third-party/java/infer-annotations:infer-annotations"),
19
19
  react_native_dep("third-party/java/jsr-305:jsr-305"),
20
20
  react_native_dep("libraries/fbcore/src/main/java/com/facebook/common/logging:logging"),
21
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
21
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
22
22
  react_native_target("java/com/facebook/react/bridge:bridge"),
23
23
  react_native_target("java/com/facebook/react/common:common"),
24
24
  react_native_target("java/com/facebook/react/module/annotations:annotations"),
@@ -293,14 +293,11 @@ public class ReactModalHostView extends ViewGroup
293
293
  @Override
294
294
  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
295
295
  if (event.getAction() == KeyEvent.ACTION_UP) {
296
- // We need to stop the BACK button from closing the dialog by default so we capture
297
- // that
298
- // event and instead inform JS so that it can make the decision as to whether or not
299
- // to
300
- // allow the back button to close the dialog. If it chooses to, it can just set
301
- // visible
302
- // to false on the Modal and the Modal will go away
303
- if (keyCode == KeyEvent.KEYCODE_BACK) {
296
+ // We need to stop the BACK button and ESCAPE key from closing the dialog by default
297
+ // so we capture that event and instead inform JS so that it can make the decision as
298
+ // to whether or not to allow the back/escape key to close the dialog. If it chooses
299
+ // to, it can just set visible to false on the Modal and the Modal will go away
300
+ if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_ESCAPE) {
304
301
  Assertions.assertNotNull(
305
302
  mOnRequestCloseListener,
306
303
  "setOnRequestCloseListener must be called by the manager");
@@ -308,9 +305,8 @@ public class ReactModalHostView extends ViewGroup
308
305
  return true;
309
306
  } else {
310
307
  // We redirect the rest of the key events to the current activity, since the
311
- // activity
312
- // expects to receive those events and react to them, ie. in the case of the dev
313
- // menu
308
+ // activity expects to receive those events and react to them, ie. in the case of
309
+ // the dev menu
314
310
  Activity currentActivity = ((ReactContext) getContext()).getCurrentActivity();
315
311
  if (currentActivity != null) {
316
312
  return currentActivity.onKeyUp(keyCode, event);
@@ -19,6 +19,6 @@ rn_android_library(
19
19
  react_native_target("java/com/facebook/react/module/annotations:annotations"),
20
20
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
21
21
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
22
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
22
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
23
23
  ],
24
24
  )
@@ -30,5 +30,6 @@ rn_android_library(
30
30
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
31
31
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
32
32
  react_native_target("java/com/facebook/react/views/view:view"),
33
+ react_native_target("res:uimanager"),
33
34
  ],
34
35
  )
@@ -40,6 +40,7 @@ import com.facebook.react.uimanager.MeasureSpecAssertions;
40
40
  import com.facebook.react.uimanager.PixelUtil;
41
41
  import com.facebook.react.uimanager.ReactClippingViewGroup;
42
42
  import com.facebook.react.uimanager.ReactClippingViewGroupHelper;
43
+ import com.facebook.react.uimanager.ReactOverflowView;
43
44
  import com.facebook.react.uimanager.ViewProps;
44
45
  import com.facebook.react.uimanager.events.NativeGestureUtil;
45
46
  import com.facebook.react.views.view.ReactViewBackgroundManager;
@@ -49,7 +50,9 @@ import java.util.List;
49
50
 
50
51
  /** Similar to {@link ReactScrollView} but only supports horizontal scrolling. */
51
52
  public class ReactHorizontalScrollView extends HorizontalScrollView
52
- implements ReactClippingViewGroup, FabricViewStateManager.HasFabricViewStateManager {
53
+ implements ReactClippingViewGroup,
54
+ FabricViewStateManager.HasFabricViewStateManager,
55
+ ReactOverflowView {
53
56
 
54
57
  private static boolean DEBUG_MODE = false && ReactBuildConfig.DEBUG;
55
58
  private static String TAG = ReactHorizontalScrollView.class.getSimpleName();
@@ -245,6 +248,11 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
245
248
  invalidate();
246
249
  }
247
250
 
251
+ @Override
252
+ public @Nullable String getOverflow() {
253
+ return mOverflow;
254
+ }
255
+
248
256
  @Override
249
257
  protected void onDraw(Canvas canvas) {
250
258
  if (DEBUG_MODE) {
@@ -20,12 +20,14 @@ import android.view.KeyEvent;
20
20
  import android.view.MotionEvent;
21
21
  import android.view.View;
22
22
  import android.view.ViewGroup;
23
+ import android.view.accessibility.AccessibilityNodeInfo;
23
24
  import android.widget.OverScroller;
24
25
  import android.widget.ScrollView;
25
26
  import androidx.annotation.Nullable;
26
27
  import androidx.core.view.ViewCompat;
27
28
  import com.facebook.common.logging.FLog;
28
29
  import com.facebook.infer.annotation.Assertions;
30
+ import com.facebook.react.R;
29
31
  import com.facebook.react.bridge.ReactContext;
30
32
  import com.facebook.react.bridge.WritableMap;
31
33
  import com.facebook.react.bridge.WritableNativeMap;
@@ -35,6 +37,7 @@ import com.facebook.react.uimanager.MeasureSpecAssertions;
35
37
  import com.facebook.react.uimanager.PixelUtil;
36
38
  import com.facebook.react.uimanager.ReactClippingViewGroup;
37
39
  import com.facebook.react.uimanager.ReactClippingViewGroupHelper;
40
+ import com.facebook.react.uimanager.ReactOverflowView;
38
41
  import com.facebook.react.uimanager.ViewProps;
39
42
  import com.facebook.react.uimanager.common.UIManagerType;
40
43
  import com.facebook.react.uimanager.common.ViewUtil;
@@ -54,7 +57,8 @@ public class ReactScrollView extends ScrollView
54
57
  implements ReactClippingViewGroup,
55
58
  ViewGroup.OnHierarchyChangeListener,
56
59
  View.OnLayoutChangeListener,
57
- FabricViewStateManager.HasFabricViewStateManager {
60
+ FabricViewStateManager.HasFabricViewStateManager,
61
+ ReactOverflowView {
58
62
 
59
63
  private static @Nullable Field sScrollerField;
60
64
  private static boolean sTriedToGetScrollerField = false;
@@ -117,6 +121,20 @@ public class ReactScrollView extends ScrollView
117
121
  setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
118
122
  }
119
123
 
124
+ @Override
125
+ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
126
+ super.onInitializeAccessibilityNodeInfo(info);
127
+
128
+ // Expose the testID prop as the resource-id name of the view. Black-box E2E/UI testing
129
+ // frameworks, which interact with the UI through the accessibility framework, do not have
130
+ // access to view tags. This allows developers/testers to avoid polluting the
131
+ // content-description with test identifiers.
132
+ final String testId = (String) this.getTag(R.id.react_test_id);
133
+ if (testId != null) {
134
+ info.setViewIdResourceName(testId);
135
+ }
136
+ }
137
+
120
138
  @Nullable
121
139
  private OverScroller getOverScrollerFromParent() {
122
140
  OverScroller scroller;
@@ -209,6 +227,11 @@ public class ReactScrollView extends ScrollView
209
227
  invalidate();
210
228
  }
211
229
 
230
+ @Override
231
+ public @Nullable String getOverflow() {
232
+ return mOverflow;
233
+ }
234
+
212
235
  @Override
213
236
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
214
237
  MeasureSpecAssertions.assertExplicitMeasureSpec(widthMeasureSpec, heightMeasureSpec);
@@ -11,7 +11,7 @@ import androidx.annotation.Nullable;
11
11
  import androidx.core.util.Pools;
12
12
  import com.facebook.infer.annotation.Assertions;
13
13
  import com.facebook.react.bridge.Arguments;
14
- import com.facebook.react.bridge.ReactSoftException;
14
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
15
15
  import com.facebook.react.bridge.WritableMap;
16
16
  import com.facebook.react.uimanager.PixelUtil;
17
17
  import com.facebook.react.uimanager.events.Event;
@@ -97,7 +97,7 @@ public class ScrollEvent extends Event<ScrollEvent> {
97
97
  } catch (IllegalStateException e) {
98
98
  // This exception can be thrown when an event is double-released.
99
99
  // This is a problem but won't cause user-visible impact, so it's okay to fail silently.
100
- ReactSoftException.logSoftException(TAG, e);
100
+ ReactSoftExceptionLogger.logSoftException(TAG, e);
101
101
  }
102
102
  }
103
103
 
@@ -22,6 +22,6 @@ rn_android_library(
22
22
  react_native_target("java/com/facebook/react/common:common"),
23
23
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
24
24
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
25
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
25
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
26
26
  ],
27
27
  )
@@ -16,7 +16,6 @@ import android.view.View;
16
16
  import android.view.ViewGroup;
17
17
  import android.widget.SeekBar;
18
18
  import androidx.annotation.Nullable;
19
- import androidx.core.view.AccessibilityDelegateCompat;
20
19
  import androidx.core.view.ViewCompat;
21
20
  import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat;
22
21
  import com.facebook.react.bridge.ReactContext;
@@ -24,6 +23,7 @@ import com.facebook.react.bridge.ReadableMap;
24
23
  import com.facebook.react.common.MapBuilder;
25
24
  import com.facebook.react.uimanager.LayoutShadowNode;
26
25
  import com.facebook.react.uimanager.PixelUtil;
26
+ import com.facebook.react.uimanager.ReactAccessibilityDelegate;
27
27
  import com.facebook.react.uimanager.SimpleViewManager;
28
28
  import com.facebook.react.uimanager.ThemedReactContext;
29
29
  import com.facebook.react.uimanager.UIManagerHelper;
@@ -149,7 +149,7 @@ public class ReactSliderManager extends SimpleViewManager<ReactSlider>
149
149
  @Override
150
150
  protected ReactSlider createViewInstance(ThemedReactContext context) {
151
151
  final ReactSlider slider = new ReactSlider(context, null, STYLE);
152
- ViewCompat.setAccessibilityDelegate(slider, sAccessibilityDelegate);
152
+ ViewCompat.setAccessibilityDelegate(slider, new ReactSliderAccessibilityDelegate());
153
153
  return slider;
154
154
  }
155
155
 
@@ -278,8 +278,8 @@ public class ReactSliderManager extends SimpleViewManager<ReactSlider>
278
278
  return mDelegate;
279
279
  }
280
280
 
281
- protected static class ReactSliderAccessibilityDelegate extends AccessibilityDelegateCompat {
282
- private static boolean isSliderAction(int action) {
281
+ protected class ReactSliderAccessibilityDelegate extends ReactAccessibilityDelegate {
282
+ private boolean isSliderAction(int action) {
283
283
  return (action == AccessibilityActionCompat.ACTION_SCROLL_FORWARD.getId())
284
284
  || (action == AccessibilityActionCompat.ACTION_SCROLL_BACKWARD.getId())
285
285
  || (action == AccessibilityActionCompat.ACTION_SET_PROGRESS.getId());
@@ -297,7 +297,4 @@ public class ReactSliderManager extends SimpleViewManager<ReactSlider>
297
297
  return rv;
298
298
  }
299
299
  };
300
-
301
- protected static ReactSliderAccessibilityDelegate sAccessibilityDelegate =
302
- new ReactSliderAccessibilityDelegate();
303
300
  }
@@ -26,6 +26,6 @@ rn_android_library(
26
26
  react_native_target("java/com/facebook/react/views/scroll:scroll"),
27
27
  ],
28
28
  exported_deps = [
29
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
29
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
30
30
  ],
31
31
  )
@@ -24,6 +24,6 @@ rn_android_library(
24
24
  react_native_target("java/com/facebook/react/common:common"),
25
25
  react_native_target("java/com/facebook/react/uimanager:uimanager"),
26
26
  react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
27
- react_native_root_target("Libraries:generated_components_java-FBReactNativeComponentSpec"),
27
+ react_native_root_target(":generated_components_java-FBReactNativeComponentSpec"),
28
28
  ],
29
29
  )
@@ -110,10 +110,6 @@ public abstract class ReactTextAnchorViewManager<T extends View, C extends React
110
110
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NONE);
111
111
  } else if (frequency.equals("full")) {
112
112
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL);
113
- } else if (frequency.equals("balanced")) {
114
- view.setHyphenationFrequency(Layout.BREAK_STRATEGY_BALANCED);
115
- } else if (frequency.equals("high")) {
116
- view.setHyphenationFrequency(Layout.BREAK_STRATEGY_HIGH_QUALITY);
117
113
  } else if (frequency.equals("normal")) {
118
114
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL);
119
115
  } else {
@@ -21,7 +21,7 @@ import androidx.annotation.Nullable;
21
21
  import com.facebook.infer.annotation.Assertions;
22
22
  import com.facebook.react.bridge.Arguments;
23
23
  import com.facebook.react.bridge.ReactNoCrashSoftException;
24
- import com.facebook.react.bridge.ReactSoftException;
24
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
25
25
  import com.facebook.react.bridge.WritableArray;
26
26
  import com.facebook.react.bridge.WritableMap;
27
27
  import com.facebook.react.uimanager.NativeViewHierarchyOptimizer;
@@ -32,6 +32,7 @@ import com.facebook.react.uimanager.ThemedReactContext;
32
32
  import com.facebook.react.uimanager.UIViewOperationQueue;
33
33
  import com.facebook.react.uimanager.annotations.ReactProp;
34
34
  import com.facebook.react.uimanager.events.RCTEventEmitter;
35
+ import com.facebook.yoga.YogaBaselineFunction;
35
36
  import com.facebook.yoga.YogaConstants;
36
37
  import com.facebook.yoga.YogaDirection;
37
38
  import com.facebook.yoga.YogaMeasureFunction;
@@ -116,7 +117,7 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
116
117
  .getJSModule(RCTEventEmitter.class)
117
118
  .receiveEvent(getReactTag(), "topTextLayout", event);
118
119
  } else {
119
- ReactSoftException.logSoftException(
120
+ ReactSoftExceptionLogger.logSoftException(
120
121
  "ReactTextShadowNode",
121
122
  new ReactNoCrashSoftException("Cannot get RCTEventEmitter, no CatalystInstance"));
122
123
  }
@@ -159,6 +160,20 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
159
160
  }
160
161
  };
161
162
 
163
+ private final YogaBaselineFunction mTextBaselineFunction =
164
+ new YogaBaselineFunction() {
165
+ @Override
166
+ public float baseline(YogaNode node, float width, float height) {
167
+ Spannable text =
168
+ Assertions.assertNotNull(
169
+ mPreparedSpannableText,
170
+ "Spannable element has not been prepared in onBeforeLayout");
171
+
172
+ Layout layout = measureSpannedText(text, width, YogaMeasureMode.EXACTLY);
173
+ return layout.getLineBaseline(layout.getLineCount() - 1);
174
+ }
175
+ };
176
+
162
177
  public ReactTextShadowNode() {
163
178
  this(null);
164
179
  }
@@ -171,6 +186,7 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
171
186
  private void initMeasureFunction() {
172
187
  if (!isVirtual()) {
173
188
  setMeasureFunction(mTextMeasureFunction);
189
+ setBaselineFunction(mTextBaselineFunction);
174
190
  }
175
191
  }
176
192
 
@@ -327,6 +343,11 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
327
343
  mJustificationMode);
328
344
  uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), reactTextUpdate);
329
345
  }
346
+
347
+ if (mAdjustsFontSizeToFit) {
348
+ // Nodes with `adjustsFontSizeToFit` enabled need to be remeasured on every relayout.
349
+ markUpdated();
350
+ }
330
351
  }
331
352
 
332
353
  @ReactProp(name = "onTextLayout")
@@ -56,6 +56,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
56
56
  private boolean mAdjustsFontSizeToFit = false;
57
57
  private int mLinkifyMaskType = 0;
58
58
  private boolean mNotifyOnInlineViewLayout;
59
+ private boolean mTextIsSelectable = false;
59
60
 
60
61
  private ReactViewBackgroundManager mReactBackgroundManager;
61
62
  private Spannable mSpanned;
@@ -433,9 +434,16 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
433
434
  }
434
435
  }
435
436
 
437
+ @Override
438
+ public void setTextIsSelectable(boolean selectable) {
439
+ mTextIsSelectable = selectable;
440
+ super.setTextIsSelectable(selectable);
441
+ }
442
+
436
443
  @Override
437
444
  public void onAttachedToWindow() {
438
445
  super.onAttachedToWindow();
446
+ setTextIsSelectable(mTextIsSelectable);
439
447
  if (mContainsImages && getText() instanceof Spanned) {
440
448
  Spanned text = (Spanned) getText();
441
449
  TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
@@ -68,9 +68,10 @@ public class TextAttributeProps {
68
68
  private static final int DEFAULT_TEXT_SHADOW_COLOR = 0x55000000;
69
69
  private static final int DEFAULT_JUSTIFICATION_MODE =
70
70
  (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) ? 0 : Layout.JUSTIFICATION_MODE_NONE;
71
-
72
71
  private static final int DEFAULT_BREAK_STRATEGY =
73
72
  (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) ? 0 : Layout.BREAK_STRATEGY_HIGH_QUALITY;
73
+ private static final int DEFAULT_HYPHENATION_FREQUENCY =
74
+ (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) ? 0 : Layout.HYPHENATION_FREQUENCY_NONE;
74
75
 
75
76
  protected float mLineHeight = Float.NaN;
76
77
  protected boolean mIsColorSet = false;
@@ -568,4 +569,22 @@ public class TextAttributeProps {
568
569
  }
569
570
  return androidTextBreakStrategy;
570
571
  }
572
+
573
+ public static int getHyphenationFrequency(@Nullable String hyphenationFrequency) {
574
+ int androidHyphenationFrequency = DEFAULT_HYPHENATION_FREQUENCY;
575
+ if (hyphenationFrequency != null) {
576
+ switch (hyphenationFrequency) {
577
+ case "none":
578
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NONE;
579
+ break;
580
+ case "normal":
581
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NORMAL;
582
+ break;
583
+ default:
584
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_FULL;
585
+ break;
586
+ }
587
+ }
588
+ return androidHyphenationFrequency;
589
+ }
571
590
  }
@@ -25,7 +25,7 @@ import androidx.annotation.NonNull;
25
25
  import androidx.annotation.Nullable;
26
26
  import com.facebook.common.logging.FLog;
27
27
  import com.facebook.react.bridge.ReactNoCrashSoftException;
28
- import com.facebook.react.bridge.ReactSoftException;
28
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
29
29
  import com.facebook.react.bridge.ReadableArray;
30
30
  import com.facebook.react.bridge.ReadableMap;
31
31
  import com.facebook.react.bridge.ReadableNativeMap;
@@ -64,6 +64,7 @@ public class TextLayoutManager {
64
64
  private static final boolean DEFAULT_INCLUDE_FONT_PADDING = true;
65
65
  private static final String INCLUDE_FONT_PADDING_KEY = "includeFontPadding";
66
66
  private static final String TEXT_BREAK_STRATEGY_KEY = "textBreakStrategy";
67
+ private static final String HYPHENATION_FREQUENCY_KEY = "android_hyphenationFrequency";
67
68
  private static final String MAXIMUM_NUMBER_OF_LINES_KEY = "maximumNumberOfLines";
68
69
  private static final LruCache<ReadableNativeMap, Spannable> sSpannableCache =
69
70
  new LruCache<>(spannableCacheSize);
@@ -250,7 +251,8 @@ public class TextLayoutManager {
250
251
  float width,
251
252
  YogaMeasureMode widthYogaMeasureMode,
252
253
  boolean includeFontPadding,
253
- int textBreakStrategy) {
254
+ int textBreakStrategy,
255
+ int hyphenationFrequency) {
254
256
  Layout layout;
255
257
  int spanLength = text.length();
256
258
  boolean unconstrainedWidth = widthYogaMeasureMode == YogaMeasureMode.UNDEFINED || width < 0;
@@ -281,14 +283,13 @@ public class TextLayoutManager {
281
283
  .setLineSpacing(0.f, 1.f)
282
284
  .setIncludePad(includeFontPadding)
283
285
  .setBreakStrategy(textBreakStrategy)
284
- .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL)
286
+ .setHyphenationFrequency(hyphenationFrequency)
285
287
  .build();
286
288
  }
287
-
288
289
  } else if (boring != null && (unconstrainedWidth || boring.width <= width)) {
289
290
  int boringLayoutWidth = boring.width;
290
291
  if (boring.width < 0) {
291
- ReactSoftException.logSoftException(
292
+ ReactSoftExceptionLogger.logSoftException(
292
293
  TAG, new ReactNoCrashSoftException("Text width is invalid: " + boring.width));
293
294
  boringLayoutWidth = 0;
294
295
  }
@@ -325,7 +326,7 @@ public class TextLayoutManager {
325
326
  .setLineSpacing(0.f, 1.f)
326
327
  .setIncludePad(includeFontPadding)
327
328
  .setBreakStrategy(textBreakStrategy)
328
- .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL);
329
+ .setHyphenationFrequency(hyphenationFrequency);
329
330
 
330
331
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
331
332
  builder.setUseLineSpacingFromFallbacks(true);
@@ -378,6 +379,9 @@ public class TextLayoutManager {
378
379
  paragraphAttributes.hasKey(INCLUDE_FONT_PADDING_KEY)
379
380
  ? paragraphAttributes.getBoolean(INCLUDE_FONT_PADDING_KEY)
380
381
  : DEFAULT_INCLUDE_FONT_PADDING;
382
+ int hyphenationFrequency =
383
+ TextAttributeProps.getHyphenationFrequency(
384
+ paragraphAttributes.getString(HYPHENATION_FREQUENCY_KEY));
381
385
 
382
386
  if (text == null) {
383
387
  throw new IllegalStateException("Spannable element has not been prepared in onBeforeLayout");
@@ -387,7 +391,13 @@ public class TextLayoutManager {
387
391
 
388
392
  Layout layout =
389
393
  createLayout(
390
- text, boring, width, widthYogaMeasureMode, includeFontPadding, textBreakStrategy);
394
+ text,
395
+ boring,
396
+ width,
397
+ widthYogaMeasureMode,
398
+ includeFontPadding,
399
+ textBreakStrategy,
400
+ hyphenationFrequency);
391
401
 
392
402
  int maximumNumberOfLines =
393
403
  paragraphAttributes.hasKey(MAXIMUM_NUMBER_OF_LINES_KEY)
@@ -493,16 +503,16 @@ public class TextLayoutManager {
493
503
 
494
504
  // The attachment array returns the positions of each of the attachments as
495
505
  attachmentsPositions[attachmentPosition] =
496
- PixelUtil.toSPFromPixel(placeholderTopPosition);
506
+ PixelUtil.toDIPFromPixel(placeholderTopPosition);
497
507
  attachmentsPositions[attachmentPosition + 1] =
498
- PixelUtil.toSPFromPixel(placeholderLeftPosition);
508
+ PixelUtil.toDIPFromPixel(placeholderLeftPosition);
499
509
  attachmentIndex++;
500
510
  }
501
511
  }
502
512
  }
503
513
 
504
- float widthInSP = PixelUtil.toSPFromPixel(calculatedWidth);
505
- float heightInSP = PixelUtil.toSPFromPixel(calculatedHeight);
514
+ float widthInSP = PixelUtil.toDIPFromPixel(calculatedWidth);
515
+ float heightInSP = PixelUtil.toDIPFromPixel(calculatedHeight);
506
516
 
507
517
  if (ENABLE_MEASURE_LOGGING) {
508
518
  FLog.e(
@@ -539,10 +549,19 @@ public class TextLayoutManager {
539
549
  paragraphAttributes.hasKey(INCLUDE_FONT_PADDING_KEY)
540
550
  ? paragraphAttributes.getBoolean(INCLUDE_FONT_PADDING_KEY)
541
551
  : DEFAULT_INCLUDE_FONT_PADDING;
552
+ int hyphenationFrequency =
553
+ TextAttributeProps.getTextBreakStrategy(
554
+ paragraphAttributes.getString(HYPHENATION_FREQUENCY_KEY));
542
555
 
543
556
  Layout layout =
544
557
  createLayout(
545
- text, boring, width, YogaMeasureMode.EXACTLY, includeFontPadding, textBreakStrategy);
558
+ text,
559
+ boring,
560
+ width,
561
+ YogaMeasureMode.EXACTLY,
562
+ includeFontPadding,
563
+ textBreakStrategy,
564
+ hyphenationFrequency);
546
565
  return FontMetricsUtil.getFontMetrics(text, layout, sTextPaintInstance, context);
547
566
  }
548
567