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
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
#include <ReactCommon/RuntimeExecutor.h>
|
|
11
11
|
#include <better/optional.h>
|
|
12
|
-
#include <
|
|
12
|
+
#include <better/set.h>
|
|
13
|
+
#include <react/renderer/animations/LayoutAnimationCallbackWrapper.h>
|
|
14
|
+
#include <react/renderer/animations/primitives.h>
|
|
13
15
|
#include <react/renderer/core/RawValue.h>
|
|
14
16
|
#include <react/renderer/debug/flags.h>
|
|
15
|
-
#include <react/renderer/mounting/Differentiator.h>
|
|
16
|
-
#include <react/renderer/mounting/MountingCoordinator.h>
|
|
17
17
|
#include <react/renderer/mounting/MountingOverrideDelegate.h>
|
|
18
18
|
#include <react/renderer/mounting/MountingTransaction.h>
|
|
19
19
|
#include <react/renderer/mounting/ShadowViewMutation.h>
|
|
@@ -36,146 +36,15 @@ void PrintMutationInstructionRelative(
|
|
|
36
36
|
#define PrintMutationInstructionRelative(a, b, c)
|
|
37
37
|
#endif
|
|
38
38
|
|
|
39
|
-
// This corresponds exactly with JS.
|
|
40
|
-
enum class AnimationType {
|
|
41
|
-
None = 0,
|
|
42
|
-
Spring = 1,
|
|
43
|
-
Linear = 2,
|
|
44
|
-
EaseInEaseOut = 4,
|
|
45
|
-
EaseIn = 8,
|
|
46
|
-
EaseOut = 16,
|
|
47
|
-
Keyboard = 32
|
|
48
|
-
};
|
|
49
|
-
enum class AnimationProperty {
|
|
50
|
-
NotApplicable = 0,
|
|
51
|
-
Opacity = 1,
|
|
52
|
-
ScaleX = 2,
|
|
53
|
-
ScaleY = 4,
|
|
54
|
-
ScaleXY = 8
|
|
55
|
-
};
|
|
56
|
-
enum class AnimationConfigurationType { Create = 1, Update = 2, Delete = 4 };
|
|
57
|
-
|
|
58
|
-
// This corresponds exactly with JS.
|
|
59
|
-
struct AnimationConfig {
|
|
60
|
-
AnimationType animationType = AnimationType::None;
|
|
61
|
-
AnimationProperty animationProperty = AnimationProperty::NotApplicable;
|
|
62
|
-
double duration =
|
|
63
|
-
0; // these are perhaps better represented as uint64_t, but they
|
|
64
|
-
// come from JS as doubles
|
|
65
|
-
double delay = 0;
|
|
66
|
-
double springDamping = 0;
|
|
67
|
-
double initialVelocity = 0;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
// This corresponds exactly with JS.
|
|
71
|
-
struct LayoutAnimationConfig {
|
|
72
|
-
double duration; // ms
|
|
73
|
-
AnimationConfig createConfig;
|
|
74
|
-
AnimationConfig updateConfig;
|
|
75
|
-
AnimationConfig deleteConfig;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
struct AnimationKeyFrame {
|
|
79
|
-
// The mutation(s) that should be executed once the animation completes.
|
|
80
|
-
// This maybe empty.
|
|
81
|
-
// For CREATE/INSERT this will contain CREATE, INSERT in that order.
|
|
82
|
-
// For REMOVE/DELETE, same.
|
|
83
|
-
std::vector<ShadowViewMutation> finalMutationsForKeyFrame;
|
|
84
|
-
|
|
85
|
-
// The type of animation this is (for configuration purposes)
|
|
86
|
-
AnimationConfigurationType type;
|
|
87
|
-
|
|
88
|
-
// Tag representing the node being animated.
|
|
89
|
-
Tag tag;
|
|
90
|
-
|
|
91
|
-
ShadowView parentView;
|
|
92
|
-
|
|
93
|
-
// ShadowView representing the start and end points of this animation.
|
|
94
|
-
ShadowView viewStart;
|
|
95
|
-
ShadowView viewEnd;
|
|
96
|
-
|
|
97
|
-
// ShadowView representing the previous frame of the animation.
|
|
98
|
-
ShadowView viewPrev;
|
|
99
|
-
|
|
100
|
-
// If an animation interrupts an existing one, the starting state may actually
|
|
101
|
-
// be halfway through the intended transition.
|
|
102
|
-
double initialProgress;
|
|
103
|
-
|
|
104
|
-
bool invalidated{false};
|
|
105
|
-
|
|
106
|
-
// In the case where some mutation conflicts with this keyframe,
|
|
107
|
-
// should we generate final synthetic UPDATE mutations for this keyframe?
|
|
108
|
-
bool generateFinalSyntheticMutations{true};
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
class LayoutAnimationCallbackWrapper {
|
|
112
|
-
public:
|
|
113
|
-
LayoutAnimationCallbackWrapper(jsi::Function &&callback)
|
|
114
|
-
: callback_(std::make_shared<jsi::Function>(std::move(callback))) {}
|
|
115
|
-
LayoutAnimationCallbackWrapper() : callback_(nullptr) {}
|
|
116
|
-
|
|
117
|
-
// Copy and assignment-copy constructors should copy callback_, and not
|
|
118
|
-
// std::move it. Copying is desirable, otherwise the shared_ptr and
|
|
119
|
-
// jsi::Function will be deallocated too early.
|
|
120
|
-
|
|
121
|
-
bool readyForCleanup() const {
|
|
122
|
-
return callback_ == nullptr || *callComplete_;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
void call(const RuntimeExecutor &runtimeExecutor) const {
|
|
126
|
-
if (readyForCleanup()) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
std::weak_ptr<jsi::Function> callable = callback_;
|
|
131
|
-
std::shared_ptr<std::atomic_bool> callComplete = callComplete_;
|
|
132
|
-
|
|
133
|
-
runtimeExecutor(
|
|
134
|
-
[=, callComplete = std::move(callComplete)](jsi::Runtime &runtime) {
|
|
135
|
-
auto fn = callable.lock();
|
|
136
|
-
|
|
137
|
-
if (!fn || *callComplete) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
fn->call(runtime);
|
|
142
|
-
*callComplete = true;
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
private:
|
|
147
|
-
std::shared_ptr<std::atomic_bool> callComplete_ =
|
|
148
|
-
std::make_shared<std::atomic_bool>(false);
|
|
149
|
-
std::shared_ptr<jsi::Function> callback_;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
struct LayoutAnimation {
|
|
153
|
-
SurfaceId surfaceId;
|
|
154
|
-
uint64_t startTime;
|
|
155
|
-
bool completed = false;
|
|
156
|
-
LayoutAnimationConfig layoutAnimationConfig;
|
|
157
|
-
LayoutAnimationCallbackWrapper successCallback;
|
|
158
|
-
LayoutAnimationCallbackWrapper failureCallback;
|
|
159
|
-
std::vector<AnimationKeyFrame> keyFrames;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
39
|
class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate,
|
|
163
40
|
public MountingOverrideDelegate {
|
|
164
41
|
public:
|
|
165
42
|
LayoutAnimationKeyFrameManager(
|
|
166
43
|
RuntimeExecutor runtimeExecutor,
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return std::chrono::duration_cast<std::chrono::milliseconds>(
|
|
172
|
-
std::chrono::high_resolution_clock::now()
|
|
173
|
-
.time_since_epoch())
|
|
174
|
-
.count();
|
|
175
|
-
}) {}
|
|
176
|
-
~LayoutAnimationKeyFrameManager() {}
|
|
177
|
-
|
|
178
|
-
#pragma mark UIManagerAnimationDelegate methods
|
|
44
|
+
ContextContainer::Shared &contextContainer,
|
|
45
|
+
LayoutAnimationStatusDelegate *delegate);
|
|
46
|
+
|
|
47
|
+
#pragma mark - UIManagerAnimationDelegate methods
|
|
179
48
|
|
|
180
49
|
void uiManagerDidConfigureNextLayoutAnimation(
|
|
181
50
|
jsi::Runtime &runtime,
|
|
@@ -191,7 +60,7 @@ class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate,
|
|
|
191
60
|
|
|
192
61
|
void stopSurface(SurfaceId surfaceId) override;
|
|
193
62
|
|
|
194
|
-
#pragma mark MountingOverrideDelegate methods
|
|
63
|
+
#pragma mark - MountingOverrideDelegate methods
|
|
195
64
|
|
|
196
65
|
bool shouldOverridePullTransaction() const override;
|
|
197
66
|
|
|
@@ -205,7 +74,6 @@ class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate,
|
|
|
205
74
|
ShadowViewMutationList mutations) const override;
|
|
206
75
|
|
|
207
76
|
// Exposed for testing.
|
|
208
|
-
public:
|
|
209
77
|
void uiManagerDidConfigureNextLayoutAnimation(
|
|
210
78
|
LayoutAnimation layoutAnimation) const;
|
|
211
79
|
|
|
@@ -214,50 +82,47 @@ class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate,
|
|
|
214
82
|
// delegate is protected by a mutex; ALL method calls into this delegate are
|
|
215
83
|
// also protected by the mutex! The only way to set this without a mutex is
|
|
216
84
|
// via a constructor.
|
|
217
|
-
public:
|
|
218
85
|
void setLayoutAnimationStatusDelegate(
|
|
219
86
|
LayoutAnimationStatusDelegate *delegate) const;
|
|
220
87
|
|
|
221
|
-
|
|
222
|
-
RuntimeExecutor runtimeExecutor_;
|
|
223
|
-
mutable std::mutex layoutAnimationStatusDelegateMutex_;
|
|
224
|
-
mutable LayoutAnimationStatusDelegate *layoutAnimationStatusDelegate_{};
|
|
88
|
+
void setClockNow(std::function<uint64_t()> now);
|
|
225
89
|
|
|
226
|
-
|
|
227
|
-
std::function<uint64_t()> now_;
|
|
90
|
+
void enableSkipInvalidatedKeyFrames();
|
|
228
91
|
|
|
229
|
-
void
|
|
230
|
-
SurfaceId surfaceId,
|
|
231
|
-
ShadowViewMutation &mutation,
|
|
232
|
-
bool skipLastAnimation = false,
|
|
233
|
-
bool lastAnimationOnly = false) const;
|
|
92
|
+
void enableCrashOnMissingComponentDescriptor();
|
|
234
93
|
|
|
235
|
-
void
|
|
236
|
-
SurfaceId surfaceId,
|
|
237
|
-
ShadowViewMutation const &mutation,
|
|
238
|
-
bool skipLastAnimation = false) const;
|
|
94
|
+
void enableSimulateImagePropsMemoryAccess();
|
|
239
95
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
96
|
+
protected:
|
|
97
|
+
SharedComponentDescriptorRegistry componentDescriptorRegistry_;
|
|
98
|
+
mutable better::optional<LayoutAnimation> currentAnimation_{};
|
|
99
|
+
mutable std::mutex currentAnimationMutex_;
|
|
244
100
|
|
|
245
|
-
|
|
246
|
-
|
|
101
|
+
/**
|
|
102
|
+
* All mutations of inflightAnimations_ are thread-safe as long as
|
|
103
|
+
* we keep the contract of: only mutate it within the context of
|
|
104
|
+
* `pullTransaction`. If that contract is held, this is implicitly protected
|
|
105
|
+
* by the MountingCoordinator's mutex.
|
|
106
|
+
*/
|
|
107
|
+
mutable std::vector<LayoutAnimation> inflightAnimations_{};
|
|
247
108
|
|
|
248
|
-
protected:
|
|
249
109
|
bool hasComponentDescriptorForShadowView(ShadowView const &shadowView) const;
|
|
250
110
|
ComponentDescriptor const &getComponentDescriptorForShadowView(
|
|
251
111
|
ShadowView const &shadowView) const;
|
|
252
|
-
std::pair<double, double> calculateAnimationProgress(
|
|
253
|
-
uint64_t now,
|
|
254
|
-
LayoutAnimation const &animation,
|
|
255
|
-
AnimationConfig const &mutationConfig) const;
|
|
256
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Given a `progress` between 0 and 1, a mutation and LayoutAnimation config,
|
|
115
|
+
* return a ShadowView with mutated props and/or LayoutMetrics.
|
|
116
|
+
*
|
|
117
|
+
* @param progress
|
|
118
|
+
* @param layoutAnimation
|
|
119
|
+
* @param animatedMutation
|
|
120
|
+
* @return
|
|
121
|
+
*/
|
|
257
122
|
ShadowView createInterpolatedShadowView(
|
|
258
123
|
double progress,
|
|
259
|
-
ShadowView startingView,
|
|
260
|
-
ShadowView finalView) const;
|
|
124
|
+
ShadowView const &startingView,
|
|
125
|
+
ShadowView const &finalView) const;
|
|
261
126
|
|
|
262
127
|
void callCallback(const LayoutAnimationCallbackWrapper &callback) const;
|
|
263
128
|
|
|
@@ -274,88 +139,58 @@ class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate,
|
|
|
274
139
|
AnimationKeyFrame const &keyframe,
|
|
275
140
|
ShadowViewMutation::List &mutationsList,
|
|
276
141
|
bool interrupted,
|
|
277
|
-
std::string logPrefix) const;
|
|
142
|
+
const std::string &logPrefix) const;
|
|
278
143
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
144
|
+
private:
|
|
145
|
+
RuntimeExecutor runtimeExecutor_;
|
|
146
|
+
ContextContainer::Shared contextContainer_;
|
|
282
147
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
148
|
+
mutable std::mutex layoutAnimationStatusDelegateMutex_;
|
|
149
|
+
mutable LayoutAnimationStatusDelegate *layoutAnimationStatusDelegate_{};
|
|
150
|
+
mutable std::mutex surfaceIdsToStopMutex_;
|
|
151
|
+
mutable better::set<SurfaceId> surfaceIdsToStop_{};
|
|
152
|
+
bool skipInvalidatedKeyFrames_{false};
|
|
153
|
+
|
|
154
|
+
/*
|
|
155
|
+
* Feature flag that forces a crash if component descriptor for shadow view
|
|
156
|
+
* doesn't exist. This is an unexpected state and we crash to collect extra
|
|
157
|
+
* logs.
|
|
288
158
|
*/
|
|
289
|
-
|
|
159
|
+
bool crashOnMissingComponentDescriptor_{false};
|
|
290
160
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
callbackWrappersPending_{};
|
|
161
|
+
/*
|
|
162
|
+
* Feature flag that enables simulation of memory access. This is a temporary
|
|
163
|
+
* flag to diagnose where crashes are coming from in LayoutAnimations on iOS.
|
|
164
|
+
*/
|
|
165
|
+
bool simulateImagePropsMemoryAccess_{false};
|
|
297
166
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
167
|
+
// Function that returns current time in milliseconds
|
|
168
|
+
std::function<uint64_t()> now_;
|
|
169
|
+
|
|
170
|
+
void adjustImmediateMutationIndicesForDelayedMutations(
|
|
171
|
+
SurfaceId surfaceId,
|
|
172
|
+
ShadowViewMutation &mutation,
|
|
173
|
+
bool skipLastAnimation = false,
|
|
174
|
+
bool lastAnimationOnly = false) const;
|
|
301
175
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
}
|
|
321
|
-
if (rhs.type == ShadowViewMutation::Type::Delete) {
|
|
322
|
-
return true;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// Remove comes before insert
|
|
326
|
-
if (lhs.type == ShadowViewMutation::Type::Remove &&
|
|
327
|
-
rhs.type == ShadowViewMutation::Type::Insert) {
|
|
328
|
-
return true;
|
|
329
|
-
}
|
|
330
|
-
if (rhs.type == ShadowViewMutation::Type::Remove &&
|
|
331
|
-
lhs.type == ShadowViewMutation::Type::Insert) {
|
|
332
|
-
return false;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// Create comes before insert
|
|
336
|
-
if (lhs.type == ShadowViewMutation::Type::Create &&
|
|
337
|
-
rhs.type == ShadowViewMutation::Type::Insert) {
|
|
338
|
-
return true;
|
|
339
|
-
}
|
|
340
|
-
if (rhs.type == ShadowViewMutation::Type::Create &&
|
|
341
|
-
lhs.type == ShadowViewMutation::Type::Insert) {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
} else {
|
|
345
|
-
// Make sure that removes on the same level are sorted - highest indices
|
|
346
|
-
// must come first.
|
|
347
|
-
if (lhs.type == ShadowViewMutation::Type::Remove &&
|
|
348
|
-
lhs.parentShadowView.tag == rhs.parentShadowView.tag) {
|
|
349
|
-
if (lhs.index > rhs.index) {
|
|
350
|
-
return true;
|
|
351
|
-
} else {
|
|
352
|
-
return false;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
return false;
|
|
358
|
-
}
|
|
176
|
+
void adjustDelayedMutationIndicesForMutation(
|
|
177
|
+
SurfaceId surfaceId,
|
|
178
|
+
ShadowViewMutation const &mutation,
|
|
179
|
+
bool skipLastAnimation = false) const;
|
|
180
|
+
|
|
181
|
+
void getAndEraseConflictingAnimations(
|
|
182
|
+
SurfaceId surfaceId,
|
|
183
|
+
ShadowViewMutationList const &mutations,
|
|
184
|
+
std::vector<AnimationKeyFrame> &conflictingAnimations) const;
|
|
185
|
+
|
|
186
|
+
/*
|
|
187
|
+
* Removes animations from `inflightAnimations_` for stopped surfaces.
|
|
188
|
+
*/
|
|
189
|
+
void deleteAnimationsForStoppedSurfaces() const;
|
|
190
|
+
|
|
191
|
+
void simulateImagePropsMemoryAccess(
|
|
192
|
+
ShadowViewMutationList const &mutations) const;
|
|
193
|
+
};
|
|
359
194
|
|
|
360
195
|
} // namespace react
|
|
361
196
|
} // namespace facebook
|
|
@@ -0,0 +1,212 @@
|
|
|
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
|
+
#include <better/optional.h>
|
|
9
|
+
#include <react/renderer/animations/primitives.h>
|
|
10
|
+
|
|
11
|
+
#include <glog/logging.h>
|
|
12
|
+
|
|
13
|
+
namespace facebook {
|
|
14
|
+
namespace react {
|
|
15
|
+
|
|
16
|
+
static inline better::optional<AnimationType> parseAnimationType(
|
|
17
|
+
std::string param) {
|
|
18
|
+
if (param == "spring") {
|
|
19
|
+
return AnimationType::Spring;
|
|
20
|
+
}
|
|
21
|
+
if (param == "linear") {
|
|
22
|
+
return AnimationType::Linear;
|
|
23
|
+
}
|
|
24
|
+
if (param == "easeInEaseOut") {
|
|
25
|
+
return AnimationType::EaseInEaseOut;
|
|
26
|
+
}
|
|
27
|
+
if (param == "easeIn") {
|
|
28
|
+
return AnimationType::EaseIn;
|
|
29
|
+
}
|
|
30
|
+
if (param == "easeOut") {
|
|
31
|
+
return AnimationType::EaseOut;
|
|
32
|
+
}
|
|
33
|
+
if (param == "keyboard") {
|
|
34
|
+
return AnimationType::Keyboard;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
LOG(ERROR) << "Error parsing animation type: " << param;
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static inline better::optional<AnimationProperty> parseAnimationProperty(
|
|
42
|
+
std::string param) {
|
|
43
|
+
if (param == "opacity") {
|
|
44
|
+
return AnimationProperty::Opacity;
|
|
45
|
+
}
|
|
46
|
+
if (param == "scaleX") {
|
|
47
|
+
return AnimationProperty::ScaleX;
|
|
48
|
+
}
|
|
49
|
+
if (param == "scaleY") {
|
|
50
|
+
return AnimationProperty::ScaleY;
|
|
51
|
+
}
|
|
52
|
+
if (param == "scaleXY") {
|
|
53
|
+
return AnimationProperty::ScaleXY;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
LOG(ERROR) << "Error parsing animation property: " << param;
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static inline better::optional<AnimationConfig> parseAnimationConfig(
|
|
61
|
+
folly::dynamic const &config,
|
|
62
|
+
double defaultDuration,
|
|
63
|
+
bool parsePropertyType) {
|
|
64
|
+
if (config.empty() || !config.isObject()) {
|
|
65
|
+
return AnimationConfig{
|
|
66
|
+
AnimationType::Linear,
|
|
67
|
+
AnimationProperty::NotApplicable,
|
|
68
|
+
defaultDuration,
|
|
69
|
+
0,
|
|
70
|
+
0,
|
|
71
|
+
0};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
auto const typeIt = config.find("type");
|
|
75
|
+
if (typeIt == config.items().end()) {
|
|
76
|
+
LOG(ERROR) << "Error parsing animation config: could not find field `type`";
|
|
77
|
+
return {};
|
|
78
|
+
}
|
|
79
|
+
auto const animationTypeParam = typeIt->second;
|
|
80
|
+
if (animationTypeParam.empty() || !animationTypeParam.isString()) {
|
|
81
|
+
LOG(ERROR)
|
|
82
|
+
<< "Error parsing animation config: could not unwrap field `type`";
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
const auto animationType = parseAnimationType(animationTypeParam.asString());
|
|
86
|
+
if (!animationType) {
|
|
87
|
+
LOG(ERROR)
|
|
88
|
+
<< "Error parsing animation config: could not parse field `type`";
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
AnimationProperty animationProperty = AnimationProperty::NotApplicable;
|
|
93
|
+
if (parsePropertyType) {
|
|
94
|
+
auto const propertyIt = config.find("property");
|
|
95
|
+
if (propertyIt == config.items().end()) {
|
|
96
|
+
LOG(ERROR)
|
|
97
|
+
<< "Error parsing animation config: could not find field `property`";
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
auto const animationPropertyParam = propertyIt->second;
|
|
101
|
+
if (animationPropertyParam.empty() || !animationPropertyParam.isString()) {
|
|
102
|
+
LOG(ERROR)
|
|
103
|
+
<< "Error parsing animation config: could not unwrap field `property`";
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
const auto animationPropertyParsed =
|
|
107
|
+
parseAnimationProperty(animationPropertyParam.asString());
|
|
108
|
+
if (!animationPropertyParsed) {
|
|
109
|
+
LOG(ERROR)
|
|
110
|
+
<< "Error parsing animation config: could not parse field `property`";
|
|
111
|
+
return {};
|
|
112
|
+
}
|
|
113
|
+
animationProperty = *animationPropertyParsed;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
double duration = defaultDuration;
|
|
117
|
+
double delay = 0;
|
|
118
|
+
double springDamping = 0.5;
|
|
119
|
+
double initialVelocity = 0;
|
|
120
|
+
|
|
121
|
+
auto const durationIt = config.find("duration");
|
|
122
|
+
if (durationIt != config.items().end()) {
|
|
123
|
+
if (durationIt->second.isDouble()) {
|
|
124
|
+
duration = durationIt->second.asDouble();
|
|
125
|
+
} else {
|
|
126
|
+
LOG(ERROR)
|
|
127
|
+
<< "Error parsing animation config: field `duration` must be a number";
|
|
128
|
+
return {};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
auto const delayIt = config.find("delay");
|
|
133
|
+
if (delayIt != config.items().end()) {
|
|
134
|
+
if (delayIt->second.isDouble()) {
|
|
135
|
+
delay = delayIt->second.asDouble();
|
|
136
|
+
} else {
|
|
137
|
+
LOG(ERROR)
|
|
138
|
+
<< "Error parsing animation config: field `delay` must be a number";
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
auto const springDampingIt = config.find("springDamping");
|
|
144
|
+
if (springDampingIt != config.items().end() &&
|
|
145
|
+
springDampingIt->second.isDouble()) {
|
|
146
|
+
if (springDampingIt->second.isDouble()) {
|
|
147
|
+
springDamping = springDampingIt->second.asDouble();
|
|
148
|
+
} else {
|
|
149
|
+
LOG(ERROR)
|
|
150
|
+
<< "Error parsing animation config: field `springDamping` must be a number";
|
|
151
|
+
return {};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
auto const initialVelocityIt = config.find("initialVelocity");
|
|
156
|
+
if (initialVelocityIt != config.items().end()) {
|
|
157
|
+
if (initialVelocityIt->second.isDouble()) {
|
|
158
|
+
initialVelocity = initialVelocityIt->second.asDouble();
|
|
159
|
+
} else {
|
|
160
|
+
LOG(ERROR)
|
|
161
|
+
<< "Error parsing animation config: field `initialVelocity` must be a number";
|
|
162
|
+
return {};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return better::optional<AnimationConfig>(AnimationConfig{
|
|
167
|
+
*animationType,
|
|
168
|
+
animationProperty,
|
|
169
|
+
duration,
|
|
170
|
+
delay,
|
|
171
|
+
springDamping,
|
|
172
|
+
initialVelocity});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Parse animation config from JS
|
|
176
|
+
static inline better::optional<LayoutAnimationConfig>
|
|
177
|
+
parseLayoutAnimationConfig(folly::dynamic const &config) {
|
|
178
|
+
if (config.empty() || !config.isObject()) {
|
|
179
|
+
return {};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const auto durationIt = config.find("duration");
|
|
183
|
+
if (durationIt == config.items().end() || !durationIt->second.isDouble()) {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
const double duration = durationIt->second.asDouble();
|
|
187
|
+
|
|
188
|
+
const auto createConfigIt = config.find("create");
|
|
189
|
+
const auto createConfig = createConfigIt == config.items().end()
|
|
190
|
+
? better::optional<AnimationConfig>(AnimationConfig{})
|
|
191
|
+
: parseAnimationConfig(createConfigIt->second, duration, true);
|
|
192
|
+
|
|
193
|
+
const auto updateConfigIt = config.find("update");
|
|
194
|
+
const auto updateConfig = updateConfigIt == config.items().end()
|
|
195
|
+
? better::optional<AnimationConfig>(AnimationConfig{})
|
|
196
|
+
: parseAnimationConfig(updateConfigIt->second, duration, false);
|
|
197
|
+
|
|
198
|
+
const auto deleteConfigIt = config.find("delete");
|
|
199
|
+
const auto deleteConfig = deleteConfigIt == config.items().end()
|
|
200
|
+
? better::optional<AnimationConfig>(AnimationConfig{})
|
|
201
|
+
: parseAnimationConfig(deleteConfigIt->second, duration, true);
|
|
202
|
+
|
|
203
|
+
if (!createConfig || !updateConfig || !deleteConfig) {
|
|
204
|
+
return {};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return LayoutAnimationConfig{
|
|
208
|
+
duration, *createConfig, *updateConfig, *deleteConfig};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
} // namespace react
|
|
212
|
+
} // namespace facebook
|