react-native 0.66.2 → 0.67.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
  5. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  6. package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
  7. package/Libraries/Animated/components/AnimatedText.js +3 -3
  8. package/Libraries/Animated/components/AnimatedView.js +1 -3
  9. package/Libraries/Animated/createAnimatedComponent.js +3 -34
  10. package/Libraries/Components/Button.js +3 -0
  11. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  13. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollView.js +17 -16
  15. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  16. package/Libraries/Components/View/View.js +1 -1
  17. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  18. package/Libraries/Core/ExceptionsManager.js +45 -80
  19. package/Libraries/Core/ExtendedError.js +0 -1
  20. package/Libraries/Core/ReactNativeVersion.js +3 -3
  21. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  22. package/Libraries/Core/setUpGlobals.js +2 -4
  23. package/Libraries/Core/setUpTimers.js +2 -2
  24. package/Libraries/Image/Image.ios.js +6 -0
  25. package/Libraries/Image/ImageBackground.js +10 -8
  26. package/Libraries/Image/ImageProps.js +28 -0
  27. package/Libraries/Image/RCTImageView.mm +4 -0
  28. package/Libraries/LogBox/Data/LogBoxData.js +0 -1
  29. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  30. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  31. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  32. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  33. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  34. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  35. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  36. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  37. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
  38. package/Libraries/NewAppScreen/components/logo.png +0 -0
  39. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  40. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  41. package/Libraries/Pressability/Pressability.js +13 -13
  42. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  43. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  44. package/Libraries/ReactNative/AppRegistry.js +4 -2
  45. package/Libraries/Renderer/REVISION +1 -1
  46. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
  47. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
  48. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
  51. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
  52. package/Libraries/Share/Share.js +1 -1
  53. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  54. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
  55. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  56. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  57. package/Libraries/Text/TextProps.js +1 -7
  58. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  59. package/Libraries/Utilities/HMRClient.js +1 -1
  60. package/README.md +1 -1
  61. package/React/Base/RCTBridge+Private.h +8 -0
  62. package/React/Base/RCTBridge.h +4 -0
  63. package/React/Base/RCTBridge.m +19 -7
  64. package/React/Base/RCTBridgeModule.h +2 -11
  65. package/React/Base/RCTBundleURLProvider.h +1 -1
  66. package/React/Base/RCTBundleURLProvider.mm +5 -3
  67. package/React/Base/RCTConstants.h +0 -6
  68. package/React/Base/RCTConstants.m +0 -15
  69. package/React/Base/RCTConvert.h +1 -1
  70. package/React/Base/RCTDefines.h +12 -3
  71. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  72. package/React/Base/RCTJSThread.h +29 -0
  73. package/React/Base/RCTJSThread.m +19 -0
  74. package/React/Base/RCTRootView.h +15 -0
  75. package/React/Base/RCTRootView.m +15 -0
  76. package/React/Base/RCTTouchHandler.m +1 -9
  77. package/React/Base/RCTUtils.h +3 -0
  78. package/React/Base/RCTUtils.m +14 -7
  79. package/React/Base/RCTVersion.m +3 -3
  80. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  81. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  82. package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
  83. package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
  84. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  85. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  86. package/React/CoreModules/RCTDevSettings.mm +6 -6
  87. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  88. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  89. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  90. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  91. package/React/CoreModules/RCTLogBox.mm +0 -1
  92. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  93. package/React/CoreModules/RCTRedBox.mm +1 -5
  94. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  95. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  96. package/React/DevSupport/RCTPackagerConnection.mm +9 -5
  97. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
  98. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
  100. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  101. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
  102. package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
  103. package/React/Fabric/RCTScheduler.mm +12 -5
  104. package/React/Fabric/RCTSurfacePresenter.mm +0 -4
  105. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  106. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
  107. package/React/React-RCTFabric.podspec +0 -1
  108. package/React/Views/RCTFont.mm +54 -38
  109. package/React/Views/RCTView.m +1 -6
  110. package/React/Views/RCTViewManager.m +3 -2
  111. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  112. package/React/Views/ScrollView/RCTScrollView.m +5 -15
  113. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
  114. package/React/Views/UIView+React.m +2 -11
  115. package/React-Core.podspec +0 -1
  116. package/ReactAndroid/build.gradle +11 -5
  117. package/ReactAndroid/gradle.properties +1 -1
  118. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  119. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  120. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
  121. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutor.java +14 -8
  122. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  127. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  133. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  136. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  137. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  147. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  162. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  163. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +3 -3
  175. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  176. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  177. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  178. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  179. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  180. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  181. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  194. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  195. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  208. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  209. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  210. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  211. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  212. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  213. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  214. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  215. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  216. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  217. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  218. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  219. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  220. package/ReactCommon/React-Fabric.podspec +9 -1
  221. package/ReactCommon/better/BUCK +0 -6
  222. package/ReactCommon/callinvoker/BUCK +2 -8
  223. package/ReactCommon/cxxreact/BUCK +1 -16
  224. package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
  225. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  226. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  227. package/ReactCommon/jsi/BUCK +0 -9
  228. package/ReactCommon/jsinspector/BUCK +0 -5
  229. package/ReactCommon/logger/BUCK +0 -5
  230. package/ReactCommon/react/config/BUCK +0 -6
  231. package/ReactCommon/react/debug/BUCK +0 -6
  232. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  233. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  234. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  235. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  236. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  237. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  238. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  239. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  241. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  242. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  243. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  244. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  245. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  246. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  247. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  248. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  249. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  250. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  251. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  252. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  253. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  254. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  255. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  256. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  257. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  258. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  259. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  261. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  262. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  263. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  264. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  266. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  268. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  269. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  271. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  273. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  275. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  276. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  277. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  278. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  279. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  280. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  281. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  282. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  283. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  284. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  285. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  286. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  287. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  288. package/ReactCommon/react/renderer/core/BUCK +2 -6
  289. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  290. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  291. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  292. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  293. package/ReactCommon/react/renderer/core/Props.h +1 -0
  294. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  295. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  296. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  297. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  298. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  299. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  300. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  301. package/ReactCommon/react/renderer/element/BUCK +0 -6
  302. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  303. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  304. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  305. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  306. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  307. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  308. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  309. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  310. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  311. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  312. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  313. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  314. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  315. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  316. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  317. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  318. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  319. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  320. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  321. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  325. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  326. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  327. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  328. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  330. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  331. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  332. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  333. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  334. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  335. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  336. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  337. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  338. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  339. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  340. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  341. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  342. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  343. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  344. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  345. package/ReactCommon/react/test_utils/BUCK +3 -6
  346. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  347. package/ReactCommon/react/utils/BUCK +0 -6
  348. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  349. package/ReactCommon/reactperflogger/BUCK +0 -4
  350. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  351. package/ReactCommon/yoga/BUCK +1 -5
  352. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.aar → 0.67.0-rc.3/react-native-0.67.0-rc.3.aar} +0 -0
  353. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.md5 +1 -0
  354. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha1 +1 -0
  355. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha256 +1 -0
  356. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha512 +1 -0
  357. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.module → 0.67.0-rc.3/react-native-0.67.0-rc.3.module} +16 -17
  358. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.md5 +1 -0
  359. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha1 +1 -0
  360. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha256 +1 -0
  361. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha512 +1 -0
  362. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.pom → 0.67.0-rc.3/react-native-0.67.0-rc.3.pom} +2 -2
  363. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.md5 +1 -0
  364. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha1 +1 -0
  365. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha256 +1 -0
  366. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha512 +1 -0
  367. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  368. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  369. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  370. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  371. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  372. package/flow/global.js +45 -0
  373. package/index.js +15 -10
  374. package/jest/mockModal.js +31 -0
  375. package/jest/setup.js +5 -3
  376. package/package.json +8 -9
  377. package/react.gradle +53 -18
  378. package/scripts/find-node.sh +13 -0
  379. package/scripts/generate-specs-cli.js +18 -0
  380. package/scripts/ios-configure-glog.sh +4 -0
  381. package/scripts/react-native-xcode.sh +6 -6
  382. package/scripts/react_native_pods.rb +200 -57
  383. package/template/Gemfile +6 -0
  384. package/template/Gemfile.lock +100 -0
  385. package/template/_bundle/config +2 -0
  386. package/template/_flowconfig +1 -1
  387. package/template/_ruby-version +1 -0
  388. package/template/android/app/build.gradle +1 -1
  389. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  390. package/template/android/app/src/main/res/values/styles.xml +1 -0
  391. package/template/android/build.gradle +7 -3
  392. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  393. package/template/android/gradle.properties +1 -1
  394. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  395. package/template/package.json +1 -1
  396. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  397. package/third-party-podspecs/glog.podspec +0 -1
  398. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  399. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  400. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  401. package/Libraries/Components/StaticContainer.react.js +0 -51
  402. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  403. package/Libraries/Interaction/InteractionMixin.js +0 -54
  404. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  405. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  406. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  407. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  408. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  409. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  412. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  413. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  414. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  415. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  419. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  420. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  421. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  422. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  430. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.md5 +0 -1
  431. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha1 +0 -1
  432. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha256 +0 -1
  433. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha512 +0 -1
  434. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.md5 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha1 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha256 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha512 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.md5 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha1 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha256 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha512 +0 -1
  442. package/scripts/generate-specs.sh +0 -99
  443. package/template/_editorconfig +0 -3
  444. package/template/_gitattributes +0 -3
