@react-native-ohos/react-native-reanimated 4.0.0-rc.1 → 4.0.2-beta.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 -161
- package/harmony/reanimated/BuildProfile.ets +16 -16
- package/harmony/reanimated/build-profile.json5 +18 -18
- package/harmony/reanimated/hvigorfile.ts +4 -4
- package/harmony/reanimated/index.ets +4 -4
- package/harmony/reanimated/oh-package-lock.json5 +39 -0
- package/harmony/reanimated/oh-package.json5 +12 -12
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +65 -62
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -110
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1376
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -228
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +233 -230
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
- package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
- package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +51 -51
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
- package/harmony/reanimated/src/main/module.json5 +12 -12
- package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
- package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
- package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
- package/harmony/reanimated/ts.ts +6 -6
- package/harmony/reanimated.har +0 -0
- package/package.json +70 -68
- package/scripts/deploy.js +191 -191
- package/scripts/set-reanimated-version.js +37 -37
- package/scripts/update-version.js +119 -119
- package/scripts/validate-react-native-version.js +46 -46
- package/scripts/validate-worklets-build.js +17 -17
- package/scripts/validate-worklets-version.js +84 -79
- package/scripts/worklets-version.json +4 -4
- package/src/index.ts +9 -9
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
#include <reanimated/Fabric/updates/AnimatedPropsRegistry.h>
|
|
2
|
-
#include <reanimated/Tools/FeatureFlags.h>
|
|
3
|
-
|
|
4
|
-
#include <memory>
|
|
5
|
-
#include <utility>
|
|
6
|
-
|
|
7
|
-
namespace reanimated {
|
|
8
|
-
|
|
9
|
-
#if REACT_NATIVE_MINOR_VERSION >= 81
|
|
10
|
-
static inline std::shared_ptr<const ShadowNode> shadowNodeFromValue(
|
|
11
|
-
jsi::Runtime &rt,
|
|
12
|
-
const jsi::Value &shadowNodeWrapper) {
|
|
13
|
-
return Bridging<std::shared_ptr<const ShadowNode>>::fromJs(rt, shadowNodeWrapper);
|
|
14
|
-
}
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
|
-
void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operations, const double timestamp) {
|
|
18
|
-
auto operationsArray = operations.asObject(rt).asArray(rt);
|
|
19
|
-
|
|
20
|
-
for (size_t i = 0, length = operationsArray.size(rt); i < length; ++i) {
|
|
21
|
-
auto item = operationsArray.getValueAtIndex(rt, i).asObject(rt);
|
|
22
|
-
auto shadowNodeWrapper = item.getProperty(rt, "shadowNodeWrapper");
|
|
23
|
-
auto shadowNode = shadowNodeFromValue(rt, shadowNodeWrapper);
|
|
24
|
-
|
|
25
|
-
const jsi::Value &updates = item.getProperty(rt, "updates");
|
|
26
|
-
addUpdatesToBatch(shadowNode, jsi::dynamicFromValue(rt, updates));
|
|
27
|
-
|
|
28
|
-
if constexpr (StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS")) {
|
|
29
|
-
timestampMap_[shadowNode->getTag()] = timestamp;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
void AnimatedPropsRegistry::remove(const Tag tag) {
|
|
35
|
-
updatesRegistry_.erase(tag);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(jsi::Runtime &rt, const double timestamp) {
|
|
39
|
-
std::vector<std::pair<Tag, std::reference_wrapper<const folly::dynamic>>> updates;
|
|
40
|
-
|
|
41
|
-
for (const auto &[viewTag, pair] : updatesRegistry_) {
|
|
42
|
-
if (timestampMap_.at(viewTag) < timestamp) {
|
|
43
|
-
updates.emplace_back(viewTag, std::cref(pair.second));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const jsi::Array array(rt, updates.size());
|
|
48
|
-
size_t i = 0;
|
|
49
|
-
for (const auto &[viewTag, styleProps] : updates) {
|
|
50
|
-
const jsi::Object item(rt);
|
|
51
|
-
item.setProperty(rt, "viewTag", viewTag);
|
|
52
|
-
item.setProperty(rt, "styleProps", jsi::valueFromDynamic(rt, styleProps.get()));
|
|
53
|
-
array.setValueAtIndex(rt, i++, item);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return jsi::Value(rt, array);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
|
|
60
|
-
for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
|
|
61
|
-
const auto viewTag = it->first;
|
|
62
|
-
const auto viewTimestamp = it->second;
|
|
63
|
-
if (viewTimestamp < timestamp) {
|
|
64
|
-
it = timestampMap_.erase(it);
|
|
65
|
-
updatesRegistry_.erase(viewTag);
|
|
66
|
-
} else {
|
|
67
|
-
it++;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
} // namespace reanimated
|
|
1
|
+
#include <reanimated/Fabric/updates/AnimatedPropsRegistry.h>
|
|
2
|
+
#include <reanimated/Tools/FeatureFlags.h>
|
|
3
|
+
|
|
4
|
+
#include <memory>
|
|
5
|
+
#include <utility>
|
|
6
|
+
|
|
7
|
+
namespace reanimated {
|
|
8
|
+
|
|
9
|
+
#if REACT_NATIVE_MINOR_VERSION >= 81
|
|
10
|
+
static inline std::shared_ptr<const ShadowNode> shadowNodeFromValue(
|
|
11
|
+
jsi::Runtime &rt,
|
|
12
|
+
const jsi::Value &shadowNodeWrapper) {
|
|
13
|
+
return Bridging<std::shared_ptr<const ShadowNode>>::fromJs(rt, shadowNodeWrapper);
|
|
14
|
+
}
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operations, const double timestamp) {
|
|
18
|
+
auto operationsArray = operations.asObject(rt).asArray(rt);
|
|
19
|
+
|
|
20
|
+
for (size_t i = 0, length = operationsArray.size(rt); i < length; ++i) {
|
|
21
|
+
auto item = operationsArray.getValueAtIndex(rt, i).asObject(rt);
|
|
22
|
+
auto shadowNodeWrapper = item.getProperty(rt, "shadowNodeWrapper");
|
|
23
|
+
auto shadowNode = shadowNodeFromValue(rt, shadowNodeWrapper);
|
|
24
|
+
|
|
25
|
+
const jsi::Value &updates = item.getProperty(rt, "updates");
|
|
26
|
+
addUpdatesToBatch(shadowNode, jsi::dynamicFromValue(rt, updates));
|
|
27
|
+
|
|
28
|
+
if constexpr (StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS")) {
|
|
29
|
+
timestampMap_[shadowNode->getTag()] = timestamp;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void AnimatedPropsRegistry::remove(const Tag tag) {
|
|
35
|
+
updatesRegistry_.erase(tag);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(jsi::Runtime &rt, const double timestamp) {
|
|
39
|
+
std::vector<std::pair<Tag, std::reference_wrapper<const folly::dynamic>>> updates;
|
|
40
|
+
|
|
41
|
+
for (const auto &[viewTag, pair] : updatesRegistry_) {
|
|
42
|
+
if (timestampMap_.at(viewTag) < timestamp) {
|
|
43
|
+
updates.emplace_back(viewTag, std::cref(pair.second));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const jsi::Array array(rt, updates.size());
|
|
48
|
+
size_t i = 0;
|
|
49
|
+
for (const auto &[viewTag, styleProps] : updates) {
|
|
50
|
+
const jsi::Object item(rt);
|
|
51
|
+
item.setProperty(rt, "viewTag", viewTag);
|
|
52
|
+
item.setProperty(rt, "styleProps", jsi::valueFromDynamic(rt, styleProps.get()));
|
|
53
|
+
array.setValueAtIndex(rt, i++, item);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return jsi::Value(rt, array);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
|
|
60
|
+
for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
|
|
61
|
+
const auto viewTag = it->first;
|
|
62
|
+
const auto viewTimestamp = it->second;
|
|
63
|
+
if (viewTimestamp < timestamp) {
|
|
64
|
+
it = timestampMap_.erase(it);
|
|
65
|
+
updatesRegistry_.erase(viewTag);
|
|
66
|
+
} else {
|
|
67
|
+
it++;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
} // namespace reanimated
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
4
|
-
|
|
5
|
-
#include <react/renderer/uimanager/UIManager.h>
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
#include <string>
|
|
9
|
-
#include <unordered_map>
|
|
10
|
-
#include <vector>
|
|
11
|
-
|
|
12
|
-
namespace reanimated {
|
|
13
|
-
|
|
14
|
-
class AnimatedPropsRegistry : public UpdatesRegistry {
|
|
15
|
-
public:
|
|
16
|
-
void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
|
|
17
|
-
void remove(Tag tag) override;
|
|
18
|
-
jsi::Value getUpdatesOlderThanTimestamp(jsi::Runtime &rt, double timestamp);
|
|
19
|
-
void removeUpdatesOlderThanTimestamp(double timestamp);
|
|
20
|
-
|
|
21
|
-
private:
|
|
22
|
-
std::unordered_map<Tag, double> timestampMap_; // viewTag -> timestamp, protected by `mutex_`
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
} // namespace reanimated
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
4
|
+
|
|
5
|
+
#include <react/renderer/uimanager/UIManager.h>
|
|
6
|
+
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <unordered_map>
|
|
10
|
+
#include <vector>
|
|
11
|
+
|
|
12
|
+
namespace reanimated {
|
|
13
|
+
|
|
14
|
+
class AnimatedPropsRegistry : public UpdatesRegistry {
|
|
15
|
+
public:
|
|
16
|
+
void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
|
|
17
|
+
void remove(Tag tag) override;
|
|
18
|
+
jsi::Value getUpdatesOlderThanTimestamp(jsi::Runtime &rt, double timestamp);
|
|
19
|
+
void removeUpdatesOlderThanTimestamp(double timestamp);
|
|
20
|
+
|
|
21
|
+
private:
|
|
22
|
+
std::unordered_map<Tag, double> timestampMap_; // viewTag -> timestamp, protected by `mutex_`
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
} // namespace reanimated
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp
CHANGED
|
@@ -1,160 +1,160 @@
|
|
|
1
|
-
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
#include <unordered_set>
|
|
6
|
-
#include <utility>
|
|
7
|
-
#include <vector>
|
|
8
|
-
|
|
9
|
-
namespace reanimated {
|
|
10
|
-
|
|
11
|
-
std::lock_guard<std::mutex> UpdatesRegistry::lock() const {
|
|
12
|
-
return std::lock_guard<std::mutex>{mutex_};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
bool UpdatesRegistry::isEmpty() const {
|
|
16
|
-
return updatesRegistry_.empty();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
folly::dynamic UpdatesRegistry::get(const Tag tag) const {
|
|
20
|
-
std::lock_guard<std::mutex> lock{mutex_};
|
|
21
|
-
|
|
22
|
-
auto it = updatesRegistry_.find(tag);
|
|
23
|
-
if (it == updatesRegistry_.cend()) {
|
|
24
|
-
return nullptr;
|
|
25
|
-
}
|
|
26
|
-
return it->second.second;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
void UpdatesRegistry::flushUpdates(UpdatesBatch &updatesBatch) {
|
|
30
|
-
auto copiedUpdatesBatch = std::move(updatesBatch_);
|
|
31
|
-
updatesBatch_.clear();
|
|
32
|
-
|
|
33
|
-
// Store all updates in the registry for later use in the commit hook
|
|
34
|
-
flushUpdatesToRegistry(copiedUpdatesBatch);
|
|
35
|
-
// Flush the updates to the updatesBatch used to apply current changes
|
|
36
|
-
for (auto &[shadowNode, props] : copiedUpdatesBatch) {
|
|
37
|
-
updatesBatch.emplace_back(shadowNode, std::move(props));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
void UpdatesRegistry::collectProps(PropsMap &propsMap) {
|
|
42
|
-
std::lock_guard<std::mutex> lock{mutex_};
|
|
43
|
-
|
|
44
|
-
auto copiedRegistry = updatesRegistry_;
|
|
45
|
-
for (const auto &[tag, pair] : copiedRegistry) {
|
|
46
|
-
const auto &[shadowNode, props] = pair;
|
|
47
|
-
auto &family = shadowNode->getFamily();
|
|
48
|
-
auto it = propsMap.find(&family);
|
|
49
|
-
|
|
50
|
-
if (it == propsMap.cend()) {
|
|
51
|
-
auto propsVector = std::vector<RawProps>{};
|
|
52
|
-
propsVector.emplace_back(RawProps(props));
|
|
53
|
-
propsMap.emplace(&family, propsVector);
|
|
54
|
-
} else {
|
|
55
|
-
it->second.push_back(RawProps(props));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
void UpdatesRegistry::addUpdatesToBatch(
|
|
61
|
-
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
62
|
-
const folly::dynamic &props) {
|
|
63
|
-
updatesBatch_.emplace_back(shadowNode, props);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
void UpdatesRegistry::setInUpdatesRegistry(
|
|
67
|
-
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
68
|
-
const folly::dynamic &props) {
|
|
69
|
-
const auto tag = shadowNode->getTag();
|
|
70
|
-
#ifdef ANDROID
|
|
71
|
-
updatePropsToRevert(tag, &props);
|
|
72
|
-
#endif
|
|
73
|
-
updatesRegistry_[tag] = std::make_pair(shadowNode, props);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
folly::dynamic UpdatesRegistry::getUpdatesFromRegistry(const Tag tag) const {
|
|
77
|
-
auto it = updatesRegistry_.find(tag);
|
|
78
|
-
if (it == updatesRegistry_.cend()) {
|
|
79
|
-
return folly::dynamic();
|
|
80
|
-
}
|
|
81
|
-
return it->second.second;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
void UpdatesRegistry::removeFromUpdatesRegistry(const Tag tag) {
|
|
85
|
-
#ifdef ANDROID
|
|
86
|
-
updatePropsToRevert(tag);
|
|
87
|
-
#endif
|
|
88
|
-
updatesRegistry_.erase(tag);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
void UpdatesRegistry::flushUpdatesToRegistry(const UpdatesBatch &updatesBatch) {
|
|
92
|
-
for (auto &[shadowNode, props] : updatesBatch) {
|
|
93
|
-
const auto tag = shadowNode->getTag();
|
|
94
|
-
auto it = updatesRegistry_.find(tag);
|
|
95
|
-
|
|
96
|
-
if (it == updatesRegistry_.cend()) {
|
|
97
|
-
updatesRegistry_[tag] = std::make_pair(shadowNode, props);
|
|
98
|
-
} else {
|
|
99
|
-
it->second.second.update(props);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
#ifdef ANDROID
|
|
105
|
-
|
|
106
|
-
bool UpdatesRegistry::hasPropsToRevert() const {
|
|
107
|
-
return !propsToRevertMap_.empty();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
void UpdatesRegistry::collectPropsToRevert(PropsToRevertMap &propsToRevertMap) {
|
|
111
|
-
std::lock_guard<std::mutex> lock{mutex_};
|
|
112
|
-
|
|
113
|
-
for (const auto &[tag, pair] : propsToRevertMap_) {
|
|
114
|
-
const auto &[shadowNode, props] = pair;
|
|
115
|
-
const auto it = propsToRevertMap.find(tag);
|
|
116
|
-
if (it == propsToRevertMap.end()) {
|
|
117
|
-
propsToRevertMap[tag] = {shadowNode, props};
|
|
118
|
-
} else {
|
|
119
|
-
it->second.props.insert(props.begin(), props.end());
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
propsToRevertMap_.clear();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
void UpdatesRegistry::updatePropsToRevert(const Tag tag, const folly::dynamic *newProps) {
|
|
127
|
-
auto it = updatesRegistry_.find(tag);
|
|
128
|
-
if (it == updatesRegistry_.end()) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const auto &shadowNode = it->second.first;
|
|
133
|
-
const auto ®istryProps = it->second.second;
|
|
134
|
-
if (propsToRevertMap_.find(tag) == propsToRevertMap_.end()) {
|
|
135
|
-
propsToRevertMap_[tag] = {shadowNode, std::unordered_set<std::string>()};
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (newProps == nullptr) {
|
|
139
|
-
// If newProps is not provided, revert all props from registry
|
|
140
|
-
for (const auto &propName : registryProps.keys()) {
|
|
141
|
-
propsToRevertMap_[tag].props.emplace(propName.asString());
|
|
142
|
-
}
|
|
143
|
-
} else {
|
|
144
|
-
// If newProps is provided, revert only props that are in registry but not
|
|
145
|
-
// in newProps
|
|
146
|
-
for (const auto &propName : registryProps.keys()) {
|
|
147
|
-
if (newProps->find(propName) == newProps->items().end()) {
|
|
148
|
-
propsToRevertMap_[tag].props.emplace(propName.asString());
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (propsToRevertMap_[tag].props.empty()) {
|
|
154
|
-
propsToRevertMap_.erase(tag);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
#endif
|
|
159
|
-
|
|
160
|
-
} // namespace reanimated
|
|
1
|
+
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <unordered_set>
|
|
6
|
+
#include <utility>
|
|
7
|
+
#include <vector>
|
|
8
|
+
|
|
9
|
+
namespace reanimated {
|
|
10
|
+
|
|
11
|
+
std::lock_guard<std::mutex> UpdatesRegistry::lock() const {
|
|
12
|
+
return std::lock_guard<std::mutex>{mutex_};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bool UpdatesRegistry::isEmpty() const {
|
|
16
|
+
return updatesRegistry_.empty();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
folly::dynamic UpdatesRegistry::get(const Tag tag) const {
|
|
20
|
+
std::lock_guard<std::mutex> lock{mutex_};
|
|
21
|
+
|
|
22
|
+
auto it = updatesRegistry_.find(tag);
|
|
23
|
+
if (it == updatesRegistry_.cend()) {
|
|
24
|
+
return nullptr;
|
|
25
|
+
}
|
|
26
|
+
return it->second.second;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void UpdatesRegistry::flushUpdates(UpdatesBatch &updatesBatch) {
|
|
30
|
+
auto copiedUpdatesBatch = std::move(updatesBatch_);
|
|
31
|
+
updatesBatch_.clear();
|
|
32
|
+
|
|
33
|
+
// Store all updates in the registry for later use in the commit hook
|
|
34
|
+
flushUpdatesToRegistry(copiedUpdatesBatch);
|
|
35
|
+
// Flush the updates to the updatesBatch used to apply current changes
|
|
36
|
+
for (auto &[shadowNode, props] : copiedUpdatesBatch) {
|
|
37
|
+
updatesBatch.emplace_back(shadowNode, std::move(props));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void UpdatesRegistry::collectProps(PropsMap &propsMap) {
|
|
42
|
+
std::lock_guard<std::mutex> lock{mutex_};
|
|
43
|
+
|
|
44
|
+
auto copiedRegistry = updatesRegistry_;
|
|
45
|
+
for (const auto &[tag, pair] : copiedRegistry) {
|
|
46
|
+
const auto &[shadowNode, props] = pair;
|
|
47
|
+
auto &family = shadowNode->getFamily();
|
|
48
|
+
auto it = propsMap.find(&family);
|
|
49
|
+
|
|
50
|
+
if (it == propsMap.cend()) {
|
|
51
|
+
auto propsVector = std::vector<RawProps>{};
|
|
52
|
+
propsVector.emplace_back(RawProps(props));
|
|
53
|
+
propsMap.emplace(&family, propsVector);
|
|
54
|
+
} else {
|
|
55
|
+
it->second.push_back(RawProps(props));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
void UpdatesRegistry::addUpdatesToBatch(
|
|
61
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
62
|
+
const folly::dynamic &props) {
|
|
63
|
+
updatesBatch_.emplace_back(shadowNode, props);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void UpdatesRegistry::setInUpdatesRegistry(
|
|
67
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
68
|
+
const folly::dynamic &props) {
|
|
69
|
+
const auto tag = shadowNode->getTag();
|
|
70
|
+
#ifdef ANDROID
|
|
71
|
+
updatePropsToRevert(tag, &props);
|
|
72
|
+
#endif
|
|
73
|
+
updatesRegistry_[tag] = std::make_pair(shadowNode, props);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
folly::dynamic UpdatesRegistry::getUpdatesFromRegistry(const Tag tag) const {
|
|
77
|
+
auto it = updatesRegistry_.find(tag);
|
|
78
|
+
if (it == updatesRegistry_.cend()) {
|
|
79
|
+
return folly::dynamic();
|
|
80
|
+
}
|
|
81
|
+
return it->second.second;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void UpdatesRegistry::removeFromUpdatesRegistry(const Tag tag) {
|
|
85
|
+
#ifdef ANDROID
|
|
86
|
+
updatePropsToRevert(tag);
|
|
87
|
+
#endif
|
|
88
|
+
updatesRegistry_.erase(tag);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
void UpdatesRegistry::flushUpdatesToRegistry(const UpdatesBatch &updatesBatch) {
|
|
92
|
+
for (auto &[shadowNode, props] : updatesBatch) {
|
|
93
|
+
const auto tag = shadowNode->getTag();
|
|
94
|
+
auto it = updatesRegistry_.find(tag);
|
|
95
|
+
|
|
96
|
+
if (it == updatesRegistry_.cend()) {
|
|
97
|
+
updatesRegistry_[tag] = std::make_pair(shadowNode, props);
|
|
98
|
+
} else {
|
|
99
|
+
it->second.second.update(props);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
#ifdef ANDROID
|
|
105
|
+
|
|
106
|
+
bool UpdatesRegistry::hasPropsToRevert() const {
|
|
107
|
+
return !propsToRevertMap_.empty();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
void UpdatesRegistry::collectPropsToRevert(PropsToRevertMap &propsToRevertMap) {
|
|
111
|
+
std::lock_guard<std::mutex> lock{mutex_};
|
|
112
|
+
|
|
113
|
+
for (const auto &[tag, pair] : propsToRevertMap_) {
|
|
114
|
+
const auto &[shadowNode, props] = pair;
|
|
115
|
+
const auto it = propsToRevertMap.find(tag);
|
|
116
|
+
if (it == propsToRevertMap.end()) {
|
|
117
|
+
propsToRevertMap[tag] = {shadowNode, props};
|
|
118
|
+
} else {
|
|
119
|
+
it->second.props.insert(props.begin(), props.end());
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
propsToRevertMap_.clear();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
void UpdatesRegistry::updatePropsToRevert(const Tag tag, const folly::dynamic *newProps) {
|
|
127
|
+
auto it = updatesRegistry_.find(tag);
|
|
128
|
+
if (it == updatesRegistry_.end()) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const auto &shadowNode = it->second.first;
|
|
133
|
+
const auto ®istryProps = it->second.second;
|
|
134
|
+
if (propsToRevertMap_.find(tag) == propsToRevertMap_.end()) {
|
|
135
|
+
propsToRevertMap_[tag] = {shadowNode, std::unordered_set<std::string>()};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (newProps == nullptr) {
|
|
139
|
+
// If newProps is not provided, revert all props from registry
|
|
140
|
+
for (const auto &propName : registryProps.keys()) {
|
|
141
|
+
propsToRevertMap_[tag].props.emplace(propName.asString());
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
// If newProps is provided, revert only props that are in registry but not
|
|
145
|
+
// in newProps
|
|
146
|
+
for (const auto &propName : registryProps.keys()) {
|
|
147
|
+
if (newProps->find(propName) == newProps->items().end()) {
|
|
148
|
+
propsToRevertMap_[tag].props.emplace(propName.asString());
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (propsToRevertMap_[tag].props.empty()) {
|
|
154
|
+
propsToRevertMap_.erase(tag);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
#endif
|
|
159
|
+
|
|
160
|
+
} // namespace reanimated
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h
CHANGED
|
@@ -1,71 +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
|
|
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
|