@react-native-ohos/react-native-reanimated 4.0.1 → 4.0.2
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 +1 -1
- 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 +62 -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 -94
- 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 -45
- 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 -111
- 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 -1380
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -230
- 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 +246 -233
- 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 +62 -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 -69
- 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 -84
- package/scripts/worklets-version.json +4 -4
- package/src/index.ts +9 -9
|
@@ -1,234 +1,247 @@
|
|
|
1
|
-
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
-
// Use of this source code is governed by a MIT license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#include "RNOH/ArkTSTurboModule.h"
|
|
6
|
-
#include "RNOH/RNInstance.h"
|
|
7
|
-
#include "ReanimatedModule.h"
|
|
8
|
-
#include "ReanimatedSensorContainer.h"
|
|
9
|
-
#include "ReanimatedUIScheduler.h"
|
|
10
|
-
#include "PlatformDepMethodsHolder.h"
|
|
11
|
-
#include "WorkletRuntimeCollector.h"
|
|
12
|
-
#include "RNRuntimeDecorator.h"
|
|
13
|
-
#include "TransformParser.h"
|
|
14
|
-
#include "RNOH/RNInstanceCAPI.h"
|
|
15
|
-
#include "WorkletsModule.h"
|
|
16
|
-
|
|
17
|
-
using namespace facebook;
|
|
18
|
-
using namespace reanimated;
|
|
19
|
-
using namespace worklets;
|
|
20
|
-
namespace rnoh {
|
|
21
|
-
static double getMillisSinceEpoch() {
|
|
22
|
-
auto now = std::chrono::high_resolution_clock::now();
|
|
23
|
-
auto frameTime = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch());
|
|
24
|
-
return frameTime.count();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
jsi::Value installTurboModule(facebook::jsi::Runtime &rt, react::TurboModule &turboModule,
|
|
28
|
-
const facebook::jsi::Value *args, size_t count) {
|
|
29
|
-
auto self = static_cast<ReanimatedModule *>(&turboModule);
|
|
30
|
-
self->installTurboModule(rt);
|
|
31
|
-
return facebook::jsi::Value(true);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
ReanimatedModule::ReanimatedModule(const ArkTSTurboModule::Context ctx, const std::string name)
|
|
35
|
-
: ArkTSTurboModule(ctx, name) {
|
|
36
|
-
methodMap_ = {{"installTurboModule", {0, rnoh::installTurboModule}}};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
ReanimatedModule::~ReanimatedModule() {
|
|
40
|
-
LOG(INFO) << "ReanimatedModule::~ReanimatedModule";
|
|
41
|
-
if (eventListener) {
|
|
42
|
-
m_ctx.scheduler->removeEventListener(eventListener);
|
|
43
|
-
}
|
|
44
|
-
if (keyboardEventDataUpdater_) {
|
|
45
|
-
keyboardEventDataUpdater_ = nullptr;
|
|
46
|
-
}
|
|
47
|
-
if (auto nativeReanimatedModule = weakNativeReanimatedModule_.lock()) {
|
|
48
|
-
nativeReanimatedModule->invalidate();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
void ReanimatedModule::installTurboModule(facebook::jsi::Runtime &rt) {
|
|
53
|
-
if (!m_ctx.taskExecutor->isOnTaskThread(rnoh::TaskThread::JS)) {
|
|
54
|
-
DLOG(ERROR) << "react_worklets reanimated installTurboModule failed,because of current thread is not js;";
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
auto runMainThreadFuc = [weakExecutor = std::weak_ptr(m_ctx.taskExecutor)](TaskExecutor::Task &&task) {
|
|
59
|
-
if (auto taskExecutor = weakExecutor.lock()) {
|
|
60
|
-
taskExecutor->runTask(TaskThread::MAIN, std::move(task));
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
auto nodesManager = std::make_shared<ReanimatedNodesManager>(runMainThreadFuc);
|
|
64
|
-
|
|
65
|
-
auto maybeFlushUIUpdatesQueueFunction = [nodesManager]() { nodesManager->maybeFlushUIUpdatesQueue(); };
|
|
66
|
-
auto requestRender = [weakSelf = weak_from_this(), nodesManager](std::function<void(double)> onRender) {
|
|
67
|
-
auto self = weakSelf.lock();
|
|
68
|
-
if (!self) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
nodesManager->postOnAnimation(
|
|
73
|
-
[weakReanimatedModule = self->weakNativeReanimatedModule_, onRender = std::move(onRender)](auto frameTime) {
|
|
74
|
-
if (auto reanimatedModule = weakReanimatedModule.lock()) {
|
|
75
|
-
onRender(frameTime);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
auto getAnimationTimestamp = getMillisSinceEpoch;
|
|
81
|
-
|
|
82
|
-
auto synchronouslyUpdateUIPropsFunction = [weakInstance = m_ctx.instance](Tag tag, const folly::dynamic &dynamic) {
|
|
83
|
-
auto instance = weakInstance.lock();
|
|
84
|
-
auto instanceCapi = std::dynamic_pointer_cast<RNInstanceCAPI>(instance);
|
|
85
|
-
if (!instanceCapi) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
auto componentInstance = instanceCapi->findComponentInstanceByTag(tag);
|
|
89
|
-
if (!componentInstance) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// We want to restore the ignored props after the update,
|
|
94
|
-
// because reanimated handles setting correct props on React renders on its own
|
|
95
|
-
auto ignoredProps = componentInstance->getIgnoredPropKeys();
|
|
96
|
-
instanceCapi->synchronouslyUpdateViewOnUIThread(tag, dynamic);
|
|
97
|
-
componentInstance->setIgnoredPropKeys(std::move(ignoredProps));
|
|
98
|
-
};
|
|
99
|
-
auto sensorContainer = std::make_shared<ReanimatedSensorContainer>();
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
auto registerSensorFunction = [sensorContainer,
|
|
103
|
-
runMainThreadFuc](int sensorType, int interval, int iosReferenceFrame,
|
|
104
|
-
std::function<void(double[], int)> setter) -> int {
|
|
105
|
-
return sensorContainer->registerSensor(sensorType, interval, iosReferenceFrame, setter, runMainThreadFuc);
|
|
106
|
-
};
|
|
107
|
-
auto unregisterSensorFunction = [sensorContainer](int sensorId) { sensorContainer->unregisterSensor(sensorId); };
|
|
108
|
-
auto subscribeForKeyboardEventsFunction =
|
|
109
|
-
[weakSelf = weak_from_this()](std::function<void(int keyboardState, int height)> keyboardEventDataUpdater,
|
|
110
|
-
bool isStatusBarTranslucent, bool isNavigationBarTranslucent) {
|
|
111
|
-
auto self = weakSelf.lock();
|
|
112
|
-
if (!self) {
|
|
113
|
-
return 0;
|
|
114
|
-
}
|
|
115
|
-
self->keyboardEventDataUpdater_ = std::move(keyboardEventDataUpdater);
|
|
116
|
-
auto weakExecutor = std::weak_ptr(self->m_ctx.taskExecutor);
|
|
117
|
-
if (auto taskExecutor = weakExecutor.lock()) {
|
|
118
|
-
taskExecutor->runTask(TaskThread::MAIN, [ctx = self->m_ctx, isStatusBarTranslucent]() {
|
|
119
|
-
ArkJS arkJs(ctx.env);
|
|
120
|
-
// arkJs.createBoolean(isStatusBarTranslucent);
|
|
121
|
-
auto napiTurboModuleObject = arkJs.getObject(ctx.arkTSTurboModuleInstanceRef);
|
|
122
|
-
napiTurboModuleObject.call("subscribeKeyBordListeners", {});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
return 0;
|
|
126
|
-
};
|
|
127
|
-
auto unsubscribeFromKeyboardEventsFunction = [weakSelf = weak_from_this()](int listenerId) {
|
|
128
|
-
auto self = weakSelf.lock();
|
|
129
|
-
if (!self) {
|
|
130
|
-
return 0;
|
|
131
|
-
}
|
|
132
|
-
auto weakExecutor = std::weak_ptr(self->m_ctx.taskExecutor);
|
|
133
|
-
if (auto taskExecutor = weakExecutor.lock()) {
|
|
134
|
-
taskExecutor->runTask(TaskThread::MAIN, [ctx = self->m_ctx]() {
|
|
135
|
-
ArkJS arkJs(ctx.env);
|
|
136
|
-
auto napiTurboModuleObject = arkJs.getObject(ctx.arkTSTurboModuleInstanceRef);
|
|
137
|
-
napiTurboModuleObject.call("unsubscribeKeyBordListeners", {});
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
return 0;
|
|
141
|
-
};
|
|
142
|
-
auto setGestureStateFunction = [weakSelf = weak_from_this()](int handlerTag, int newState) {
|
|
143
|
-
auto self = weakSelf.lock();
|
|
144
|
-
if (!self) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
ArkJS arkJs(self->m_ctx.env);
|
|
148
|
-
auto napiTag = arkJs.createInt(handlerTag);
|
|
149
|
-
auto napiState = arkJs.createInt(newState);
|
|
150
|
-
auto napiTurboModuleObject = arkJs.getObject(self->m_ctx.arkTSTurboModuleInstanceRef);
|
|
151
|
-
napiTurboModuleObject.call("setGestureHandlerState", {napiTag, napiState});
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
PlatformDepMethodsHolder platformDepMethodsHolder = {
|
|
155
|
-
requestRender,
|
|
156
|
-
synchronouslyUpdateUIPropsFunction,
|
|
157
|
-
getAnimationTimestamp,
|
|
158
|
-
registerSensorFunction,
|
|
159
|
-
unregisterSensorFunction,
|
|
160
|
-
setGestureStateFunction,
|
|
161
|
-
subscribeForKeyboardEventsFunction,
|
|
162
|
-
unsubscribeFromKeyboardEventsFunction,
|
|
163
|
-
maybeFlushUIUpdatesQueueFunction,
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
1
|
+
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
+
// Use of this source code is governed by a MIT license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
#include "RNOH/ArkTSTurboModule.h"
|
|
6
|
+
#include "RNOH/RNInstance.h"
|
|
7
|
+
#include "ReanimatedModule.h"
|
|
8
|
+
#include "ReanimatedSensorContainer.h"
|
|
9
|
+
#include "ReanimatedUIScheduler.h"
|
|
10
|
+
#include "PlatformDepMethodsHolder.h"
|
|
11
|
+
#include "WorkletRuntimeCollector.h"
|
|
12
|
+
#include "RNRuntimeDecorator.h"
|
|
13
|
+
#include "TransformParser.h"
|
|
14
|
+
#include "RNOH/RNInstanceCAPI.h"
|
|
15
|
+
#include "WorkletsModule.h"
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
using namespace reanimated;
|
|
19
|
+
using namespace worklets;
|
|
20
|
+
namespace rnoh {
|
|
21
|
+
static double getMillisSinceEpoch() {
|
|
22
|
+
auto now = std::chrono::high_resolution_clock::now();
|
|
23
|
+
auto frameTime = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch());
|
|
24
|
+
return frameTime.count();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
jsi::Value installTurboModule(facebook::jsi::Runtime &rt, react::TurboModule &turboModule,
|
|
28
|
+
const facebook::jsi::Value *args, size_t count) {
|
|
29
|
+
auto self = static_cast<ReanimatedModule *>(&turboModule);
|
|
30
|
+
self->installTurboModule(rt);
|
|
31
|
+
return facebook::jsi::Value(true);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
ReanimatedModule::ReanimatedModule(const ArkTSTurboModule::Context ctx, const std::string name)
|
|
35
|
+
: ArkTSTurboModule(ctx, name) {
|
|
36
|
+
methodMap_ = {{"installTurboModule", {0, rnoh::installTurboModule}}};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
ReanimatedModule::~ReanimatedModule() {
|
|
40
|
+
LOG(INFO) << "ReanimatedModule::~ReanimatedModule";
|
|
41
|
+
if (eventListener) {
|
|
42
|
+
m_ctx.scheduler->removeEventListener(eventListener);
|
|
43
|
+
}
|
|
44
|
+
if (keyboardEventDataUpdater_) {
|
|
45
|
+
keyboardEventDataUpdater_ = nullptr;
|
|
46
|
+
}
|
|
47
|
+
if (auto nativeReanimatedModule = weakNativeReanimatedModule_.lock()) {
|
|
48
|
+
nativeReanimatedModule->invalidate();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void ReanimatedModule::installTurboModule(facebook::jsi::Runtime &rt) {
|
|
53
|
+
if (!m_ctx.taskExecutor->isOnTaskThread(rnoh::TaskThread::JS)) {
|
|
54
|
+
DLOG(ERROR) << "react_worklets reanimated installTurboModule failed,because of current thread is not js;";
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
auto runMainThreadFuc = [weakExecutor = std::weak_ptr(m_ctx.taskExecutor)](TaskExecutor::Task &&task) {
|
|
59
|
+
if (auto taskExecutor = weakExecutor.lock()) {
|
|
60
|
+
taskExecutor->runTask(TaskThread::MAIN, std::move(task));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
auto nodesManager = std::make_shared<ReanimatedNodesManager>(runMainThreadFuc);
|
|
64
|
+
|
|
65
|
+
auto maybeFlushUIUpdatesQueueFunction = [nodesManager]() { nodesManager->maybeFlushUIUpdatesQueue(); };
|
|
66
|
+
auto requestRender = [weakSelf = weak_from_this(), nodesManager](std::function<void(double)> onRender) {
|
|
67
|
+
auto self = weakSelf.lock();
|
|
68
|
+
if (!self) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
nodesManager->postOnAnimation(
|
|
73
|
+
[weakReanimatedModule = self->weakNativeReanimatedModule_, onRender = std::move(onRender)](auto frameTime) {
|
|
74
|
+
if (auto reanimatedModule = weakReanimatedModule.lock()) {
|
|
75
|
+
onRender(frameTime);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
auto getAnimationTimestamp = getMillisSinceEpoch;
|
|
81
|
+
|
|
82
|
+
auto synchronouslyUpdateUIPropsFunction = [weakInstance = m_ctx.instance](Tag tag, const folly::dynamic &dynamic) {
|
|
83
|
+
auto instance = weakInstance.lock();
|
|
84
|
+
auto instanceCapi = std::dynamic_pointer_cast<RNInstanceCAPI>(instance);
|
|
85
|
+
if (!instanceCapi) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
auto componentInstance = instanceCapi->findComponentInstanceByTag(tag);
|
|
89
|
+
if (!componentInstance) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// We want to restore the ignored props after the update,
|
|
94
|
+
// because reanimated handles setting correct props on React renders on its own
|
|
95
|
+
auto ignoredProps = componentInstance->getIgnoredPropKeys();
|
|
96
|
+
instanceCapi->synchronouslyUpdateViewOnUIThread(tag, dynamic);
|
|
97
|
+
componentInstance->setIgnoredPropKeys(std::move(ignoredProps));
|
|
98
|
+
};
|
|
99
|
+
auto sensorContainer = std::make_shared<ReanimatedSensorContainer>();
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
auto registerSensorFunction = [sensorContainer,
|
|
103
|
+
runMainThreadFuc](int sensorType, int interval, int iosReferenceFrame,
|
|
104
|
+
std::function<void(double[], int)> setter) -> int {
|
|
105
|
+
return sensorContainer->registerSensor(sensorType, interval, iosReferenceFrame, setter, runMainThreadFuc);
|
|
106
|
+
};
|
|
107
|
+
auto unregisterSensorFunction = [sensorContainer](int sensorId) { sensorContainer->unregisterSensor(sensorId); };
|
|
108
|
+
auto subscribeForKeyboardEventsFunction =
|
|
109
|
+
[weakSelf = weak_from_this()](std::function<void(int keyboardState, int height)> keyboardEventDataUpdater,
|
|
110
|
+
bool isStatusBarTranslucent, bool isNavigationBarTranslucent) {
|
|
111
|
+
auto self = weakSelf.lock();
|
|
112
|
+
if (!self) {
|
|
113
|
+
return 0;
|
|
114
|
+
}
|
|
115
|
+
self->keyboardEventDataUpdater_ = std::move(keyboardEventDataUpdater);
|
|
116
|
+
auto weakExecutor = std::weak_ptr(self->m_ctx.taskExecutor);
|
|
117
|
+
if (auto taskExecutor = weakExecutor.lock()) {
|
|
118
|
+
taskExecutor->runTask(TaskThread::MAIN, [ctx = self->m_ctx, isStatusBarTranslucent]() {
|
|
119
|
+
ArkJS arkJs(ctx.env);
|
|
120
|
+
// arkJs.createBoolean(isStatusBarTranslucent);
|
|
121
|
+
auto napiTurboModuleObject = arkJs.getObject(ctx.arkTSTurboModuleInstanceRef);
|
|
122
|
+
napiTurboModuleObject.call("subscribeKeyBordListeners", {});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return 0;
|
|
126
|
+
};
|
|
127
|
+
auto unsubscribeFromKeyboardEventsFunction = [weakSelf = weak_from_this()](int listenerId) {
|
|
128
|
+
auto self = weakSelf.lock();
|
|
129
|
+
if (!self) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
auto weakExecutor = std::weak_ptr(self->m_ctx.taskExecutor);
|
|
133
|
+
if (auto taskExecutor = weakExecutor.lock()) {
|
|
134
|
+
taskExecutor->runTask(TaskThread::MAIN, [ctx = self->m_ctx]() {
|
|
135
|
+
ArkJS arkJs(ctx.env);
|
|
136
|
+
auto napiTurboModuleObject = arkJs.getObject(ctx.arkTSTurboModuleInstanceRef);
|
|
137
|
+
napiTurboModuleObject.call("unsubscribeKeyBordListeners", {});
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
};
|
|
142
|
+
auto setGestureStateFunction = [weakSelf = weak_from_this()](int handlerTag, int newState) {
|
|
143
|
+
auto self = weakSelf.lock();
|
|
144
|
+
if (!self) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
ArkJS arkJs(self->m_ctx.env);
|
|
148
|
+
auto napiTag = arkJs.createInt(handlerTag);
|
|
149
|
+
auto napiState = arkJs.createInt(newState);
|
|
150
|
+
auto napiTurboModuleObject = arkJs.getObject(self->m_ctx.arkTSTurboModuleInstanceRef);
|
|
151
|
+
napiTurboModuleObject.call("setGestureHandlerState", {napiTag, napiState});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
PlatformDepMethodsHolder platformDepMethodsHolder = {
|
|
155
|
+
requestRender,
|
|
156
|
+
synchronouslyUpdateUIPropsFunction,
|
|
157
|
+
getAnimationTimestamp,
|
|
158
|
+
registerSensorFunction,
|
|
159
|
+
unregisterSensorFunction,
|
|
160
|
+
setGestureStateFunction,
|
|
161
|
+
subscribeForKeyboardEventsFunction,
|
|
162
|
+
unsubscribeFromKeyboardEventsFunction,
|
|
163
|
+
maybeFlushUIUpdatesQueueFunction,
|
|
164
|
+
};
|
|
165
|
+
bool isReducedMotion = false; // ANIMATOR_DURATION_SCALE
|
|
166
|
+
m_ctx.taskExecutor->runSyncTask(TaskThread::MAIN,
|
|
167
|
+
[ctx = m_ctx, &isReducedMotion]() {
|
|
168
|
+
if (!ctx.arkTSTurboModuleInstanceRef) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
ArkJS arkJs(ctx.env);
|
|
172
|
+
auto napiTurboModuleObject =
|
|
173
|
+
arkJs.getObject(ctx.arkTSTurboModuleInstanceRef);
|
|
174
|
+
auto napiResult =
|
|
175
|
+
napiTurboModuleObject.call("isReducedMotionEnabled", {});
|
|
176
|
+
isReducedMotion = arkJs.getBoolean(napiResult);
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
auto workletsModule = [weakSelf = weak_from_this()]() -> std::shared_ptr<WorkletsModule> {
|
|
180
|
+
auto self = weakSelf.lock();
|
|
181
|
+
if (!self) {
|
|
182
|
+
return nullptr;
|
|
183
|
+
}
|
|
184
|
+
auto instance = self->m_ctx.instance.lock();
|
|
185
|
+
if (instance == nullptr) {
|
|
186
|
+
return nullptr;
|
|
187
|
+
}
|
|
188
|
+
return instance->getTurboModule<WorkletsModule>("WorkletsModule");
|
|
189
|
+
};
|
|
190
|
+
auto reanimatedModuleProxy = std::make_shared<ReanimatedModuleProxy>(
|
|
191
|
+
workletsModule()->getWorkletsModuleProxy(), rt, jsInvoker_, platformDepMethodsHolder, isReducedMotion);
|
|
192
|
+
reanimatedModuleProxy->init(platformDepMethodsHolder);
|
|
193
|
+
weakNativeReanimatedModule_ = reanimatedModuleProxy;
|
|
194
|
+
|
|
195
|
+
ReanimatedPerformOperations reanimatedPerformOperations = [weakNativeReanimatedModule =
|
|
196
|
+
weakNativeReanimatedModule_]() {
|
|
197
|
+
if (auto nativeReanimatedModule = weakNativeReanimatedModule.lock()) {
|
|
198
|
+
nativeReanimatedModule->performOperations(false);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
nodesManager->registerPerformOperations(reanimatedPerformOperations);
|
|
202
|
+
|
|
203
|
+
WorkletRuntimeCollector::install(rt);
|
|
204
|
+
auto &uiRuntime = workletsModule()->getWorkletsModuleProxy()->getUIWorkletRuntime()->getJSIRuntime();
|
|
205
|
+
|
|
206
|
+
RNRuntimeDecorator::decorate(rt, uiRuntime, reanimatedModuleProxy);
|
|
207
|
+
injectDependencies(rt);
|
|
208
|
+
|
|
209
|
+
eventListener = std::make_shared<facebook::react::EventListener>(
|
|
210
|
+
[weakNativeReanimatedModule = weakNativeReanimatedModule_,
|
|
211
|
+
weakTaskExecutor = std::weak_ptr{m_ctx.taskExecutor}](facebook::react::RawEvent const &rawEvent) {
|
|
212
|
+
auto taskExecutor = weakTaskExecutor.lock();
|
|
213
|
+
auto nativeReanimatedModule = weakNativeReanimatedModule.lock();
|
|
214
|
+
if (!nativeReanimatedModule || !taskExecutor || !taskExecutor->isOnTaskThread(TaskThread::MAIN)) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
auto eventType = rawEvent.type;
|
|
219
|
+
auto frameTime = getMillisSinceEpoch();
|
|
220
|
+
|
|
221
|
+
// React Native prefixes event names with "top". If the event name starts with "on", the result is that the
|
|
222
|
+
// event on the native side is prefixed with "topOn", while the JS side expects the event name to be without
|
|
223
|
+
// the "on" prefix.
|
|
224
|
+
if (eventType.rfind("topOn", 0) == 0) {
|
|
225
|
+
auto eventCopy = rawEvent;
|
|
226
|
+
eventCopy.type = "on" + eventType.substr(5);
|
|
227
|
+
return nativeReanimatedModule->handleRawEvent(eventCopy, frameTime);
|
|
228
|
+
} else if (eventType.rfind("topLayout", 0) == 0) { // 针对onLayout事件,不阻断,采用系统处理
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
return nativeReanimatedModule->handleRawEvent(rawEvent, frameTime);
|
|
232
|
+
});
|
|
233
|
+
m_ctx.scheduler->addEventListener(eventListener);
|
|
234
|
+
}
|
|
235
|
+
void ReanimatedModule::injectDependencies(facebook::jsi::Runtime & /* rt */) {
|
|
236
|
+
const auto uiManager = m_ctx.scheduler->getUIManager();
|
|
237
|
+
if (auto nativeReanimatedModule = weakNativeReanimatedModule_.lock()) {
|
|
238
|
+
nativeReanimatedModule->initializeFabric(uiManager);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
void ReanimatedModule::callKeyBord(double height, int status) {
|
|
243
|
+
if (keyboardEventDataUpdater_) {
|
|
244
|
+
keyboardEventDataUpdater_(status, height);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
234
247
|
} // namespace rnoh
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
-
// Use of this source code is governed by a MIT license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include "RNOH/ArkTSTurboModule.h"
|
|
8
|
-
#include "ReanimatedModuleProxy.h"
|
|
9
|
-
#include "ReanimatedNodesManager.h"
|
|
10
|
-
|
|
11
|
-
namespace rnoh {
|
|
12
|
-
class JSI_EXPORT ReanimatedModule : public std::enable_shared_from_this<ReanimatedModule>, public ArkTSTurboModule {
|
|
13
|
-
public:
|
|
14
|
-
ReanimatedModule(const ArkTSTurboModule::Context ctx, const std::string name);
|
|
15
|
-
~ReanimatedModule() override;
|
|
16
|
-
void installTurboModule(facebook::jsi::Runtime &rt);
|
|
17
|
-
void callKeyBord(double height, int status);
|
|
18
|
-
private:
|
|
19
|
-
std::weak_ptr<reanimated::ReanimatedModuleProxy> weakNativeReanimatedModule_;
|
|
20
|
-
void injectDependencies(facebook::jsi::Runtime &rt);
|
|
21
|
-
std::shared_ptr<facebook::react::EventListener> eventListener;
|
|
22
|
-
std::function<void(int keyboardState, int height)> keyboardEventDataUpdater_;
|
|
23
|
-
};
|
|
1
|
+
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
+
// Use of this source code is governed by a MIT license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "RNOH/ArkTSTurboModule.h"
|
|
8
|
+
#include "ReanimatedModuleProxy.h"
|
|
9
|
+
#include "ReanimatedNodesManager.h"
|
|
10
|
+
|
|
11
|
+
namespace rnoh {
|
|
12
|
+
class JSI_EXPORT ReanimatedModule : public std::enable_shared_from_this<ReanimatedModule>, public ArkTSTurboModule {
|
|
13
|
+
public:
|
|
14
|
+
ReanimatedModule(const ArkTSTurboModule::Context ctx, const std::string name);
|
|
15
|
+
~ReanimatedModule() override;
|
|
16
|
+
void installTurboModule(facebook::jsi::Runtime &rt);
|
|
17
|
+
void callKeyBord(double height, int status);
|
|
18
|
+
private:
|
|
19
|
+
std::weak_ptr<reanimated::ReanimatedModuleProxy> weakNativeReanimatedModule_;
|
|
20
|
+
void injectDependencies(facebook::jsi::Runtime &rt);
|
|
21
|
+
std::shared_ptr<facebook::react::EventListener> eventListener;
|
|
22
|
+
std::function<void(int keyboardState, int height)> keyboardEventDataUpdater_;
|
|
23
|
+
};
|
|
24
24
|
} // namespace rnoh
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
-
// Use of this source code is governed by a MIT license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#include "ReanimatedNodesManager.h"
|
|
6
|
-
|
|
7
|
-
constexpr int64_t NANO_TO_MILLIS = 1000000;
|
|
8
|
-
|
|
9
|
-
namespace rnoh {
|
|
10
|
-
static void vsyncHandleCallback(long long timestamp, void *data)
|
|
11
|
-
{
|
|
12
|
-
auto self = static_cast<ReanimatedNodesManager *>(data);
|
|
13
|
-
self->onAnimationFrame(timestamp);
|
|
14
|
-
}
|
|
15
|
-
ReanimatedNodesManager::ReanimatedNodesManager(std::function<void(TaskExecutor::Task &&)> runOnTheMainThread)
|
|
16
|
-
: m_vsyncHandle("ReanimatedNodesManager"), runOnTheMainThread(std::move(runOnTheMainThread))
|
|
17
|
-
{}
|
|
18
|
-
|
|
19
|
-
void ReanimatedNodesManager::maybeFlushUIUpdatesQueue()
|
|
20
|
-
{
|
|
21
|
-
performOperations();
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
void ReanimatedNodesManager::registerPerformOperations(ReanimatedPerformOperations reanimatedPerformOperations)
|
|
25
|
-
{
|
|
26
|
-
performOperations = std::move(reanimatedPerformOperations);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
void ReanimatedNodesManager::postOnAnimation(ReanimatedOnAnimationCallback callback)
|
|
30
|
-
{
|
|
31
|
-
LOG(INFO)<<"react_work reanimated------>postOnAnimation";
|
|
32
|
-
onAnimationCallbacks.push_back(std::move(callback));
|
|
33
|
-
m_vsyncHandle.requestFrame(vsyncHandleCallback, this);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
void ReanimatedNodesManager::operationBatchDidComplete()
|
|
37
|
-
{
|
|
38
|
-
performOperations();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
void ReanimatedNodesManager::onAnimationFrame(int64_t timestamp)
|
|
42
|
-
{
|
|
43
|
-
runOnTheMainThread([weakSelf = weak_from_this(), timestamp]() {
|
|
44
|
-
auto self = weakSelf.lock();
|
|
45
|
-
if (!self) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
std::vector<ReanimatedOnAnimationCallback> callbacks;
|
|
49
|
-
std::swap(callbacks, self->onAnimationCallbacks);
|
|
50
|
-
|
|
51
|
-
for (auto &callback : callbacks) {
|
|
52
|
-
callback(timestamp / NANO_TO_MILLIS);
|
|
53
|
-
}
|
|
54
|
-
self->performOperations();
|
|
55
|
-
});
|
|
56
|
-
}
|
|
1
|
+
// Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
|
|
2
|
+
// Use of this source code is governed by a MIT license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
#include "ReanimatedNodesManager.h"
|
|
6
|
+
|
|
7
|
+
constexpr int64_t NANO_TO_MILLIS = 1000000;
|
|
8
|
+
|
|
9
|
+
namespace rnoh {
|
|
10
|
+
static void vsyncHandleCallback(long long timestamp, void *data)
|
|
11
|
+
{
|
|
12
|
+
auto self = static_cast<ReanimatedNodesManager *>(data);
|
|
13
|
+
self->onAnimationFrame(timestamp);
|
|
14
|
+
}
|
|
15
|
+
ReanimatedNodesManager::ReanimatedNodesManager(std::function<void(TaskExecutor::Task &&)> runOnTheMainThread)
|
|
16
|
+
: m_vsyncHandle("ReanimatedNodesManager"), runOnTheMainThread(std::move(runOnTheMainThread))
|
|
17
|
+
{}
|
|
18
|
+
|
|
19
|
+
void ReanimatedNodesManager::maybeFlushUIUpdatesQueue()
|
|
20
|
+
{
|
|
21
|
+
performOperations();
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
void ReanimatedNodesManager::registerPerformOperations(ReanimatedPerformOperations reanimatedPerformOperations)
|
|
25
|
+
{
|
|
26
|
+
performOperations = std::move(reanimatedPerformOperations);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void ReanimatedNodesManager::postOnAnimation(ReanimatedOnAnimationCallback callback)
|
|
30
|
+
{
|
|
31
|
+
LOG(INFO)<<"react_work reanimated------>postOnAnimation";
|
|
32
|
+
onAnimationCallbacks.push_back(std::move(callback));
|
|
33
|
+
m_vsyncHandle.requestFrame(vsyncHandleCallback, this);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void ReanimatedNodesManager::operationBatchDidComplete()
|
|
37
|
+
{
|
|
38
|
+
performOperations();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void ReanimatedNodesManager::onAnimationFrame(int64_t timestamp)
|
|
42
|
+
{
|
|
43
|
+
runOnTheMainThread([weakSelf = weak_from_this(), timestamp]() {
|
|
44
|
+
auto self = weakSelf.lock();
|
|
45
|
+
if (!self) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
std::vector<ReanimatedOnAnimationCallback> callbacks;
|
|
49
|
+
std::swap(callbacks, self->onAnimationCallbacks);
|
|
50
|
+
|
|
51
|
+
for (auto &callback : callbacks) {
|
|
52
|
+
callback(timestamp / NANO_TO_MILLIS);
|
|
53
|
+
}
|
|
54
|
+
self->performOperations();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
57
|
} // namespace rnoh
|