@@ -13,6 +13,7 @@ import androidx.core.util.Pools;
13
13
  import com.facebook.infer.annotation.Assertions;
14
14
  import com.facebook.react.bridge.ReactSoftExceptionLogger;
15
15
  import com.facebook.react.bridge.SoftAssertions;
16
+ import com.facebook.react.config.ReactFeatureFlags;
16
17
 
17
18
  /**
18
19
  * An event representing the start, end or movement of a touch. Corresponds to a single {@link
@@ -96,7 +97,7 @@ public class TouchEvent extends Event<TouchEvent> {
96
97
  float viewX,
97
98
  float viewY,
98
99
  TouchEventCoalescingKeyHelper touchEventCoalescingKeyHelper) {
99
- super.init(surfaceId, viewTag);
100
+ super.init(surfaceId, viewTag, motionEventToCopy.getEventTime());
100
101
 
101
102
  SoftAssertions.assertCondition(
102
103
  gestureStartTime != UNSET, "Gesture start time must be initialized");
@@ -188,17 +189,47 @@ public class TouchEvent extends Event<TouchEvent> {
188
189
  "Cannot dispatch a TouchEvent that has no MotionEvent; the TouchEvent has been recycled"));
189
190
  return;
190
191
  }
191
- TouchesHelper.sendTouchEvent(
192
- rctEventEmitter,
193
- Assertions.assertNotNull(mTouchEventType),
194
- getSurfaceId(),
195
- getViewTag(),
196
- this);
192
+
193
+ TouchesHelper.sendTouchEvent(rctEventEmitter, this);
197
194
  }
198
195
 
199
196
  @Override
200
197
  public void dispatchModern(RCTModernEventEmitter rctEventEmitter) {
201
- dispatch(rctEventEmitter);
198
+ if (ReactFeatureFlags.useUpdatedTouchPreprocessing) {
199
+ TouchesHelper.sendTouchEventModern(rctEventEmitter, this, /* useDispatchV2 */ false);
200
+ } else {
201
+ dispatch(rctEventEmitter);
202
+ }
203
+ }
204
+
205
+ @Override
206
+ public void dispatchModernV2(RCTModernEventEmitter rctEventEmitter) {
207
+ if (ReactFeatureFlags.useUpdatedTouchPreprocessing) {
208
+ TouchesHelper.sendTouchEventModern(rctEventEmitter, this, /* useDispatchV2 */ true);
209
+ } else {
210
+ dispatch(rctEventEmitter);
211
+ }
212
+ }
213
+
214
+ @Override
215
+ protected int getEventCategory() {
216
+ TouchEventType type = mTouchEventType;
217
+ if (type == null) {
218
+ return EventCategoryDef.UNSPECIFIED;
219
+ }
220
+
221
+ switch (type) {
222
+ case START:
223
+ return EventCategoryDef.CONTINUOUS_START;
224
+ case END:
225
+ case CANCEL:
226
+ return EventCategoryDef.CONTINUOUS_END;
227
+ case MOVE:
228
+ return EventCategoryDef.CONTINUOUS;
229
+ }
230
+
231
+ // Something something smart compiler...
232
+ return super.getEventCategory();
202
233
  }
