react-native 0.66.0-rc.4 → 0.67.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
- package/Libraries/Animated/AnimatedEvent.js +23 -4
- package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/components/AnimatedView.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +3 -34
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollView.js +17 -16
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/View/View.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +45 -80
- package/Libraries/Core/ExtendedError.js +0 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -4
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/Image/Image.ios.js +6 -0
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/RCTImageView.mm +4 -0
- package/Libraries/LogBox/Data/LogBoxData.js +18 -19
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
- package/Libraries/Pressability/Pressability.js +13 -13
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
- package/Libraries/ReactNative/AppRegistry.js +4 -2
- package/Libraries/Renderer/REVISION +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
- package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
- package/Libraries/Text/TextProps.js +1 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/README.md +1 -1
- package/React/Base/RCTBridge+Private.h +8 -0
- package/React/Base/RCTBridge.h +4 -0
- package/React/Base/RCTBridge.m +19 -7
- package/React/Base/RCTBridgeModule.h +2 -11
- package/React/Base/RCTBundleURLProvider.h +1 -1
- package/React/Base/RCTBundleURLProvider.mm +5 -3
- package/React/Base/RCTConstants.h +0 -6
- package/React/Base/RCTConstants.m +0 -15
- package/React/Base/RCTConvert.h +1 -1
- package/React/Base/RCTDefines.h +12 -3
- package/React/Base/RCTEventDispatcherProtocol.h +2 -0
- package/React/Base/RCTJSThread.h +29 -0
- package/React/Base/RCTJSThread.m +19 -0
- package/React/Base/RCTRootView.h +15 -0
- package/React/Base/RCTRootView.m +15 -0
- package/React/Base/RCTTouchHandler.m +1 -9
- package/React/Base/RCTUtils.h +3 -0
- package/React/Base/RCTUtils.m +14 -7
- package/React/Base/RCTVersion.m +2 -2
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
- package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
- package/React/CoreModules/RCTActionSheetManager.mm +14 -5
- package/React/CoreModules/RCTAppearance.mm +3 -1
- package/React/CoreModules/RCTDevLoadingView.mm +5 -10
- package/React/CoreModules/RCTDevSettings.mm +6 -6
- package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -4
- package/React/CoreModules/RCTEventDispatcher.mm +5 -0
- package/React/CoreModules/RCTExceptionsManager.mm +11 -24
- package/React/CoreModules/RCTPerfMonitor.mm +9 -4
- package/React/CoreModules/RCTRedBox.mm +1 -5
- package/React/CxxBridge/RCTCxxBridge.mm +18 -1
- package/React/DevSupport/RCTPackagerConnection.h +3 -0
- package/React/DevSupport/RCTPackagerConnection.mm +9 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
- package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
- package/React/Fabric/RCTScheduler.mm +12 -5
- package/React/Fabric/RCTSurfacePresenter.mm +0 -4
- package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
- package/React/React-RCTFabric.podspec +0 -1
- package/React/Views/RCTFont.mm +54 -38
- package/React/Views/RCTView.m +1 -6
- package/React/Views/RCTViewManager.m +3 -2
- package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
- package/React/Views/ScrollView/RCTScrollView.m +5 -15
- package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
- package/React/Views/UIView+React.m +2 -11
- package/React-Core.podspec +0 -1
- package/ReactAndroid/build.gradle +11 -5
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
- package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +46 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
- package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
- package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
- package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
- package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
- package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
- package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
- package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
- package/ReactCommon/React-Fabric.podspec +9 -1
- package/ReactCommon/better/BUCK +0 -6
- package/ReactCommon/callinvoker/BUCK +2 -8
- package/ReactCommon/cxxreact/BUCK +1 -16
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
- package/ReactCommon/jsi/BUCK +0 -9
- package/ReactCommon/jsinspector/BUCK +0 -5
- package/ReactCommon/logger/BUCK +0 -5
- package/ReactCommon/react/config/BUCK +0 -6
- package/ReactCommon/react/debug/BUCK +0 -6
- package/ReactCommon/react/nativemodule/core/BUCK +0 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
- package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
- package/ReactCommon/react/renderer/animations/BUCK +1 -4
- package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
- package/ReactCommon/react/renderer/animations/conversions.h +212 -0
- package/ReactCommon/react/renderer/animations/primitives.h +104 -0
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
- package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
- package/ReactCommon/react/renderer/animations/utils.h +80 -0
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
- package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
- package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
- package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
- package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
- package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
- package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/root/BUCK +0 -6
- package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/text/BUCK +0 -6
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
- package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
- package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
- package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/view/BUCK +0 -6
- package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
- package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
- package/ReactCommon/react/renderer/core/BUCK +2 -6
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
- package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
- package/ReactCommon/react/renderer/core/Props.h +1 -0
- package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
- package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
- package/ReactCommon/react/renderer/debug/BUCK +0 -6
- package/ReactCommon/react/renderer/element/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
- package/ReactCommon/react/renderer/graphics/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
- package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
- package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
- package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
- package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
- package/ReactCommon/react/renderer/mounting/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
- package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
- package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
- package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
- package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
- package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
- package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
- package/ReactCommon/react/renderer/timeline/BUCK +6 -12
- package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
- package/ReactCommon/react/test_utils/BUCK +3 -6
- package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
- package/ReactCommon/react/utils/BUCK +0 -6
- package/ReactCommon/react/utils/ContextContainer.h +0 -27
- package/ReactCommon/reactperflogger/BUCK +0 -4
- package/ReactCommon/runtimeexecutor/BUCK +0 -6
- package/ReactCommon/yoga/BUCK +1 -5
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.aar → 0.67.0-rc.1/react-native-0.67.0-rc.1.aar} +0 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.module → 0.67.0-rc.1/react-native-0.67.0-rc.1.module} +16 -17
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.pom → 0.67.0-rc.1/react-native-0.67.0-rc.1.pom} +2 -2
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/flow/global.js +45 -0
- package/index.js +15 -10
- package/jest/mockModal.js +31 -0
- package/jest/setup.js +5 -3
- package/package.json +8 -9
- package/react.gradle +53 -18
- package/scripts/find-node.sh +13 -0
- package/scripts/generate-specs-cli.js +18 -0
- package/scripts/ios-configure-glog.sh +4 -0
- package/scripts/react-native-xcode.sh +7 -7
- package/scripts/react_native_pods.rb +202 -70
- package/template/Gemfile +6 -0
- package/template/Gemfile.lock +100 -0
- package/template/_bundle/config +2 -0
- package/template/_flowconfig +1 -1
- package/template/_ruby-version +1 -0
- package/template/android/app/build.gradle +1 -1
- package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
- package/template/android/app/src/main/res/values/styles.xml +1 -0
- package/template/android/build.gradle +7 -3
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradle.properties +1 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
- package/template/ios/Podfile +0 -1
- package/template/package.json +1 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/glog.podspec +0 -1
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -54
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
- package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha512 +0 -1
- package/scripts/generate-specs.sh +0 -99
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -17,7 +17,9 @@ import androidx.annotation.Nullable;
|
|
|
17
17
|
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
|
|
18
18
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
19
19
|
import com.facebook.react.touch.ReactHitSlopView;
|
|
20
|
+
import java.util.ArrayList;
|
|
20
21
|
import java.util.EnumSet;
|
|
22
|
+
import java.util.List;
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
25
|
* Class responsible for identifying which react view should handle a given {@link MotionEvent}. It
|
|
@@ -81,7 +83,7 @@ public class TouchTargetHelper {
|
|
|
81
83
|
// Store eventCoords in array so that they are modified to be relative to the targetView found.
|
|
82
84
|
viewCoords[0] = eventX;
|
|
83
85
|
viewCoords[1] = eventY;
|
|
84
|
-
View nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup);
|
|
86
|
+
View nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup, null);
|
|
85
87
|
if (nativeTargetView != null) {
|
|
86
88
|
View reactTargetView = findClosestReactAncestor(nativeTargetView);
|
|
87
89
|
if (reactTargetView != null) {
|
|
@@ -94,6 +96,39 @@ public class TouchTargetHelper {
|
|
|
94
96
|
return targetTag;
|
|
95
97
|
}
|
|
96
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Find touch event target view within the provided container given the coordinates provided via
|
|
101
|
+
* {@link MotionEvent}.
|
|
102
|
+
*
|
|
103
|
+
* @param eventX the X screen coordinate of the touch location
|
|
104
|
+
* @param eventY the Y screen coordinate of the touch location
|
|
105
|
+
* @param viewGroup the container view to traverse
|
|
106
|
+
* @param viewCoords an out parameter that will return the X,Y value in the target view
|
|
107
|
+
* @return If a target was found, returns a path through the view tree of all react tags that are
|
|
108
|
+
* a container for the touch target, ordered from target to root (last element)
|
|
109
|
+
*/
|
|
110
|
+
public static List<Integer> findTargetPathAndCoordinatesForTouch(
|
|
111
|
+
float eventX, float eventY, ViewGroup viewGroup, float[] viewCoords) {
|
|
112
|
+
UiThreadUtil.assertOnUiThread();
|
|
113
|
+
|
|
114
|
+
// Store eventCoords in array so that they are modified to be relative to the targetView found.
|
|
115
|
+
viewCoords[0] = eventX;
|
|
116
|
+
viewCoords[1] = eventY;
|
|
117
|
+
|
|
118
|
+
List<Integer> pathAccumulator = new ArrayList<>();
|
|
119
|
+
View targetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup, pathAccumulator);
|
|
120
|
+
|
|
121
|
+
if (targetView != null) {
|
|
122
|
+
View reactTargetView = findClosestReactAncestor(targetView);
|
|
123
|
+
int targetTag = getTouchTargetForView(reactTargetView, viewCoords[0], viewCoords[1]);
|
|
124
|
+
if (targetTag != pathAccumulator.get(0)) {
|
|
125
|
+
pathAccumulator.add(0, targetTag);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return pathAccumulator;
|
|
130
|
+
}
|
|
131
|
+
|
|
97
132
|
private static View findClosestReactAncestor(View view) {
|
|
98
133
|
while (view != null && view.getId() <= 0) {
|
|
99
134
|
view = (View) view.getParent();
|
|
@@ -121,7 +156,10 @@ public class TouchTargetHelper {
|
|
|
121
156
|
* relative to the targetView found.
|
|
122
157
|
*/
|
|
123
158
|
private static View findTouchTargetView(
|
|
124
|
-
float[] eventCoords,
|
|
159
|
+
float[] eventCoords,
|
|
160
|
+
View view,
|
|
161
|
+
EnumSet<TouchTargetReturnType> allowReturnTouchTargetTypes,
|
|
162
|
+
List<Integer> pathAccumulator) {
|
|
125
163
|
// We prefer returning a child, so we check for a child that can handle the touch first
|
|
126
164
|
if (allowReturnTouchTargetTypes.contains(TouchTargetReturnType.CHILD)
|
|
127
165
|
&& view instanceof ViewGroup) {
|
|
@@ -143,8 +181,7 @@ public class TouchTargetHelper {
|
|
|
143
181
|
float restoreY = eventCoords[1];
|
|
144
182
|
eventCoords[0] = childPoint.x;
|
|
145
183
|
eventCoords[1] = childPoint.y;
|
|
146
|
-
View targetView = findTouchTargetViewWithPointerEvents(eventCoords, child);
|
|
147
|
-
|
|
184
|
+
View targetView = findTouchTargetViewWithPointerEvents(eventCoords, child, pathAccumulator);
|
|
148
185
|
if (targetView != null) {
|
|
149
186
|
// We don't allow touches on views that are outside the bounds of an `overflow: hidden`
|
|
150
187
|
// View
|
|
@@ -158,6 +195,9 @@ public class TouchTargetHelper {
|
|
|
158
195
|
}
|
|
159
196
|
if (inOverflowBounds) {
|
|
160
197
|
return targetView;
|
|
198
|
+
} else if (pathAccumulator != null) {
|
|
199
|
+
// Not a hit, reset the path found so far
|
|
200
|
+
pathAccumulator.clear();
|
|
161
201
|
}
|
|
162
202
|
}
|
|
163
203
|
eventCoords[0] = restoreX;
|
|
@@ -224,7 +264,7 @@ public class TouchTargetHelper {
|
|
|
224
264
|
* its descendants are the touch target.
|
|
225
265
|
*/
|
|
226
266
|
private static @Nullable View findTouchTargetViewWithPointerEvents(
|
|
227
|
-
float eventCoords[], View view) {
|
|
267
|
+
float eventCoords[], View view, @Nullable List<Integer> pathAccumulator) {
|
|
228
268
|
PointerEvents pointerEvents =
|
|
229
269
|
view instanceof ReactPointerEventsView
|
|
230
270
|
? ((ReactPointerEventsView) view).getPointerEvents()
|
|
@@ -247,13 +287,23 @@ public class TouchTargetHelper {
|
|
|
247
287
|
|
|
248
288
|
} else if (pointerEvents == PointerEvents.BOX_ONLY) {
|
|
249
289
|
// This view may be the target, its children don't matter
|
|
250
|
-
|
|
290
|
+
View targetView =
|
|
291
|
+
findTouchTargetView(
|
|
292
|
+
eventCoords, view, EnumSet.of(TouchTargetReturnType.SELF), pathAccumulator);
|
|
293
|
+
if (targetView != null && pathAccumulator != null) {
|
|
294
|
+
pathAccumulator.add(view.getId());
|
|
295
|
+
}
|
|
296
|
+
return targetView;
|
|
251
297
|
|
|
252
298
|
} else if (pointerEvents == PointerEvents.BOX_NONE) {
|
|
253
299
|
// This view can't be the target, but its children might.
|
|
254
300
|
View targetView =
|
|
255
|
-
findTouchTargetView(
|
|
301
|
+
findTouchTargetView(
|
|
302
|
+
eventCoords, view, EnumSet.of(TouchTargetReturnType.CHILD), pathAccumulator);
|
|
256
303
|
if (targetView != null) {
|
|
304
|
+
if (pathAccumulator != null) {
|
|
305
|
+
pathAccumulator.add(view.getId());
|
|
306
|
+
}
|
|
257
307
|
return targetView;
|
|
258
308
|
}
|
|
259
309
|
|
|
@@ -266,8 +316,11 @@ public class TouchTargetHelper {
|
|
|
266
316
|
if (view instanceof ReactCompoundView
|
|
267
317
|
&& isTouchPointInView(eventCoords[0], eventCoords[1], view)) {
|
|
268
318
|
int reactTag = ((ReactCompoundView) view).reactTagForTouch(eventCoords[0], eventCoords[1]);
|
|
319
|
+
// make sure we exclude the View itself because of the PointerEvents.BOX_NONE
|
|
269
320
|
if (reactTag != view.getId()) {
|
|
270
|
-
|
|
321
|
+
if (pathAccumulator != null) {
|
|
322
|
+
pathAccumulator.add(view.getId());
|
|
323
|
+
}
|
|
271
324
|
return view;
|
|
272
325
|
}
|
|
273
326
|
}
|
|
@@ -279,10 +332,22 @@ public class TouchTargetHelper {
|
|
|
279
332
|
if (view instanceof ReactCompoundViewGroup
|
|
280
333
|
&& isTouchPointInView(eventCoords[0], eventCoords[1], view)
|
|
281
334
|
&& ((ReactCompoundViewGroup) view).interceptsTouchEvent(eventCoords[0], eventCoords[1])) {
|
|
335
|
+
if (pathAccumulator != null) {
|
|
336
|
+
pathAccumulator.add(view.getId());
|
|
337
|
+
}
|
|
282
338
|
return view;
|
|
283
339
|
}
|
|
284
|
-
|
|
285
|
-
|
|
340
|
+
|
|
341
|
+
View result =
|
|
342
|
+
findTouchTargetView(
|
|
343
|
+
eventCoords,
|
|
344
|
+
view,
|
|
345
|
+
EnumSet.of(TouchTargetReturnType.SELF, TouchTargetReturnType.CHILD),
|
|
346
|
+
pathAccumulator);
|
|
347
|
+
if (result != null && pathAccumulator != null) {
|
|
348
|
+
pathAccumulator.add(view.getId());
|
|
349
|
+
}
|
|
350
|
+
return result;
|
|
286
351
|
|
|
287
352
|
} else {
|
|
288
353
|
throw new JSApplicationIllegalArgumentException(
|
|
@@ -40,15 +40,6 @@ public abstract class Event<T extends Event> {
|
|
|
40
40
|
private long mTimestampMs;
|
|
41
41
|
private int mUniqueID = sUniqueID++;
|
|
42
42
|
|
|
43
|
-
// Android native Event times use 'uptimeMillis', and historically we've used `uptimeMillis`
|
|
44
|
-
// throughout this Event class as the coalescing key for events, and for other purposes.
|
|
45
|
-
// To get an accurate(ish) absolute UNIX time for the event, we store the initial clock time here.
|
|
46
|
-
// uptimeMillis can then be added to this to get an accurate UNIX time.
|
|
47
|
-
// However, we still default to uptimeMillis: you must explicitly request UNIX time if you want
|
|
48
|
-
// that; see `getUnixTimestampMs`.
|
|
49
|
-
public static final long sInitialClockTimeUnixOffset =
|
|
50
|
-
SystemClock.currentTimeMillis() - SystemClock.uptimeMillis();
|
|
51
|
-
|
|
52
43
|
protected Event() {}
|
|
53
44
|
|
|
54
45
|
@Deprecated
|
|
@@ -65,8 +56,16 @@ public abstract class Event<T extends Event> {
|
|
|
65
56
|
init(-1, viewTag);
|
|
66
57
|
}
|
|
67
58
|
|
|
68
|
-
/** This method needs to be called before event is sent to event dispatcher. */
|
|
69
59
|
protected void init(int surfaceId, int viewTag) {
|
|
60
|
+
init(surfaceId, viewTag, SystemClock.uptimeMillis());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This method needs to be called before event is sent to event dispatcher. Event timestamps can
|
|
65
|
+
* optionally be dated/backdated to a custom time: for example, touch events should be dated with
|
|
66
|
+
* the system event time.
|
|
67
|
+
*/
|
|
68
|
+
protected void init(int surfaceId, int viewTag, long timestampMs) {
|
|
70
69
|
mSurfaceId = surfaceId;
|
|
71
70
|
mViewTag = viewTag;
|
|
72
71
|
|
|
@@ -82,9 +81,7 @@ public abstract class Event<T extends Event> {
|
|
|
82
81
|
// At some point it would be great to pass the SurfaceContext here instead.
|
|
83
82
|
mUIManagerType = (surfaceId == -1 ? UIManagerType.DEFAULT : UIManagerType.FABRIC);
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
mTimestampMs = SystemClock.uptimeMillis();
|
|
87
|
-
|
|
84
|
+
mTimestampMs = timestampMs;
|
|
88
85
|
mInitialized = true;
|
|
89
86
|
}
|
|
90
87
|
|
|
@@ -106,11 +103,6 @@ public abstract class Event<T extends Event> {
|
|
|
106
103
|
return mTimestampMs;
|
|
107
104
|
}
|
|
108
105
|
|
|
109
|
-
/** @return the time at which the event happened as a UNIX timestamp, in milliseconds. */
|
|
110
|
-
public final long getUnixTimestampMs() {
|
|
111
|
-
return sInitialClockTimeUnixOffset + mTimestampMs;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
106
|
/** @return false if this Event can *never* be coalesced */
|
|
115
107
|
public boolean canCoalesce() {
|
|
116
108
|
return true;
|
|
@@ -174,7 +166,7 @@ public abstract class Event<T extends Event> {
|
|
|
174
166
|
WritableMap eventData = getEventData();
|
|
175
167
|
if (eventData == null) {
|
|
176
168
|
throw new IllegalViewOperationException(
|
|
177
|
-
"Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `
|
|
169
|
+
"Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `dispatchModern`. Event: "
|
|
178
170
|
+ getEventName());
|
|
179
171
|
}
|
|
180
172
|
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), eventData);
|
|
@@ -190,18 +182,22 @@ public abstract class Event<T extends Event> {
|
|
|
190
182
|
return null;
|
|
191
183
|
}
|
|
192
184
|
|
|
185
|
+
@EventCategoryDef
|
|
186
|
+
protected int getEventCategory() {
|
|
187
|
+
return EventCategoryDef.UNSPECIFIED;
|
|
188
|
+
}
|
|
189
|
+
|
|
193
190
|
/**
|
|
194
191
|
* Dispatch this event to JS using a V2 EventEmitter. If surfaceId is not -1 and `getEventData` is
|
|
195
192
|
* non-null, this will use the RCTModernEventEmitter API. Otherwise, it falls back to the
|
|
196
193
|
* old-style dispatch function. For Event classes that need to do something different, this method
|
|
197
194
|
* can always be overridden entirely, but it is not recommended.
|
|
198
195
|
*/
|
|
199
|
-
@Deprecated
|
|
200
196
|
public void dispatchModern(RCTModernEventEmitter rctEventEmitter) {
|
|
201
197
|
if (getSurfaceId() != -1) {
|
|
202
198
|
WritableMap eventData = getEventData();
|
|
203
199
|
if (eventData != null) {
|
|
204
|
-
rctEventEmitter.receiveEvent(getSurfaceId(), getViewTag(), getEventName(),
|
|
200
|
+
rctEventEmitter.receiveEvent(getSurfaceId(), getViewTag(), getEventName(), eventData);
|
|
205
201
|
return;
|
|
206
202
|
}
|
|
207
203
|
}
|
|
@@ -224,7 +220,8 @@ public abstract class Event<T extends Event> {
|
|
|
224
220
|
getEventName(),
|
|
225
221
|
canCoalesce(),
|
|
226
222
|
getCoalescingKey(),
|
|
227
|
-
|
|
223
|
+
eventData,
|
|
224
|
+
getEventCategory());
|
|
228
225
|
return;
|
|
229
226
|
}
|
|
230
227
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.uimanager.events;
|
|
9
|
+
|
|
10
|
+
import static com.facebook.react.uimanager.events.EventCategoryDef.CONTINUOUS;
|
|
11
|
+
import static com.facebook.react.uimanager.events.EventCategoryDef.CONTINUOUS_END;
|
|
12
|
+
import static com.facebook.react.uimanager.events.EventCategoryDef.CONTINUOUS_START;
|
|
13
|
+
import static com.facebook.react.uimanager.events.EventCategoryDef.DISCRETE;
|
|
14
|
+
import static com.facebook.react.uimanager.events.EventCategoryDef.UNSPECIFIED;
|
|
15
|
+
|
|
16
|
+
import androidx.annotation.IntDef;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Java specific declaration of the `RawEvent::Category` enum. Keep in sync with
|
|
20
|
+
* `renderer/core/RawEvent.h`.
|
|
21
|
+
*/
|
|
22
|
+
@IntDef(value = {CONTINUOUS_START, CONTINUOUS_END, UNSPECIFIED, DISCRETE, CONTINUOUS})
|
|
23
|
+
public @interface EventCategoryDef {
|
|
24
|
+
/** Start of a continuous event. To be used with touchStart. */
|
|
25
|
+
int CONTINUOUS_START = 0;
|
|
26
|
+
|
|
27
|
+
/** End of a continuous event. To be used with touchEnd. */
|
|
28
|
+
int CONTINUOUS_END = 1;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Priority for this event will be determined from other events in the queue. If it is triggered
|
|
32
|
+
* by continuous event, its priority will be default. If it is not triggered by continuous event,
|
|
33
|
+
* its priority will be discrete.
|
|
34
|
+
*/
|
|
35
|
+
int UNSPECIFIED = 2;
|
|
36
|
+
|
|
37
|
+
/** Forces discrete type for the event. Regardless if continuous event is ongoing. */
|
|
38
|
+
int DISCRETE = 3;
|
|
39
|
+
|
|
40
|
+
/** Forces continuous type for the event. Regardless if continuous event isn't ongoing. */
|
|
41
|
+
int CONTINUOUS = 4;
|
|
42
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java
CHANGED
|
@@ -13,6 +13,7 @@ import com.facebook.react.bridge.LifecycleEventListener;
|
|
|
13
13
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
14
14
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
15
15
|
import com.facebook.react.common.MapBuilder;
|
|
16
|
+
import com.facebook.react.config.ReactFeatureFlags;
|
|
16
17
|
import com.facebook.react.modules.core.ChoreographerCompat;
|
|
17
18
|
import com.facebook.react.modules.core.ReactChoreographer;
|
|
18
19
|
import com.facebook.react.uimanager.common.UIManagerType;
|
|
@@ -366,7 +367,12 @@ public class EventDispatcherImpl implements EventDispatcher, LifecycleEventListe
|
|
|
366
367
|
}
|
|
367
368
|
Systrace.endAsyncFlow(
|
|
368
369
|
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, event.getEventName(), event.getUniqueID());
|
|
369
|
-
|
|
370
|
+
|
|
371
|
+
if (ReactFeatureFlags.useDispatchUniqueForCoalescableEvents) {
|
|
372
|
+
event.dispatchModernV2(mReactEventEmitter);
|
|
373
|
+
} else {
|
|
374
|
+
event.dispatchModern(mReactEventEmitter);
|
|
375
|
+
}
|
|
370
376
|
event.dispose();
|
|
371
377
|
}
|
|
372
378
|
clearEventsToDispatch();
|
|
@@ -52,7 +52,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
52
52
|
*/
|
|
53
53
|
public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEventListener {
|
|
54
54
|
|
|
55
|
-
private final boolean DEBUG_MODE =
|
|
55
|
+
private final boolean DEBUG_MODE = ReactBuildConfig.DEBUG;
|
|
56
56
|
private final String TAG = LockFreeEventDispatcherImpl.class.getSimpleName();
|
|
57
57
|
|
|
58
58
|
private final ReactApplicationContext mReactContext;
|
|
@@ -77,7 +77,7 @@ public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEv
|
|
|
77
77
|
Assertions.assertNotNull(mReactEventEmitter);
|
|
78
78
|
|
|
79
79
|
if (DEBUG_MODE) {
|
|
80
|
-
FLog.
|
|
80
|
+
FLog.v(TAG, "dispatchEvent: " + event.toString());
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
for (EventDispatcherListener listener : mListeners) {
|
|
@@ -27,5 +27,12 @@ public interface RCTEventEmitter extends JavaScriptModule {
|
|
|
27
27
|
@Deprecated
|
|
28
28
|
void receiveEvent(int targetTag, String eventName, @Nullable WritableMap event);
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Receive and process touches
|
|
32
|
+
*
|
|
33
|
+
* @param eventName JS event name
|
|
34
|
+
* @param touches active pointers data
|
|
35
|
+
* @param changedIndices indices of changed pointers
|
|
36
|
+
*/
|
|
30
37
|
void receiveTouches(String eventName, WritableArray touches, WritableArray changedIndices);
|
|
31
38
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java
CHANGED
|
@@ -61,15 +61,10 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
61
61
|
|
|
62
62
|
@Override
|
|
63
63
|
public void receiveEvent(
|
|
64
|
-
int surfaceId,
|
|
65
|
-
int targetTag,
|
|
66
|
-
String eventName,
|
|
67
|
-
boolean canCoalesceEvent,
|
|
68
|
-
int customCoalesceKey,
|
|
69
|
-
@Nullable WritableMap event) {
|
|
64
|
+
int surfaceId, int targetTag, String eventName, @Nullable WritableMap event) {
|
|
70
65
|
// The two additional params here, `canCoalesceEvent` and `customCoalesceKey`, have no
|
|
71
66
|
// meaning outside of Fabric.
|
|
72
|
-
receiveEvent(surfaceId, targetTag, eventName, event);
|
|
67
|
+
receiveEvent(surfaceId, targetTag, eventName, false, 0, event, EventCategoryDef.UNSPECIFIED);
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
@Override
|
|
@@ -120,10 +115,23 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
|
|
|
120
115
|
|
|
121
116
|
@Override
|
|
122
117
|
public void receiveEvent(
|
|
123
|
-
int surfaceId,
|
|
118
|
+
int surfaceId,
|
|
119
|
+
int targetReactTag,
|
|
120
|
+
String eventName,
|
|
121
|
+
boolean canCoalesceEvent,
|
|
122
|
+
int customCoalesceKey,
|
|
123
|
+
@Nullable WritableMap event,
|
|
124
|
+
@EventCategoryDef int category) {
|
|
124
125
|
@UIManagerType int uiManagerType = ViewUtil.getUIManagerType(targetReactTag);
|
|
125
126
|
if (uiManagerType == UIManagerType.FABRIC && mFabricEventEmitter != null) {
|
|
126
|
-
mFabricEventEmitter.receiveEvent(
|
|
127
|
+
mFabricEventEmitter.receiveEvent(
|
|
128
|
+
surfaceId,
|
|
129
|
+
targetReactTag,
|
|
130
|
+
eventName,
|
|
131
|
+
canCoalesceEvent,
|
|
132
|
+
customCoalesceKey,
|
|
133
|
+
event,
|
|
134
|
+
category);
|
|
127
135
|
} else if (uiManagerType == UIManagerType.DEFAULT && getEventEmitter(targetReactTag) != null) {
|
|
128
136
|
mRCTEventEmitter.receiveEvent(targetReactTag, eventName, event);
|
|
129
137
|
} else {
|
|
@@ -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
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|