@react-native-ohos/react-native-reanimated 3.18.1-rc.6 → 4.0.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/compatibility.json +161 -0
- package/harmony/reanimated/BuildProfile.ets +1 -1
- package/harmony/reanimated/build-profile.json5 +8 -1
- package/harmony/reanimated/oh-package.json5 +3 -2
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +11 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +3 -4
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +51 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +13 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +0 -3
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +22 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +12 -8
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +46 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +3 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +4 -2
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +62 -157
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +38 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +303 -276
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +5 -65
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +52 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +957 -552
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +87 -111
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +115 -163
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +38 -54
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +34 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +8 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +46 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +5 -9
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +26 -57
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +12 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +3 -4
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +12 -1
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
- package/harmony/reanimated.har +0 -0
- package/package.json +36 -18
- package/scripts/deploy.js +191 -0
- package/scripts/set-reanimated-version.js +37 -0
- package/scripts/update-version.js +119 -0
- package/scripts/validate-react-native-version.js +46 -0
- package/scripts/validate-worklets-build.js +17 -0
- package/scripts/validate-worklets-version.js +79 -0
- package/scripts/worklets-version.json +4 -0
- package/LICENSE +0 -21
- package/README.OpenSource +0 -11
- package/README.md +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -155
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -182
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
- package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
- package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
- package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
- package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
- package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
- package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
4
|
+
|
|
5
|
+
#include <react/renderer/core/ShadowNode.h>
|
|
6
|
+
|
|
7
|
+
#include <jsi/jsi.h>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <string>
|
|
10
|
+
#include <unordered_map>
|
|
11
|
+
#include <unordered_set>
|
|
12
|
+
#include <utility>
|
|
13
|
+
#include <vector>
|
|
14
|
+
|
|
15
|
+
namespace reanimated {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
using namespace react;
|
|
19
|
+
|
|
20
|
+
using UpdatesBatch = std::vector<std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
|
|
21
|
+
using RegistryMap = std::unordered_map<Tag, std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
|
|
22
|
+
|
|
23
|
+
#ifdef ANDROID
|
|
24
|
+
struct PropsToRevert {
|
|
25
|
+
std::shared_ptr<const ShadowNode> shadowNode;
|
|
26
|
+
std::unordered_set<std::string> props;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
using PropsToRevertMap = std::unordered_map<Tag, PropsToRevert>;
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
class UpdatesRegistry {
|
|
33
|
+
public:
|
|
34
|
+
virtual ~UpdatesRegistry() {}
|
|
35
|
+
|
|
36
|
+
std::lock_guard<std::mutex> lock() const;
|
|
37
|
+
|
|
38
|
+
virtual bool isEmpty() const;
|
|
39
|
+
folly::dynamic get(Tag tag) const;
|
|
40
|
+
virtual void remove(Tag tag) = 0;
|
|
41
|
+
|
|
42
|
+
#ifdef ANDROID
|
|
43
|
+
bool hasPropsToRevert() const;
|
|
44
|
+
void collectPropsToRevert(PropsToRevertMap &propsToRevertMap);
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
void flushUpdates(UpdatesBatch &updatesBatch);
|
|
48
|
+
void collectProps(PropsMap &propsMap);
|
|
49
|
+
|
|
50
|
+
protected:
|
|
51
|
+
mutable std::mutex mutex_;
|
|
52
|
+
RegistryMap updatesRegistry_;
|
|
53
|
+
|
|
54
|
+
void addUpdatesToBatch(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
|
|
55
|
+
folly::dynamic getUpdatesFromRegistry(const Tag tag) const;
|
|
56
|
+
void setInUpdatesRegistry(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
|
|
57
|
+
void removeFromUpdatesRegistry(Tag tag);
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
UpdatesBatch updatesBatch_;
|
|
61
|
+
|
|
62
|
+
void flushUpdatesToRegistry(const UpdatesBatch &updatesBatch);
|
|
63
|
+
|
|
64
|
+
#ifdef ANDROID
|
|
65
|
+
PropsToRevertMap propsToRevertMap_;
|
|
66
|
+
|
|
67
|
+
void updatePropsToRevert(Tag tag, const folly::dynamic *newProps = nullptr);
|
|
68
|
+
#endif
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
} // namespace reanimated
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
#include <reanimated/Fabric/updates/UpdatesRegistryManager.h>
|
|
2
|
+
#include <reanimated/Tools/FeatureFlags.h>
|
|
3
|
+
|
|
4
|
+
#include <memory>
|
|
5
|
+
#include <utility>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace reanimated {
|
|
9
|
+
|
|
10
|
+
UpdatesRegistryManager::UpdatesRegistryManager(const std::shared_ptr<StaticPropsRegistry> &staticPropsRegistry)
|
|
11
|
+
: staticPropsRegistry_(staticPropsRegistry) {}
|
|
12
|
+
|
|
13
|
+
std::lock_guard<std::mutex> UpdatesRegistryManager::lock() const {
|
|
14
|
+
return std::lock_guard<std::mutex>{mutex_};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
void UpdatesRegistryManager::addRegistry(const std::shared_ptr<UpdatesRegistry> ®istry) {
|
|
18
|
+
if (!registry) {
|
|
19
|
+
throw std::invalid_argument("[Reanimated] Registry cannot be null");
|
|
20
|
+
}
|
|
21
|
+
registries_.push_back(registry);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void UpdatesRegistryManager::pauseReanimatedCommits() {
|
|
25
|
+
if constexpr (!StaticFeatureFlags::getFlag("DISABLE_COMMIT_PAUSING_MECHANISM")) {
|
|
26
|
+
isPaused_ = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
bool UpdatesRegistryManager::shouldReanimatedSkipCommit() {
|
|
31
|
+
return isPaused_;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void UpdatesRegistryManager::unpauseReanimatedCommits() {
|
|
35
|
+
isPaused_ = false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void UpdatesRegistryManager::pleaseCommitAfterPause() {
|
|
39
|
+
shouldCommitAfterPause_ = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void UpdatesRegistryManager::cancelCommitAfterPause() {
|
|
43
|
+
shouldCommitAfterPause_ = false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
bool UpdatesRegistryManager::shouldCommitAfterPause() {
|
|
47
|
+
return shouldCommitAfterPause_.exchange(false);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void UpdatesRegistryManager::markNodeAsRemovable(const std::shared_ptr<const ShadowNode> &shadowNode) {
|
|
51
|
+
removableShadowNodes_[shadowNode->getTag()] = shadowNode;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void UpdatesRegistryManager::unmarkNodeAsRemovable(Tag viewTag) {
|
|
55
|
+
removableShadowNodes_.erase(viewTag);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
void UpdatesRegistryManager::handleNodeRemovals(const RootShadowNode &rootShadowNode) {
|
|
59
|
+
RemovableShadowNodes remainingShadowNodes;
|
|
60
|
+
|
|
61
|
+
for (const auto &[tag, shadowNode] : removableShadowNodes_) {
|
|
62
|
+
if (!shadowNode) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (shadowNode->getFamily().getAncestors(rootShadowNode).empty()) {
|
|
67
|
+
for (auto ®istry : registries_) {
|
|
68
|
+
registry->remove(tag);
|
|
69
|
+
}
|
|
70
|
+
staticPropsRegistry_->remove(tag);
|
|
71
|
+
} else {
|
|
72
|
+
remainingShadowNodes.emplace(tag, shadowNode);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
removableShadowNodes_ = std::move(remainingShadowNodes);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
PropsMap UpdatesRegistryManager::collectProps() {
|
|
80
|
+
PropsMap propsMap;
|
|
81
|
+
for (auto ®istry : registries_) {
|
|
82
|
+
registry->collectProps(propsMap);
|
|
83
|
+
}
|
|
84
|
+
return propsMap;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#ifdef ANDROID
|
|
88
|
+
|
|
89
|
+
bool UpdatesRegistryManager::hasPropsToRevert() {
|
|
90
|
+
for (auto ®istry : registries_) {
|
|
91
|
+
if (registry->hasPropsToRevert()) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void UpdatesRegistryManager::addToPropsMap(
|
|
99
|
+
PropsMap &propsMap,
|
|
100
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
101
|
+
const folly::dynamic &props) {
|
|
102
|
+
auto &family = shadowNode->getFamily();
|
|
103
|
+
auto it = propsMap.find(&family);
|
|
104
|
+
|
|
105
|
+
if (it == propsMap.cend()) {
|
|
106
|
+
auto propsVector = std::vector<RawProps>{};
|
|
107
|
+
propsVector.emplace_back(props);
|
|
108
|
+
propsMap.emplace(&family, propsVector);
|
|
109
|
+
} else {
|
|
110
|
+
it->second.emplace_back(props);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
void UpdatesRegistryManager::collectPropsToRevertBySurface(std::unordered_map<SurfaceId, PropsMap> &propsMapBySurface) {
|
|
115
|
+
for (const auto ®istry : registries_) {
|
|
116
|
+
registry->collectPropsToRevert(propsToRevertMap_);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
for (const auto &[tag, pair] : propsToRevertMap_) {
|
|
120
|
+
const auto &[shadowNode, props] = pair;
|
|
121
|
+
const auto &staticStyle = staticPropsRegistry_->get(tag);
|
|
122
|
+
folly::dynamic filteredStyle = folly::dynamic::object;
|
|
123
|
+
|
|
124
|
+
for (const auto &propName : props) {
|
|
125
|
+
if (!staticStyle.isNull() && staticStyle.count(propName) > 0) {
|
|
126
|
+
filteredStyle[propName] = staticStyle[propName];
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const auto &componentName = shadowNode->getComponentName();
|
|
131
|
+
const auto &interpolators = getComponentInterpolators(componentName);
|
|
132
|
+
const auto &it = interpolators.find(propName);
|
|
133
|
+
|
|
134
|
+
if (it != interpolators.end()) {
|
|
135
|
+
filteredStyle[propName] = it->second->getDefaultValue().toDynamic();
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
filteredStyle[propName] = nullptr;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const auto &surfaceId = shadowNode->getSurfaceId();
|
|
143
|
+
auto &propsMap = propsMapBySurface[surfaceId];
|
|
144
|
+
|
|
145
|
+
addToPropsMap(propsMap, shadowNode, filteredStyle);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
void UpdatesRegistryManager::clearPropsToRevert(const SurfaceId surfaceId) {
|
|
150
|
+
for (auto it = propsToRevertMap_.begin(); it != propsToRevertMap_.end();) {
|
|
151
|
+
if (it->second.shadowNode->getSurfaceId() == surfaceId) {
|
|
152
|
+
it = propsToRevertMap_.erase(it);
|
|
153
|
+
} else {
|
|
154
|
+
++it;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
#endif
|
|
160
|
+
|
|
161
|
+
} // namespace reanimated
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/InterpolatorRegistry.h>
|
|
4
|
+
#include <reanimated/CSS/registries/StaticPropsRegistry.h>
|
|
5
|
+
|
|
6
|
+
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
7
|
+
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
8
|
+
|
|
9
|
+
#include <memory>
|
|
10
|
+
#include <unordered_map>
|
|
11
|
+
#include <utility>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
namespace reanimated {
|
|
15
|
+
|
|
16
|
+
using namespace css;
|
|
17
|
+
|
|
18
|
+
class UpdatesRegistryManager {
|
|
19
|
+
public:
|
|
20
|
+
explicit UpdatesRegistryManager(const std::shared_ptr<StaticPropsRegistry> &staticPropsRegistry);
|
|
21
|
+
|
|
22
|
+
std::lock_guard<std::mutex> lock() const;
|
|
23
|
+
|
|
24
|
+
// TODO - ensure that other sublibraries can easily hook into this registry
|
|
25
|
+
// manager (e.g. add priority to registries)
|
|
26
|
+
void addRegistry(const std::shared_ptr<UpdatesRegistry> ®istry);
|
|
27
|
+
|
|
28
|
+
void pauseReanimatedCommits();
|
|
29
|
+
bool shouldReanimatedSkipCommit();
|
|
30
|
+
void unpauseReanimatedCommits();
|
|
31
|
+
|
|
32
|
+
void pleaseCommitAfterPause();
|
|
33
|
+
bool shouldCommitAfterPause();
|
|
34
|
+
void cancelCommitAfterPause();
|
|
35
|
+
|
|
36
|
+
void markNodeAsRemovable(const std::shared_ptr<const ShadowNode> &shadowNode);
|
|
37
|
+
void unmarkNodeAsRemovable(Tag viewTag);
|
|
38
|
+
void handleNodeRemovals(const RootShadowNode &rootShadowNode);
|
|
39
|
+
PropsMap collectProps();
|
|
40
|
+
|
|
41
|
+
#ifdef ANDROID
|
|
42
|
+
bool hasPropsToRevert();
|
|
43
|
+
void collectPropsToRevertBySurface(std::unordered_map<SurfaceId, PropsMap> &propsMapBySurface);
|
|
44
|
+
void clearPropsToRevert(SurfaceId surfaceId);
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
private:
|
|
48
|
+
using RemovableShadowNodes = std::unordered_map<Tag, std::shared_ptr<const ShadowNode>>;
|
|
49
|
+
|
|
50
|
+
mutable std::mutex mutex_;
|
|
51
|
+
std::atomic<bool> isPaused_;
|
|
52
|
+
std::atomic<bool> shouldCommitAfterPause_;
|
|
53
|
+
RemovableShadowNodes removableShadowNodes_;
|
|
54
|
+
std::vector<std::shared_ptr<UpdatesRegistry>> registries_;
|
|
55
|
+
const std::shared_ptr<StaticPropsRegistry> staticPropsRegistry_;
|
|
56
|
+
|
|
57
|
+
#ifdef ANDROID
|
|
58
|
+
PropsToRevertMap propsToRevertMap_;
|
|
59
|
+
|
|
60
|
+
static void
|
|
61
|
+
addToPropsMap(PropsMap &propsMap, const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
|
|
62
|
+
#endif
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace reanimated
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
#include <cstdint>
|
|
4
|
+
|
|
5
|
+
typedef enum class LayoutAnimationType : std::uint8_t {
|
|
4
6
|
ENTERING = 1,
|
|
5
7
|
EXITING = 2,
|
|
6
8
|
LAYOUT = 3,
|
|
7
9
|
SHARED_ELEMENT_TRANSITION = 4,
|
|
8
|
-
|
|
10
|
+
SHARED_ELEMENT_TRANSITION_NATIVE_ID = 5,
|
|
9
11
|
} LayoutAnimationType;
|
|
@@ -1,102 +1,59 @@
|
|
|
1
1
|
#include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
|
|
2
|
-
#include <reanimated/Tools/CollectionUtils.h>
|
|
3
2
|
|
|
4
|
-
#
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <unordered_map>
|
|
5
5
|
#include <utility>
|
|
6
|
-
#
|
|
6
|
+
#include <vector>
|
|
7
7
|
|
|
8
8
|
namespace reanimated {
|
|
9
9
|
|
|
10
|
-
void LayoutAnimationsManager::configureAnimationBatch(
|
|
11
|
-
const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
|
|
10
|
+
void LayoutAnimationsManager::configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
|
|
12
11
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
#endif
|
|
12
|
+
for (const auto &layoutAnimationConfig : layoutAnimationsBatch) {
|
|
13
|
+
const auto &[tag, type, config, sharedTag] = layoutAnimationConfig;
|
|
14
|
+
|
|
15
|
+
if (type == LayoutAnimationType::ENTERING) {
|
|
16
|
+
enteringAnimationsForNativeID_[tag] = config;
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION_NATIVE_ID) {
|
|
20
|
+
sharedTransitionsForNativeID_[tag] = config;
|
|
21
|
+
sharedTransitionManager_->nativeIDToName_[tag] = sharedTag;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION) {
|
|
28
25
|
if (config == nullptr) {
|
|
29
|
-
|
|
26
|
+
// TODO (future): if the view was transitioned (e.g. so we are on the second screen)
|
|
27
|
+
// and we remove the config, we should also bring back the view (probably using tagsToRestore_)
|
|
28
|
+
sharedTransitions_.erase(tag);
|
|
29
|
+
sharedTransitionManager_->tagToName_.erase(tag);
|
|
30
30
|
} else {
|
|
31
|
-
|
|
31
|
+
sharedTransitions_[tag] = config;
|
|
32
|
+
sharedTransitionManager_->tagToName_[tag] = sharedTag;
|
|
32
33
|
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
for (const auto &[tag, type, config, sharedTransitionTag] :
|
|
36
|
-
sharedTransitionConfigs) {
|
|
37
|
-
if (config == nullptr) {
|
|
38
34
|
continue;
|
|
39
35
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
ignoreProgressAnimationForTag_.insert(tag);
|
|
36
|
+
if (config == nullptr) {
|
|
37
|
+
getConfigsForType(type).erase(tag);
|
|
38
|
+
} else {
|
|
39
|
+
getConfigsForType(type)[tag] = config;
|
|
45
40
|
}
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
|
|
49
|
-
void LayoutAnimationsManager::setShouldAnimateExiting(
|
|
50
|
-
const int tag,
|
|
51
|
-
const bool value) {
|
|
44
|
+
void LayoutAnimationsManager::setShouldAnimateExiting(const int tag, const bool value) {
|
|
52
45
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
53
46
|
shouldAnimateExitingForTag_[tag] = value;
|
|
54
47
|
}
|
|
55
48
|
|
|
56
|
-
bool LayoutAnimationsManager::shouldAnimateExiting(
|
|
57
|
-
const int tag,
|
|
58
|
-
const bool shouldAnimate) {
|
|
59
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
60
|
-
return collection::contains(shouldAnimateExitingForTag_, tag)
|
|
61
|
-
? shouldAnimateExitingForTag_[tag]
|
|
62
|
-
: shouldAnimate;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
bool LayoutAnimationsManager::hasLayoutAnimation(
|
|
66
|
-
const int tag,
|
|
67
|
-
const LayoutAnimationType type) {
|
|
49
|
+
bool LayoutAnimationsManager::shouldAnimateExiting(const int tag, const bool shouldAnimate) {
|
|
68
50
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
69
|
-
|
|
70
|
-
auto end = ignoreProgressAnimationForTag_.end();
|
|
71
|
-
return ignoreProgressAnimationForTag_.find(tag) == end;
|
|
72
|
-
}
|
|
73
|
-
return collection::contains(getConfigsForType(type), tag);
|
|
51
|
+
return shouldAnimateExitingForTag_.contains(tag) ? shouldAnimateExitingForTag_[tag] : shouldAnimate;
|
|
74
52
|
}
|
|
75
53
|
|
|
76
|
-
|
|
54
|
+
bool LayoutAnimationsManager::hasLayoutAnimation(const int tag, const LayoutAnimationType type) {
|
|
77
55
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
78
|
-
|
|
79
|
-
const auto &pair = viewsScreenSharedTagMap_[tag];
|
|
80
|
-
screenSharedTagSet_.erase(pair);
|
|
81
|
-
viewsScreenSharedTagMap_.erase(tag);
|
|
82
|
-
#endif // NDEBUG
|
|
83
|
-
|
|
84
|
-
sharedTransitionAnimations_.erase(tag);
|
|
85
|
-
auto const &groupName = viewTagToSharedTag_[tag];
|
|
86
|
-
if (groupName.empty()) {
|
|
87
|
-
viewTagToSharedTag_.erase(tag);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
auto &group = sharedTransitionGroups_[groupName];
|
|
91
|
-
auto position = std::find(group.begin(), group.end(), tag);
|
|
92
|
-
if (position != group.end()) {
|
|
93
|
-
group.erase(position);
|
|
94
|
-
}
|
|
95
|
-
if (group.size() == 0) {
|
|
96
|
-
sharedTransitionGroups_.erase(groupName);
|
|
97
|
-
}
|
|
98
|
-
viewTagToSharedTag_.erase(tag);
|
|
99
|
-
ignoreProgressAnimationForTag_.erase(tag);
|
|
56
|
+
return getConfigsForType(type).contains(tag);
|
|
100
57
|
}
|
|
101
58
|
|
|
102
59
|
void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
|
|
@@ -105,7 +62,6 @@ void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
|
|
|
105
62
|
exitingAnimations_.erase(tag);
|
|
106
63
|
layoutAnimations_.erase(tag);
|
|
107
64
|
shouldAnimateExitingForTag_.erase(tag);
|
|
108
|
-
clearSharedTransitionConfig(tag);
|
|
109
65
|
}
|
|
110
66
|
|
|
111
67
|
void LayoutAnimationsManager::startLayoutAnimation(
|
|
@@ -113,119 +69,68 @@ void LayoutAnimationsManager::startLayoutAnimation(
|
|
|
113
69
|
const int tag,
|
|
114
70
|
const LayoutAnimationType type,
|
|
115
71
|
const jsi::Object &values) {
|
|
116
|
-
std::shared_ptr<
|
|
72
|
+
std::shared_ptr<Serializable> config;
|
|
117
73
|
{
|
|
118
74
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
119
|
-
if (!
|
|
75
|
+
if (!getConfigsForType(type).contains(tag)) {
|
|
120
76
|
return;
|
|
121
77
|
}
|
|
122
78
|
config = getConfigsForType(type)[tag];
|
|
123
79
|
}
|
|
124
80
|
// TODO: cache the following!!
|
|
125
81
|
jsi::Value layoutAnimationRepositoryAsValue =
|
|
126
|
-
rt.global()
|
|
127
|
-
.getPropertyAsObject(rt, "global")
|
|
128
|
-
.getProperty(rt, "LayoutAnimationsManager");
|
|
82
|
+
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
129
83
|
jsi::Function startAnimationForTag =
|
|
130
|
-
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(
|
|
131
|
-
|
|
132
|
-
startAnimationForTag.call(
|
|
133
|
-
rt,
|
|
134
|
-
jsi::Value(tag),
|
|
135
|
-
jsi::Value(static_cast<int>(type)),
|
|
136
|
-
values,
|
|
137
|
-
config->toJSValue(rt));
|
|
84
|
+
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "start");
|
|
85
|
+
startAnimationForTag.call(rt, jsi::Value(tag), jsi::Value(static_cast<int>(type)), values, config->toJSValue(rt));
|
|
138
86
|
}
|
|
139
87
|
|
|
140
|
-
void LayoutAnimationsManager::cancelLayoutAnimation(
|
|
141
|
-
jsi::Runtime &rt,
|
|
142
|
-
const int tag) const {
|
|
88
|
+
void LayoutAnimationsManager::cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const {
|
|
143
89
|
jsi::Value layoutAnimationRepositoryAsValue =
|
|
144
|
-
rt.global()
|
|
145
|
-
.getPropertyAsObject(rt, "global")
|
|
146
|
-
.getProperty(rt, "LayoutAnimationsManager");
|
|
90
|
+
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
147
91
|
jsi::Function cancelLayoutAnimation =
|
|
148
|
-
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(
|
|
149
|
-
rt, "stop");
|
|
92
|
+
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "stop");
|
|
150
93
|
cancelLayoutAnimation.call(rt, jsi::Value(tag));
|
|
151
94
|
}
|
|
152
95
|
|
|
153
|
-
|
|
154
|
-
The top screen on the stack triggers the animation, so we need to find
|
|
155
|
-
the sibling view registered in the past. This method finds view
|
|
156
|
-
registered in the same transition group (with the same transition tag)
|
|
157
|
-
which has been added to that group directly before the one that we
|
|
158
|
-
provide as an argument.
|
|
159
|
-
*/
|
|
160
|
-
int LayoutAnimationsManager::findPrecedingViewTagForTransition(const int tag) {
|
|
161
|
-
auto const &groupName = viewTagToSharedTag_[tag];
|
|
162
|
-
auto const &group = sharedTransitionGroups_[groupName];
|
|
163
|
-
auto position = std::find(group.begin(), group.end(), tag);
|
|
164
|
-
if (position != group.end() && position != group.begin()) {
|
|
165
|
-
return *std::prev(position);
|
|
166
|
-
}
|
|
167
|
-
return -1;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const std::vector<int> &LayoutAnimationsManager::getSharedGroup(
|
|
171
|
-
const int viewTag) {
|
|
172
|
-
const auto &groupSharedTag = viewTagToSharedTag_[viewTag];
|
|
173
|
-
return sharedTransitionGroups_[groupSharedTag];
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
177
|
-
void LayoutAnimationsManager::transferConfigFromNativeID(
|
|
178
|
-
const int nativeId,
|
|
179
|
-
const int tag) {
|
|
96
|
+
void LayoutAnimationsManager::transferConfigFromNativeID(const int nativeId, const int tag) {
|
|
180
97
|
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
181
|
-
auto config = enteringAnimationsForNativeID_[nativeId];
|
|
98
|
+
const auto config = enteringAnimationsForNativeID_[nativeId];
|
|
182
99
|
if (config) {
|
|
183
100
|
enteringAnimations_.insert_or_assign(tag, config);
|
|
184
101
|
}
|
|
185
102
|
enteringAnimationsForNativeID_.erase(nativeId);
|
|
103
|
+
|
|
104
|
+
const auto sharedTransitionConfig = sharedTransitionsForNativeID_[nativeId];
|
|
105
|
+
if (sharedTransitionConfig) {
|
|
106
|
+
sharedTransitions_.insert_or_assign(tag, sharedTransitionConfig);
|
|
107
|
+
sharedTransitionManager_->tagToName_[tag] = sharedTransitionManager_->nativeIDToName_[nativeId];
|
|
108
|
+
}
|
|
109
|
+
sharedTransitionsForNativeID_.erase(nativeId);
|
|
110
|
+
sharedTransitionManager_->nativeIDToName_.erase(nativeId);
|
|
186
111
|
}
|
|
187
|
-
#endif
|
|
188
112
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
const int screenTag,
|
|
192
|
-
const std::string &sharedTag) const {
|
|
193
|
-
return std::to_string(screenTag) + ":" + sharedTag;
|
|
113
|
+
void LayoutAnimationsManager::transferSharedConfig(const Tag from, const Tag to) {
|
|
114
|
+
sharedTransitions_[to] = sharedTransitions_[from];
|
|
194
115
|
}
|
|
195
116
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const int screenTag) {
|
|
199
|
-
if (!viewTagToSharedTag_.count(viewTag)) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
const auto &sharedTag = viewTagToSharedTag_[viewTag];
|
|
203
|
-
const auto &pair = getScreenSharedTagPairString(screenTag, sharedTag);
|
|
204
|
-
bool hasDuplicate = screenSharedTagSet_.count(pair);
|
|
205
|
-
if (hasDuplicate) {
|
|
206
|
-
jsLogger_->warnOnJS(
|
|
207
|
-
"[Reanimated] Duplicate shared tag \"" + sharedTag +
|
|
208
|
-
"\" on the same screen");
|
|
209
|
-
}
|
|
210
|
-
viewsScreenSharedTagMap_[viewTag] = pair;
|
|
211
|
-
screenSharedTagSet_.insert(pair);
|
|
117
|
+
std::shared_ptr<SharedTransitionManager> LayoutAnimationsManager::getSharedTransitionManager() {
|
|
118
|
+
return sharedTransitionManager_;
|
|
212
119
|
}
|
|
213
|
-
#endif // NDEBUG
|
|
214
120
|
|
|
215
|
-
std::unordered_map<int, std::shared_ptr<
|
|
216
|
-
|
|
121
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> &LayoutAnimationsManager::getConfigsForType(
|
|
122
|
+
const LayoutAnimationType type) {
|
|
217
123
|
switch (type) {
|
|
218
|
-
case ENTERING:
|
|
124
|
+
case LayoutAnimationType::ENTERING:
|
|
219
125
|
return enteringAnimations_;
|
|
220
|
-
case EXITING:
|
|
126
|
+
case LayoutAnimationType::EXITING:
|
|
221
127
|
return exitingAnimations_;
|
|
222
|
-
case LAYOUT:
|
|
128
|
+
case LayoutAnimationType::LAYOUT:
|
|
223
129
|
return layoutAnimations_;
|
|
224
|
-
case SHARED_ELEMENT_TRANSITION:
|
|
225
|
-
|
|
226
|
-
return sharedTransitionAnimations_;
|
|
130
|
+
case LayoutAnimationType::SHARED_ELEMENT_TRANSITION:
|
|
131
|
+
return sharedTransitions_;
|
|
227
132
|
default:
|
|
228
|
-
|
|
133
|
+
throw std::invalid_argument("[Reanimated] Unknown layout animation type");
|
|
229
134
|
}
|
|
230
135
|
}
|
|
231
136
|
|