203
234
 
204
235
  public MotionEvent getMotionEvent() {
@@ -210,6 +241,10 @@ public class TouchEvent extends Event<TouchEvent> {
210
241
  return mMotionEvent != null;
211
242
  }
212
243
 
244
+ public TouchEventType getTouchEventType() {
245
+ return Assertions.assertNotNull(mTouchEventType);
246
+ }
247
+
213
248
  public float getViewX() {
214
249
  return mViewX;
215
250
  }
@@ -9,23 +9,22 @@ package com.facebook.react.uimanager.events;
9
9
 
10
10
  /** Touch event types that JS module RCTEventEmitter can understand */
11
11
  public enum TouchEventType {
12
- START,
13
- END,
14
- MOVE,
15
- CANCEL;
12
+ START("topTouchStart"),
13
+ END("topTouchEnd"),
14
+ MOVE("topTouchMove"),
15
+ CANCEL("topTouchCancel");
16
+
17
+ private final String mJsName;
18
+
19
+ TouchEventType(String jsName) {
20
+ mJsName = jsName;
21
+ }
22
+
23
+ public String getJsName() {
24
+ return mJsName;
25
+ }
16
26
 
17
27
  public static String getJSEventName(TouchEventType type) {
18
- switch (type) {
19
- case START:
20
- return "topTouchStart";
21
- case END:
22
- return "topTouchEnd";
23
- case MOVE:
24
- return "topTouchMove";
25
- case CANCEL:
26
- return "topTouchCancel";
27
- default:
28
- throw new IllegalArgumentException("Unexpected type " + type);
29
- }
28
+ return type.getJsName();
30
29
  }
31
30
  }
@@ -9,19 +9,17 @@ package com.facebook.react.uimanager.events;
9
9
 
10
10
  import android.view.MotionEvent;
11
11
  import com.facebook.react.bridge.Arguments;
12
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
12
13
  import com.facebook.react.bridge.WritableArray;
13
14
  import com.facebook.react.bridge.WritableMap;
14
15
  import com.facebook.react.uimanager.PixelUtil;
15
16
 
16
17
  /** Class responsible for generating catalyst touch events based on android {@link MotionEvent}. */
17
18
  public class TouchesHelper {
18
-
19
19
  public static final String TARGET_SURFACE_KEY = "targetSurface";
20
20
  public static final String TARGET_KEY = "target";
21
21
  public static final String CHANGED_TOUCHES_KEY = "changedTouches";
22
22
  public static final String TOUCHES_KEY = "touches";
23
- public static final String TOP_TOUCH_END_KEY = "topTouchEnd";
24
- public static final String TOP_TOUCH_CANCEL_KEY = "topTouchCancel";
25
23
  private static final String PAGE_X_KEY = "pageX";
26
24
  private static final String PAGE_Y_KEY = "pageY";
27
25
  private static final String TIMESTAMP_KEY = "timestamp";
@@ -30,15 +28,16 @@ public class TouchesHelper {
30
28
  private static final String LOCATION_X_KEY = "locationX";
31
29
  private static final String LOCATION_Y_KEY = "locationY";
32
30
 
31
+ private static final String TAG = "TouchesHelper";
32
+
33
33
  /**
34
34
  * Creates catalyst pointers array in format that is expected by RCTEventEmitter JS module from
35
35
  * given {@param event} instance. This method use {@param reactTarget} parameter to set as a
36
36
  * target view id associated with current gesture.
37
37
  */
38
- private static WritableArray createsPointersArray(
39
- int surfaceId, int reactTarget, TouchEvent event) {
40
- WritableArray touches = Arguments.createArray();
38
+ private static WritableMap[] createPointersArray(TouchEvent event) {
41
39
  MotionEvent motionEvent = event.getMotionEvent();
40
+ WritableMap[] touches = new WritableMap[motionEvent.getPointerCount()];
42
41
 
43
42
  // Calculate the coordinates for the target view.
44
43
  // The MotionEvent contains the X,Y of the touch in the coordinate space of the root view
@@ -62,11 +61,12 @@ public class TouchesHelper {
62
61
  float locationY = motionEvent.getY(index) - targetViewCoordinateY;
63
62
  touch.putDouble(LOCATION_X_KEY, PixelUtil.toDIPFromPixel(locationX));
64
63
  touch.putDouble(LOCATION_Y_KEY, PixelUtil.toDIPFromPixel(locationY));
65
- touch.putInt(TARGET_SURFACE_KEY, surfaceId);
66
- touch.putInt(TARGET_KEY, reactTarget);
67
- touch.putDouble(TIMESTAMP_KEY, event.getUnixTimestampMs());
64
+ touch.putInt(TARGET_SURFACE_KEY, event.getSurfaceId());
65
+ touch.putInt(TARGET_KEY, event.getViewTag());
66
+ touch.putDouble(TIMESTAMP_KEY, event.getTimestampMs());
68
67
  touch.putDouble(POINTER_IDENTIFIER_KEY, motionEvent.getPointerId(index));
69
- touches.pushMap(touch);
68
+
69
+ touches[index] = touch;
70
70
  }
71
71
 
72
72
  return touches;
@@ -77,17 +77,12 @@ public class TouchesHelper {
77
77
  * context}. Touch event can encode multiple concurrent touches (pointers).
78
78
  *
79
79
  * @param rctEventEmitter Event emitter used to execute JS module call
80
- * @param type type of the touch event (see {@link TouchEventType})
81
- * @param reactTarget target view react id associated with this gesture
82
80
  * @param touchEvent native touch event to read pointers count and coordinates from
83
81
  */
84
- public static void sendTouchEvent(
85
- RCTEventEmitter rctEventEmitter,
86
- TouchEventType type,
87
- int surfaceId,
88
- int reactTarget,
89
- TouchEvent touchEvent) {
90
- WritableArray pointers = createsPointersArray(surfaceId, reactTarget, touchEvent);
82
+ public static void sendTouchEvent(RCTEventEmitter rctEventEmitter, TouchEvent touchEvent) {
83
+ TouchEventType type = touchEvent.getTouchEventType();
84
+
85
+ WritableArray pointers = getWritableArray(createPointersArray(touchEvent));
91
86
  MotionEvent motionEvent = touchEvent.getMotionEvent();
92
87
 
93
88
  // For START and END events send only index of the pointer that is associated with that event
@@ -105,4 +100,98 @@ public class TouchesHelper {
105
100
 
106
101
  rctEventEmitter.receiveTouches(TouchEventType.getJSEventName(type), pointers, changedIndices);
107
102
  }
103
+
104
+ /**
105
+ * Generate touch event data to match JS expectations. Combines logic in {@link #sendTouchEvent}
106
+ * and FabricEventEmitter to create the same data structure in a more efficient manner.
107
+ *
108
+ * <p>Touches have to be dispatched as separate events for each changed pointer to make JS process
109
+ * them correctly. To avoid allocations, we preprocess touch events in Java world and then convert
110
+ * them to native before dispatch.
111
+ *
112
+ * @param eventEmitter emitter to dispatch event to
113
+ * @param event the touch event to extract data from
114
+ * @param useDispatchV2 whether to dispatch additional data used by {@link Event#dispatchModernV2}
115
+ */
116
+ public static void sendTouchEventModern(
117
+ RCTModernEventEmitter eventEmitter, TouchEvent event, boolean useDispatchV2) {
118
+ TouchEventType type = event.getTouchEventType();
119
+ MotionEvent motionEvent = event.getMotionEvent();
120
+
121
+ if (motionEvent == null) {
122
+ ReactSoftExceptionLogger.logSoftException(
123
+ TAG,
124
+ new IllegalStateException(
125
+ "Cannot dispatch a TouchEvent that has no MotionEvent; the TouchEvent has been recycled"));
126
+ return;
127
+ }
128
+
129
+ WritableMap[] touches = createPointersArray(event);
130
+ WritableMap[] changedTouches = null;
131
+
132
+ switch (type) {
133
+ case START:
134
+ int newPointerIndex = motionEvent.getActionIndex();
135
+
136
+ changedTouches = new WritableMap[] {touches[newPointerIndex].copy()};
137
+ break;
138
+ case END:
139
+ int finishedPointerIndex = motionEvent.getActionIndex();
140
+ /*
141
+ * Clear finished pointer index for compatibility with W3C touch "end" events, where the
142
+ * active touches don't include the set that has just been "ended".
143
+ */
144
+ WritableMap finishedPointer = touches[finishedPointerIndex];
145
+ touches[finishedPointerIndex] = null;
146
+
147
+ changedTouches = new WritableMap[] {finishedPointer};
148
+ break;
149
+ case MOVE:
150
+ changedTouches = new WritableMap[touches.length];
151
+ for (int i = 0; i < touches.length; i++) {
152
+ changedTouches[i] = touches[i].copy();
153
+ }
154
+ break;
155
+ case CANCEL:
156
+ changedTouches = touches;
157
+ touches = new WritableMap[0];
158
+ break;
159
+ }
160
+
161
+ WritableArray touchesArray = getWritableArray(touches);
162
+ WritableArray changedTouchesArray = getWritableArray(/* copyObjects */ true, changedTouches);
163
+
164
+ for (WritableMap eventData : changedTouches) {
165
+ eventData.putArray(CHANGED_TOUCHES_KEY, changedTouchesArray);
166
+ eventData.putArray(TOUCHES_KEY, touchesArray);
167
+
168
+ if (useDispatchV2) {
169
+ eventEmitter.receiveEvent(
170
+ event.getSurfaceId(),
171
+ event.getViewTag(),
172
+ event.getEventName(),
173
+ event.canCoalesce(),
174
+ 0,
175
+ eventData,
176
+ event.getEventCategory());
177
+ } else {
178
+ eventEmitter.receiveEvent(
179
+ event.getSurfaceId(), event.getViewTag(), event.getEventName(), eventData);
180
+ }
181
+ }
182
+ }
183
+
184
+ private static WritableArray getWritableArray(WritableMap... objects) {
185
+ return getWritableArray(false, objects);
186
+ }
187
+
188
+ private static WritableArray getWritableArray(boolean copyObjects, WritableMap... objects) {
189
+ WritableArray result = Arguments.createArray();
190
+ for (WritableMap object : objects) {
191
+ if (object != null) {
192
+ result.pushMap(copyObjects ? object.copy() : object);
193
+ }
194
+ }
195
+ return result;
196
+ }
108
197
  }
@@ -11,12 +11,6 @@ rn_xplat_cxx_library(
11
11
  ],
12
12
  prefix = "react/uimanager/jni",
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,
@@ -7,6 +7,12 @@
7
7
 
8
8
  package com.facebook.react.views.scroll;
9
9
 
10
+ import static com.facebook.react.config.ReactFeatureFlags.enableScrollViewSnapToAlignmentProp;
11
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER;
12
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED;
13
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END;
14
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_START;
15
+
10
16
  import android.animation.Animator;
11
17
  import android.animation.ObjectAnimator;
12
18
  import android.animation.PropertyValuesHolder;
@@ -21,6 +27,7 @@ import android.view.FocusFinder;
21
27
  import android.view.KeyEvent;
22
28
  import android.view.MotionEvent;
23
29
  import android.view.View;
30
+ import android.view.ViewGroup;
24
31
  import android.view.accessibility.AccessibilityEvent;
25
32
  import android.widget.HorizontalScrollView;
26
33
  import android.widget.OverScroller;
@@ -94,6 +101,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
94
101
  private @Nullable List<Integer> mSnapOffsets;
95
102
  private boolean mSnapToStart = true;
96
103
  private boolean mSnapToEnd = true;
104
+ private int mSnapToAlignment = SNAP_ALIGNMENT_DISABLED;
97
105
  private ReactViewBackgroundManager mReactBackgroundManager;
98
106
  private boolean mPagedArrowScrolling = false;
99
107
  private int pendingContentOffsetX = UNSET_CONTENT_OFFSET;
@@ -239,6 +247,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
239
247
  mSnapToEnd = snapToEnd;
240
248
  }
241
249
 
250
+ public void setSnapToAlignment(int snapToAlignment) {
251
+ mSnapToAlignment = snapToAlignment;
252
+ }
253
+
242
254
  public void flashScrollIndicators() {
243
255
  awakenScrollBars();
244
256
  }
@@ -905,7 +917,9 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
905
917
  }
906
918
 
907
919
  // pagingEnabled only allows snapping one interval at a time
908
- if (mSnapInterval == 0 && mSnapOffsets == null) {
920
+ if (mSnapInterval == 0
921
+ && mSnapOffsets == null
922
+ && (!enableScrollViewSnapToAlignmentProp || mSnapToAlignment == SNAP_ALIGNMENT_DISABLED)) {
909
923
  smoothScrollAndSnap(velocityX);
910
924
  return;
911
925
  }
@@ -948,8 +962,46 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
948
962
  }
949
963
  }
950
964
  }
965
+ } else if (enableScrollViewSnapToAlignmentProp && mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) {
966
+ if (mSnapInterval > 0) {
967
+ double ratio = (double) targetOffset / mSnapInterval;
968
+ smallerOffset =
969
+ Math.max(
970
+ getItemStartOffset(
971
+ mSnapToAlignment,
972
+ (int) (Math.floor(ratio) * mSnapInterval),
973
+ mSnapInterval,
974
+ width),
975
+ 0);
976
+ largerOffset =
977
+ Math.min(
978
+ getItemStartOffset(
979
+ mSnapToAlignment,
980
+ (int) (Math.ceil(ratio) * mSnapInterval),
981
+ mSnapInterval,
982
+ width),
983
+ maximumOffset);
984
+ } else {
985
+ ViewGroup contentView = (ViewGroup) getContentView();
986
+ for (int i = 1; i < contentView.getChildCount(); i++) {
987
+ View item = contentView.getChildAt(i);
988
+ int itemStartOffset =
989
+ getItemStartOffset(mSnapToAlignment, item.getLeft(), item.getWidth(), width);
990
+ if (itemStartOffset <= targetOffset) {
991
+ if (targetOffset - itemStartOffset < targetOffset - smallerOffset) {
992
+ smallerOffset = itemStartOffset;
993
+ }
994
+ }
995
+
996
+ if (itemStartOffset >= targetOffset) {
997
+ if (itemStartOffset - targetOffset < largerOffset - targetOffset) {
998
+ largerOffset = itemStartOffset;
999
+ }
1000
+ }
1001
+ }
1002
+ }
951
1003
  } else {
952
- double interval = (double) getSnapInterval();
1004
+ double interval = getSnapInterval();
953
1005
  double ratio = (double) targetOffset / interval;
954
1006
  smallerOffset = (int) (Math.floor(ratio) * interval);
955
1007
  largerOffset = Math.min((int) (Math.ceil(ratio) * interval), maximumOffset);
@@ -1032,6 +1084,25 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
1032
1084
  }
1033
1085
  }
