@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.
Files changed (235) hide show
  1. package/compatibility.json +161 -161
  2. package/harmony/reanimated/BuildProfile.ets +1 -1
  3. package/harmony/reanimated/build-profile.json5 +18 -18
  4. package/harmony/reanimated/hvigorfile.ts +4 -4
  5. package/harmony/reanimated/index.ets +4 -4
  6. package/harmony/reanimated/oh-package-lock.json5 +39 -0
  7. package/harmony/reanimated/oh-package.json5 +12 -12
  8. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +62 -62
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -94
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -45
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -111
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1380
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -230
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
  200. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
  201. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
  202. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
  203. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +246 -233
  204. package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
  205. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
  206. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
  207. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
  208. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
  209. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
  210. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
  211. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
  212. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
  213. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
  214. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
  215. package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
  216. package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
  217. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +62 -51
  218. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
  219. package/harmony/reanimated/src/main/module.json5 +12 -12
  220. package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
  221. package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
  222. package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
  223. package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
  224. package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
  225. package/harmony/reanimated/ts.ts +6 -6
  226. package/harmony/reanimated.har +0 -0
  227. package/package.json +70 -69
  228. package/scripts/deploy.js +191 -191
  229. package/scripts/set-reanimated-version.js +37 -37
  230. package/scripts/update-version.js +119 -119
  231. package/scripts/validate-react-native-version.js +46 -46
  232. package/scripts/validate-worklets-build.js +17 -17
  233. package/scripts/validate-worklets-version.js +84 -84
  234. package/scripts/worklets-version.json +4 -4
  235. 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
- auto isReducedMotion = false; // ANIMATOR_DURATION_SCALE
166
- auto workletsModule = [weakSelf = weak_from_this()]() -> std::shared_ptr<WorkletsModule> {
167
- auto self = weakSelf.lock();
168
- if (!self) {
169
- return nullptr;
170
- }
171
- auto instance = self->m_ctx.instance.lock();
172
- if (instance == nullptr) {
173
- return nullptr;
174
- }
175
- return instance->getTurboModule<WorkletsModule>("WorkletsModule");
176
- };
177
- auto reanimatedModuleProxy = std::make_shared<ReanimatedModuleProxy>(
178
- workletsModule()->getWorkletsModuleProxy(), rt, jsInvoker_, platformDepMethodsHolder, isReducedMotion);
179
- reanimatedModuleProxy->init(platformDepMethodsHolder);
180
- weakNativeReanimatedModule_ = reanimatedModuleProxy;
181
-
182
- ReanimatedPerformOperations reanimatedPerformOperations = [weakNativeReanimatedModule =
183
- weakNativeReanimatedModule_]() {
184
- if (auto nativeReanimatedModule = weakNativeReanimatedModule.lock()) {
185
- nativeReanimatedModule->performOperations(false);
186
- }
187
- };
188
- nodesManager->registerPerformOperations(reanimatedPerformOperations);
189
-
190
- WorkletRuntimeCollector::install(rt);
191
- auto &uiRuntime = workletsModule()->getWorkletsModuleProxy()->getUIWorkletRuntime()->getJSIRuntime();
192
-
193
- RNRuntimeDecorator::decorate(rt, uiRuntime, reanimatedModuleProxy);
194
- injectDependencies(rt);
195
-
196
- eventListener = std::make_shared<facebook::react::EventListener>(
197
- [weakNativeReanimatedModule = weakNativeReanimatedModule_,
198
- weakTaskExecutor = std::weak_ptr{m_ctx.taskExecutor}](facebook::react::RawEvent const &rawEvent) {
199
- auto taskExecutor = weakTaskExecutor.lock();
200
- auto nativeReanimatedModule = weakNativeReanimatedModule.lock();
201
- if (!nativeReanimatedModule || !taskExecutor || !taskExecutor->isOnTaskThread(TaskThread::MAIN)) {
202
- return false;
203
- }
204
-
205
- auto eventType = rawEvent.type;
206
- auto frameTime = getMillisSinceEpoch();
207
-
208
- // React Native prefixes event names with "top". If the event name starts with "on", the result is that the
209
- // event on the native side is prefixed with "topOn", while the JS side expects the event name to be without
210
- // the "on" prefix.
211
- if (eventType.rfind("topOn", 0) == 0) {
212
- auto eventCopy = rawEvent;
213
- eventCopy.type = "on" + eventType.substr(5);
214
- return nativeReanimatedModule->handleRawEvent(eventCopy, frameTime);
215
- } else if (eventType.rfind("topLayout", 0) == 0) { // 针对onLayout事件,不阻断,采用系统处理
216
- return false;
217
- }
218
- return nativeReanimatedModule->handleRawEvent(rawEvent, frameTime);
219
- });
220
- m_ctx.scheduler->addEventListener(eventListener);
221
- }
222
- void ReanimatedModule::injectDependencies(facebook::jsi::Runtime & /* rt */) {
223
- const auto uiManager = m_ctx.scheduler->getUIManager();
224
- if (auto nativeReanimatedModule = weakNativeReanimatedModule_.lock()) {
225
- nativeReanimatedModule->initializeFabric(uiManager);
226
- }
227
- }
228
-
229
- void ReanimatedModule::callKeyBord(double height, int status) {
230
- if (keyboardEventDataUpdater_) {
231
- keyboardEventDataUpdater_(status, height);
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