1034
1086
 
1087
+ private int getItemStartOffset(
1088
+ int snapToAlignment, int itemStartPosition, int itemWidth, int viewPortWidth) {
1089
+ int itemStartOffset;
1090
+ switch (snapToAlignment) {
1091
+ case SNAP_ALIGNMENT_CENTER:
1092
+ itemStartOffset = itemStartPosition - (viewPortWidth - itemWidth) / 2;
1093
+ break;
1094
+ case SNAP_ALIGNMENT_START:
1095
+ itemStartOffset = itemStartPosition;
1096
+ break;
1097
+ case SNAP_ALIGNMENT_END:
1098
+ itemStartOffset = itemStartPosition - (viewPortWidth - itemWidth);
1099
+ break;
1100
+ default:
1101
+ throw new IllegalStateException("Invalid SnapToAlignment value: " + mSnapToAlignment);
1102
+ }
1103
+ return itemStartOffset;
1104
+ }
1105
+
1035
1106
  private void smoothScrollToNextPage(int direction) {
1036
1107
  if (DEBUG_MODE) {
1037
1108
  FLog.i(TAG, "smoothScrollToNextPage[%d] direction %d", getId(), direction);
@@ -1160,8 +1231,12 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
1160
1231
  }
1161
1232
 
1162
1233
  super.scrollTo(x, y);
1163
- updateStateOnScroll(x, y);
1164
- setPendingContentOffsets(x, y);
1234
+ // The final scroll position might be different from (x, y). For example, we may need to scroll
1235
+ // to the last item in the list, but that item cannot be move to the start position of the view.
1236
+ final int actualX = getScrollX();
1237
+ final int actualY = getScrollY();
1238
+ updateStateOnScroll(actualX, actualY);
1239
+ setPendingContentOffsets(actualX, actualY);
1165
1240
  }
1166
1241
 
1167
1242
  /**
@@ -102,6 +102,11 @@ public class ReactHorizontalScrollViewManager extends ViewGroupManager<ReactHori
102
102
  view.setSnapInterval((int) (snapToInterval * screenDisplayMetrics.density));
103
103
  }
104
104
 
105
+ @ReactProp(name = "snapToAlignment")
106
+ public void setSnapToAlignment(ReactHorizontalScrollView view, String alignment) {
107
+ view.setSnapToAlignment(ReactScrollViewHelper.parseSnapToAlignment(alignment));
108
+ }
109
+
105
110
  @ReactProp(name = "snapToOffsets")
106
111
  public void setSnapToOffsets(
107
112
  ReactHorizontalScrollView view, @Nullable ReadableArray snapToOffsets) {
@@ -7,6 +7,12 @@
7
7
 
8
8
  package com.facebook.react.views.scroll;
9
9
 
10
+ import static com.facebook.react.config.ReactFeatureFlags.enableScrollViewSnapToAlignmentProp;
11
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER;
12
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED;
13
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END;
14
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_START;
15
+
10
16
  import android.animation.Animator;
11
17
  import android.animation.ObjectAnimator;
12
18
  import android.animation.PropertyValuesHolder;
@@ -92,6 +98,7 @@ public class ReactScrollView extends ScrollView
92
98
  private @Nullable List<Integer> mSnapOffsets;
93
99
  private boolean mSnapToStart = true;
94
100
  private boolean mSnapToEnd = true;
101
+ private int mSnapToAlignment = SNAP_ALIGNMENT_DISABLED;
95
102
  private @Nullable View mContentView;
96
103
  private ReactViewBackgroundManager mReactBackgroundManager;
97
104
  private int pendingContentOffsetX = UNSET_CONTENT_OFFSET;
@@ -218,6 +225,10 @@ public class ReactScrollView extends ScrollView
218
225
  mSnapToEnd = snapToEnd;
219
226
  }
220
227
 
228
+ public void setSnapToAlignment(int snapToAlignment) {
229
+ mSnapToAlignment = snapToAlignment;
230
+ }
231
+
221
232
  public void flashScrollIndicators() {
222
233
  awakenScrollBars();
223
234
  }
@@ -634,6 +645,10 @@ public class ReactScrollView extends ScrollView
634
645
  return scroller.getFinalY();
635
646
  }
636
647
 
648
+ private View getContentView() {
649
+ return getChildAt(0);
650
+ }
651
+
637
652
  /**
638
653
  * This will smooth scroll us to the nearest snap offset point It currently just looks at where
639
654
  * the content is and slides to the nearest point. It is intended to be run after we are done
@@ -690,7 +705,9 @@ public class ReactScrollView extends ScrollView
690
705
  }
691
706
 
692
707
  // pagingEnabled only allows snapping one interval at a time
693
- if (mSnapInterval == 0 && mSnapOffsets == null) {
708
+ if (mSnapInterval == 0
709
+ && mSnapOffsets == null
710
+ && (!enableScrollViewSnapToAlignmentProp || mSnapToAlignment == SNAP_ALIGNMENT_DISABLED)) {
694
711
  smoothScrollAndSnap(velocityY);
695
712
  return;
696
713
  }
@@ -727,6 +744,57 @@ public class ReactScrollView extends ScrollView
727
744
  }
728
745
  }
729
746
  }
747
+
748
+ } else if (enableScrollViewSnapToAlignmentProp && mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) {
749
+ if (mSnapInterval > 0) {
750
+ double ratio = (double) targetOffset / mSnapInterval;
751
+ smallerOffset =
752
+ Math.max(
753
+ getItemStartOffset(
754
+ mSnapToAlignment,
755
+ (int) (Math.floor(ratio) * mSnapInterval),
756
+ mSnapInterval,
757
+ height),
758
+ 0);
759
+ largerOffset =
760
+ Math.min(
761
+ getItemStartOffset(
762
+ mSnapToAlignment,
763
+ (int) (Math.ceil(ratio) * mSnapInterval),
764
+ mSnapInterval,
765
+ height),
766
+ maximumOffset);
767
+ } else {
768
+ ViewGroup contentView = (ViewGroup) getContentView();
769
+ for (int i = 1; i < contentView.getChildCount(); i++) {
770
+ View item = contentView.getChildAt(i);
771
+ int itemStartOffset;
772
+ switch (mSnapToAlignment) {
773
+ case SNAP_ALIGNMENT_CENTER:
774
+ itemStartOffset = item.getTop() - (height - item.getHeight()) / 2;
775
+ break;
776
+ case SNAP_ALIGNMENT_START:
777
+ itemStartOffset = item.getTop();
778
+ break;
779
+ case SNAP_ALIGNMENT_END:
780
+ itemStartOffset = item.getTop() - (height - item.getHeight());
781
+ break;
782
+ default:
783
+ throw new IllegalStateException("Invalid SnapToAlignment value: " + mSnapToAlignment);
784
+ }
785
+ if (itemStartOffset <= targetOffset) {
786
+ if (targetOffset - itemStartOffset < targetOffset - smallerOffset) {
787
+ smallerOffset = itemStartOffset;
788
+ }
789
+ }
790
+
791
+ if (itemStartOffset >= targetOffset) {
792
+ if (itemStartOffset - targetOffset < largerOffset - targetOffset) {
793
+ largerOffset = itemStartOffset;
794
+ }
795
+ }
796
+ }
797
+ }
730
798
  } else {
731
799
  double interval = (double) getSnapInterval();
732
800
  double ratio = (double) targetOffset / interval;
@@ -802,6 +870,25 @@ public class ReactScrollView extends ScrollView
802
870
  }
803
871
  }
804
872
 
873
+ private int getItemStartOffset(
874
+ int snapToAlignment, int itemStartPosition, int itemHeight, int viewPortHeight) {
875
+ int itemStartOffset;
876
+ switch (snapToAlignment) {
877
+ case SNAP_ALIGNMENT_CENTER:
878
+ itemStartOffset = itemStartPosition - (viewPortHeight - itemHeight) / 2;
879
+ break;
880
+ case SNAP_ALIGNMENT_START:
881
+ itemStartOffset = itemStartPosition;
882
+ break;
883
+ case SNAP_ALIGNMENT_END:
884
+ itemStartOffset = itemStartPosition - (viewPortHeight - itemHeight);
885
+ break;
886
+ default:
887
+ throw new IllegalStateException("Invalid SnapToAlignment value: " + mSnapToAlignment);
888
+ }
889
+ return itemStartOffset;
890
+ }
891
+
805
892
  private int getSnapInterval() {
806
893
  if (mSnapInterval != 0) {
807
894
  return mSnapInterval;
@@ -919,8 +1006,12 @@ public class ReactScrollView extends ScrollView
919
1006
  @Override
920
1007
  public void scrollTo(int x, int y) {
921
1008
  super.scrollTo(x, y);
922
- updateStateOnScroll(x, y);
923
- setPendingContentOffsets(x, y);
1009
+ // The final scroll position might be different from (x, y). For example, we may need to scroll
1010
+ // to the last item in the list, but that item cannot be move to the start position of the view.
1011
+ final int actualX = getScrollX();
1012
+ final int actualY = getScrollY();
1013
+ updateStateOnScroll(actualX, actualY);
1014
+ setPendingContentOffsets(actualX, actualY);
924
1015
  }
925
1016
 
926
1017
  /**
@@ -11,6 +11,7 @@ import android.content.Context;
11
11
  import android.view.View;
12
12
  import android.view.ViewGroup;
13
13
  import android.widget.OverScroller;
14
+ import androidx.annotation.Nullable;
14
15
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
15
16
  import com.facebook.react.bridge.ReactContext;
16
17
  import com.facebook.react.uimanager.UIManagerHelper;
@@ -26,6 +27,11 @@ public class ReactScrollViewHelper {
26
27
  public static final String AUTO = "auto";
27
28
  public static final String OVER_SCROLL_NEVER = "never";
28
29
 
30
+ public static final int SNAP_ALIGNMENT_DISABLED = 0;
31
+ public static final int SNAP_ALIGNMENT_START = 1;
32
+ public static final int SNAP_ALIGNMENT_CENTER = 2;
33
+ public static final int SNAP_ALIGNMENT_END = 3;
34
+
29
35
  public interface ScrollListener {
30
36
  void onScroll(
31
37
  ViewGroup scrollView, ScrollEventType scrollEventType, float xVelocity, float yVelocity);
@@ -34,7 +40,7 @@ public class ReactScrollViewHelper {
34
40
  }
35
41
 
36
42
  // Support global native listeners for scroll events
37
- private static Set<ScrollListener> sScrollListeners =
43
+ private static final Set<ScrollListener> sScrollListeners =
38
44
  Collections.newSetFromMap(new WeakHashMap<ScrollListener, Boolean>());
39
45
 
40
46
  // If all else fails, this is the hardcoded value in OverScroller.java, in AOSP.
@@ -119,6 +125,20 @@ public class ReactScrollViewHelper {
119
125
  }
120
126
  }
121
127
 
128
+ public static int parseSnapToAlignment(@Nullable String alignment) {
129
+ if (alignment == null) {
130
+ return SNAP_ALIGNMENT_DISABLED;
131
+ } else if ("start".equalsIgnoreCase(alignment)) {
132
+ return SNAP_ALIGNMENT_START;
133
+ } else if ("center".equalsIgnoreCase(alignment)) {
134
+ return SNAP_ALIGNMENT_CENTER;
135
+ } else if ("end".equals(alignment)) {
136
+ return SNAP_ALIGNMENT_END;
137
+ } else {
138
+ throw new JSApplicationIllegalArgumentException("wrong snap alignment value: " + alignment);
139
+ }
140
+ }
141
+
122
142
  public static int getDefaultScrollAnimationDuration(Context context) {
123
143
  if (!mSmoothScrollDurationInitialized) {
124
144
  mSmoothScrollDurationInitialized = true;
@@ -115,6 +115,11 @@ public class ReactScrollViewManager extends ViewGroupManager<ReactScrollView>
115
115
  view.setSnapOffsets(offsets);
116
116
  }
117
117
 
118
+ @ReactProp(name = "snapToAlignment")
119
+ public void setSnapToAlignment(ReactScrollView view, String alignment) {
120
+ view.setSnapToAlignment(ReactScrollViewHelper.parseSnapToAlignment(alignment));
121
+ }
122
+
118
123
  @ReactProp(name = "snapToStart")
119
124
  public void setSnapToStart(ReactScrollView view, boolean snapToStart) {
120
125
  view.setSnapToStart(snapToStart);
@@ -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 {