react-native-reanimated 3.8.0 → 3.9.0-layout-animation-experimental
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/Common/cpp/Fabric/ShadowTreeCloner.cpp +5 -2
- package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.cpp +42 -32
- package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.h +5 -7
- package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +565 -0
- package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.h +74 -0
- package/Common/cpp/LayoutAnimations/LayoutAnimationsUtils.h +140 -0
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +216 -58
- package/Common/cpp/NativeModules/NativeReanimatedModule.h +32 -11
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +2 -17
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.h +6 -8
- package/Common/cpp/ReanimatedRuntime/RNRuntimeDecorator.cpp +3 -0
- package/Common/cpp/ReanimatedRuntime/WorkletRuntime.cpp +3 -4
- package/Common/cpp/ReanimatedRuntime/WorkletRuntimeDecorator.cpp +8 -3
- package/Common/cpp/SharedItems/Shareables.cpp +31 -5
- package/Common/cpp/SharedItems/Shareables.h +18 -2
- package/Common/cpp/Tools/JSScheduler.cpp +29 -5
- package/Common/cpp/Tools/JSScheduler.h +21 -4
- package/Common/cpp/Tools/PlatformDepMethodsHolder.h +6 -2
- package/Common/cpp/Tools/UIRuntimeDecorator.cpp +6 -0
- package/Common/cpp/Tools/UIRuntimeDecorator.h +1 -0
- package/android/CMakeLists.txt +3 -0
- package/android/build.gradle +17 -5
- package/android/src/main/cpp/NativeProxy.cpp +77 -12
- package/android/src/main/cpp/NativeProxy.h +35 -1
- package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +58 -19
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedPackage.java +7 -2
- package/android/src/{reactNativeVersionPatch/ReanimatedUIManager/latest → main/java}/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +5 -5
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +10 -6
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +18 -1
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java +105 -17
- package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensor.java +2 -1
- package/android/src/paper/java/com/swmansion/reanimated/NativeReanimatedModuleSpec.java +37 -0
- package/android/src/{main/java/com/swmansion/reanimated → reactNativeVersionPatch/ReanimatedUIManager/73/com/swmansion}/ReanimatedModule.java +4 -3
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/{70 → 73}/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +1 -22
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/ReanimatedModule.java +176 -0
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +0 -26
- package/android/src/{fabric/java → reactNativeVersionPatch/RuntimeExecutor/73}/com/swmansion/reanimated/NativeProxy.java +16 -4
- package/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java +143 -0
- package/apple/LayoutReanimation/REAAnimationsManager.h +3 -0
- package/apple/LayoutReanimation/REAAnimationsManager.m +11 -0
- package/apple/LayoutReanimation/REASharedTransitionManager.m +99 -23
- package/apple/LayoutReanimation/REASnapshot.h +1 -0
- package/apple/LayoutReanimation/REASnapshot.m +78 -37
- package/apple/REAModule.h +22 -2
- package/apple/REAModule.mm +97 -46
- package/apple/REANodesManager.h +3 -3
- package/apple/REANodesManager.mm +46 -22
- package/apple/native/NativeProxy.h +28 -2
- package/apple/native/NativeProxy.mm +65 -195
- package/apple/native/PlatformDepMethodsHolderImpl.h +59 -0
- package/apple/native/PlatformDepMethodsHolderImpl.mm +429 -0
- package/apple/sensor/ReanimatedSensor.m +5 -5
- package/lib/module/Animated.js.map +1 -1
- package/lib/module/ConfigHelper.js +1 -1
- package/lib/module/ConfigHelper.js.map +1 -1
- package/lib/module/animationBuilder.js +1 -0
- package/lib/module/animationBuilder.js.map +1 -1
- package/lib/module/createAnimatedComponent/InlinePropManager.js +4 -4
- package/lib/module/createAnimatedComponent/InlinePropManager.js.map +1 -1
- package/lib/module/createAnimatedComponent/JSPropsUpdater.js +9 -6
- package/lib/module/createAnimatedComponent/JSPropsUpdater.js.map +1 -1
- package/lib/module/createAnimatedComponent/JSPropsUpdater.web.js +11 -0
- package/lib/module/createAnimatedComponent/JSPropsUpdater.web.js.map +1 -0
- package/lib/module/createAnimatedComponent/PropsFilter.js +25 -9
- package/lib/module/createAnimatedComponent/PropsFilter.js.map +1 -1
- package/lib/module/createAnimatedComponent/commonTypes.js.map +1 -1
- package/lib/module/createAnimatedComponent/createAnimatedComponent.js +83 -52
- package/lib/module/createAnimatedComponent/createAnimatedComponent.js.map +1 -1
- package/lib/module/createAnimatedComponent/getViewInfo.js +37 -0
- package/lib/module/createAnimatedComponent/getViewInfo.js.map +1 -0
- package/lib/module/createAnimatedComponent/index.js.map +1 -1
- package/lib/module/createAnimatedComponent/setAndForwardRef.js +4 -5
- package/lib/module/createAnimatedComponent/setAndForwardRef.js.map +1 -1
- package/lib/module/createAnimatedComponent/utils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -2
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/mock.js +12 -12
- package/lib/module/mock.js.map +1 -1
- package/lib/module/propsAllowlists.js.map +1 -1
- package/lib/module/reanimated2/Bezier.js.map +1 -1
- package/lib/module/reanimated2/Colors.js +4 -11
- package/lib/module/reanimated2/Colors.js.map +1 -1
- package/lib/module/reanimated2/Easing.js +3 -7
- package/lib/module/reanimated2/Easing.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +16 -13
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/index.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/index.web.js.map +1 -1
- package/lib/module/reanimated2/PlatformChecker.js +2 -1
- package/lib/module/reanimated2/PlatformChecker.js.map +1 -1
- package/lib/module/reanimated2/PropAdapters.js +1 -1
- package/lib/module/reanimated2/PropAdapters.js.map +1 -1
- package/lib/module/reanimated2/PropsRegistry.js +1 -2
- package/lib/module/reanimated2/PropsRegistry.js.map +1 -1
- package/lib/module/reanimated2/Sensor.js +2 -2
- package/lib/module/reanimated2/Sensor.js.map +1 -1
- package/lib/module/reanimated2/SensorContainer.js +2 -2
- package/lib/module/reanimated2/SensorContainer.js.map +1 -1
- package/lib/module/reanimated2/UpdateLayoutAnimations.js +30 -8
- package/lib/module/reanimated2/UpdateLayoutAnimations.js.map +1 -1
- package/lib/module/reanimated2/UpdateProps.js.map +1 -1
- package/lib/module/reanimated2/ViewDescriptorsSet.js.map +1 -1
- package/lib/module/reanimated2/WorkletEventHandler.js +74 -31
- package/lib/module/reanimated2/WorkletEventHandler.js.map +1 -1
- package/lib/module/reanimated2/animation/clamp.js.map +1 -1
- package/lib/module/reanimated2/animation/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/animation/decay/decay.js.map +1 -1
- package/lib/module/reanimated2/animation/decay/index.js.map +1 -1
- package/lib/module/reanimated2/animation/decay/rigidDecay.js.map +1 -1
- package/lib/module/reanimated2/animation/decay/rubberBandDecay.js.map +1 -1
- package/lib/module/reanimated2/animation/decay/utils.js.map +1 -1
- package/lib/module/reanimated2/animation/delay.js.map +1 -1
- package/lib/module/reanimated2/animation/index.js.map +1 -1
- package/lib/module/reanimated2/animation/repeat.js +1 -6
- package/lib/module/reanimated2/animation/repeat.js.map +1 -1
- package/lib/module/reanimated2/animation/sequence.js +1 -5
- package/lib/module/reanimated2/animation/sequence.js.map +1 -1
- package/lib/module/reanimated2/animation/spring.js.map +1 -1
- package/lib/module/reanimated2/animation/springUtils.js +8 -10
- package/lib/module/reanimated2/animation/springUtils.js.map +1 -1
- package/lib/module/reanimated2/animation/styleAnimation.js +5 -4
- package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
- package/lib/module/reanimated2/animation/timing.js +4 -1
- package/lib/module/reanimated2/animation/timing.js.map +1 -1
- package/lib/module/reanimated2/animation/transformationMatrix/matrixUtils.js +1 -2
- package/lib/module/reanimated2/animation/transformationMatrix/matrixUtils.js.map +1 -1
- package/lib/module/reanimated2/animation/util.js +22 -2
- package/lib/module/reanimated2/animation/util.js.map +1 -1
- package/lib/module/reanimated2/commonTypes.js +3 -1
- package/lib/module/reanimated2/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/component/FlatList.js +1 -0
- package/lib/module/reanimated2/component/FlatList.js.map +1 -1
- package/lib/module/reanimated2/component/Image.js +1 -0
- package/lib/module/reanimated2/component/Image.js.map +1 -1
- package/lib/module/reanimated2/component/LayoutAnimationConfig.js +1 -0
- package/lib/module/reanimated2/component/LayoutAnimationConfig.js.map +1 -1
- package/lib/module/reanimated2/component/PerformanceMonitor.js +169 -0
- package/lib/module/reanimated2/component/PerformanceMonitor.js.map +1 -0
- package/lib/module/reanimated2/component/ScrollView.js +1 -0
- package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
- package/lib/module/reanimated2/component/Text.js +1 -0
- package/lib/module/reanimated2/component/Text.js.map +1 -1
- package/lib/module/reanimated2/component/View.js +1 -0
- package/lib/module/reanimated2/component/View.js.map +1 -1
- package/lib/module/reanimated2/core.js +6 -15
- package/lib/module/reanimated2/core.js.map +1 -1
- package/lib/module/reanimated2/errors.js +8 -8
- package/lib/module/reanimated2/errors.js.map +1 -1
- package/lib/module/reanimated2/fabricUtils.js +33 -8
- package/lib/module/reanimated2/fabricUtils.js.map +1 -1
- package/lib/module/reanimated2/fabricUtils.web.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +2 -2
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/index.js.map +1 -1
- package/lib/module/reanimated2/globals.d.js.map +1 -1
- package/lib/module/reanimated2/helperTypes.js.map +1 -1
- package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/hook/index.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +1 -0
- package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +3 -4
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedProps.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedReaction.js +1 -0
- package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedRef.js +12 -7
- package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js +3 -1
- package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedStyle.js +3 -6
- package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
- package/lib/module/reanimated2/hook/useDerivedValue.js +3 -1
- package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
- package/lib/module/reanimated2/hook/useEvent.js +4 -5
- package/lib/module/reanimated2/hook/useEvent.js.map +1 -1
- package/lib/module/reanimated2/hook/useFrameCallback.js +1 -2
- package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
- package/lib/module/reanimated2/hook/useHandler.js +3 -1
- package/lib/module/reanimated2/hook/useHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useReducedMotion.js.map +1 -1
- package/lib/module/reanimated2/hook/useScrollViewOffset.js +60 -16
- package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
- package/lib/module/reanimated2/hook/useSharedValue.js.map +1 -1
- package/lib/module/reanimated2/hook/useWorkletCallback.js.map +1 -1
- package/lib/module/reanimated2/hook/utils.js.map +1 -1
- package/lib/module/reanimated2/index.js +2 -0
- package/lib/module/reanimated2/index.js.map +1 -1
- package/lib/module/reanimated2/initializers.js +1 -5
- package/lib/module/reanimated2/initializers.js.map +1 -1
- package/lib/module/reanimated2/interpolateColor.js +2 -6
- package/lib/module/reanimated2/interpolateColor.js.map +1 -1
- package/lib/module/reanimated2/interpolation.js +1 -1
- package/lib/module/reanimated2/interpolation.js.map +1 -1
- package/lib/module/reanimated2/isSharedValue.js.map +1 -1
- package/lib/module/reanimated2/jestUtils.js +3 -6
- package/lib/module/reanimated2/jestUtils.js.map +1 -1
- package/lib/module/reanimated2/jestUtils.web.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js +5 -9
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/WebSensor.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/index.js +2 -2
- package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/react-native-web.d.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +4 -2
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +12 -11
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +12 -10
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js +11 -4
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +22 -22
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js +22 -22
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js +26 -26
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +10 -10
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +6 -6
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +10 -10
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +18 -18
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +18 -18
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +10 -10
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +34 -34
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +17 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/ProgressTransitionManager.js +16 -12
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/ProgressTransitionManager.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/SharedTransition.js +13 -7
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/SharedTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/SharedTransition.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Bounce.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Fade.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Flip.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Lightspeed.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Pinwheel.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Roll.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Rotate.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Slide.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Stretch.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animation/Zoom.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animationParser.js +0 -2
- package/lib/module/reanimated2/layoutReanimation/web/animationParser.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/animationsManager.js +1 -2
- package/lib/module/reanimated2/layoutReanimation/web/animationsManager.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/componentStyle.js +3 -1
- package/lib/module/reanimated2/layoutReanimation/web/componentStyle.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/componentUtils.js +6 -7
- package/lib/module/reanimated2/layoutReanimation/web/componentUtils.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/config.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/createAnimation.js +2 -2
- package/lib/module/reanimated2/layoutReanimation/web/createAnimation.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/domUtils.js +4 -4
- package/lib/module/reanimated2/layoutReanimation/web/domUtils.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/transition/Fading.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/transition/Linear.web.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/web/transition/Sequenced.web.js.map +1 -1
- package/lib/module/reanimated2/mappers.js +2 -4
- package/lib/module/reanimated2/mappers.js.map +1 -1
- package/lib/module/reanimated2/mockedRequestAnimationFrame.js.map +1 -1
- package/lib/module/reanimated2/mutables.js +2 -4
- package/lib/module/reanimated2/mutables.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/RNRenderer.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/jsVersion.js +1 -1
- package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/dispatchCommand.js +2 -4
- package/lib/module/reanimated2/platformFunctions/dispatchCommand.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/dispatchCommand.web.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/getRelativeCoords.js +2 -2
- package/lib/module/reanimated2/platformFunctions/getRelativeCoords.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/index.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/measure.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/measure.web.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/scrollTo.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/scrollTo.web.js +1 -1
- package/lib/module/reanimated2/platformFunctions/scrollTo.web.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/setGestureState.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/setGestureState.web.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/setNativeProps.js.map +1 -1
- package/lib/module/reanimated2/platformFunctions/setNativeProps.web.js.map +1 -1
- package/lib/module/reanimated2/pluginUtils.js.map +1 -1
- package/lib/module/reanimated2/publicGlobals.js.map +1 -1
- package/lib/module/reanimated2/runtimes.js +11 -19
- package/lib/module/reanimated2/runtimes.js.map +1 -1
- package/lib/module/reanimated2/screenTransition/RNScreensTurboModule.js +20 -0
- package/lib/module/reanimated2/screenTransition/RNScreensTurboModule.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/animationManager.js +41 -0
- package/lib/module/reanimated2/screenTransition/animationManager.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/commonTypes.js +4 -0
- package/lib/module/reanimated2/screenTransition/commonTypes.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/index.js +5 -0
- package/lib/module/reanimated2/screenTransition/index.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/presets.js +157 -0
- package/lib/module/reanimated2/screenTransition/presets.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/styleUpdater.js +62 -0
- package/lib/module/reanimated2/screenTransition/styleUpdater.js.map +1 -0
- package/lib/module/reanimated2/screenTransition/swipeSimulator.js +190 -0
- package/lib/module/reanimated2/screenTransition/swipeSimulator.js.map +1 -0
- package/lib/module/reanimated2/shareableMappingCache.js.map +1 -1
- package/lib/module/reanimated2/shareables.js +27 -10
- package/lib/module/reanimated2/shareables.js.map +1 -1
- package/lib/module/reanimated2/threads.js +9 -34
- package/lib/module/reanimated2/threads.js.map +1 -1
- package/lib/module/reanimated2/valueSetter.js +1 -2
- package/lib/module/reanimated2/valueSetter.js.map +1 -1
- package/lib/module/reanimated2/valueUnpacker.js +4 -3
- package/lib/module/reanimated2/valueUnpacker.js.map +1 -1
- package/lib/module/specs/NativeReanimatedModule.js +5 -0
- package/lib/module/specs/NativeReanimatedModule.js.map +1 -0
- package/lib/typescript/ConfigHelper.d.ts +1 -0
- package/lib/typescript/createAnimatedComponent/InlinePropManager.d.ts +1 -1
- package/lib/typescript/createAnimatedComponent/JSPropsUpdater.web.d.ts +6 -0
- package/lib/typescript/createAnimatedComponent/PropsFilter.d.ts +3 -0
- package/lib/typescript/createAnimatedComponent/getViewInfo.d.ts +9 -0
- package/lib/typescript/reanimated2/NativeReanimated/NativeReanimated.d.ts +8 -13
- package/lib/typescript/reanimated2/UpdateLayoutAnimations.d.ts +12 -1
- package/lib/typescript/reanimated2/WorkletEventHandler.d.ts +16 -9
- package/lib/typescript/reanimated2/animation/util.d.ts +2 -0
- package/lib/typescript/reanimated2/component/LayoutAnimationConfig.d.ts +1 -1
- package/lib/typescript/reanimated2/component/PerformanceMonitor.d.ts +2 -0
- package/lib/typescript/reanimated2/core.d.ts +3 -4
- package/lib/typescript/reanimated2/hook/commonTypes.d.ts +6 -0
- package/lib/typescript/reanimated2/hook/useEvent.d.ts +2 -3
- package/lib/typescript/reanimated2/hook/useScrollViewOffset.d.ts +3 -1
- package/lib/typescript/reanimated2/index.d.ts +3 -0
- package/lib/typescript/reanimated2/js-reanimated/JSReanimated.d.ts +2 -2
- package/lib/typescript/reanimated2/layoutReanimation/animationBuilder/commonTypes.d.ts +2 -1
- package/lib/typescript/reanimated2/layoutReanimation/sharedTransitions/ProgressTransitionManager.d.ts +2 -2
- package/lib/typescript/reanimated2/layoutReanimation/sharedTransitions/SharedTransition.d.ts +2 -2
- package/lib/typescript/reanimated2/platform-specific/jsVersion.d.ts +1 -1
- package/lib/typescript/reanimated2/screenTransition/RNScreensTurboModule.d.ts +2 -0
- package/lib/typescript/reanimated2/screenTransition/animationManager.d.ts +3 -0
- package/lib/typescript/reanimated2/screenTransition/commonTypes.d.ts +38 -0
- package/lib/typescript/reanimated2/screenTransition/index.d.ts +3 -0
- package/lib/typescript/reanimated2/screenTransition/presets.d.ts +11 -0
- package/lib/typescript/reanimated2/screenTransition/styleUpdater.d.ts +3 -0
- package/lib/typescript/reanimated2/screenTransition/swipeSimulator.d.ts +2 -0
- package/lib/typescript/specs/NativeReanimatedModule.d.ts +6 -0
- package/package.json +29 -17
- package/plugin/build/plugin.js +7 -2
- package/src/ConfigHelper.ts +1 -1
- package/src/animationBuilder.tsx +2 -0
- package/src/createAnimatedComponent/InlinePropManager.ts +2 -2
- package/src/createAnimatedComponent/JSPropsUpdater.ts +7 -6
- package/src/createAnimatedComponent/JSPropsUpdater.web.ts +26 -0
- package/src/createAnimatedComponent/PropsFilter.tsx +31 -6
- package/src/createAnimatedComponent/createAnimatedComponent.tsx +108 -60
- package/src/createAnimatedComponent/getViewInfo.ts +39 -0
- package/src/mock.ts +13 -1
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +33 -35
- package/src/reanimated2/PlatformChecker.ts +3 -2
- package/src/reanimated2/PropsRegistry.ts +1 -3
- package/src/reanimated2/UpdateLayoutAnimations.ts +53 -13
- package/src/reanimated2/WorkletEventHandler.ts +98 -39
- package/src/reanimated2/animation/styleAnimation.ts +8 -6
- package/src/reanimated2/animation/timing.ts +9 -1
- package/src/reanimated2/animation/util.ts +28 -3
- package/src/reanimated2/commonTypes.ts +4 -1
- package/src/reanimated2/component/PerformanceMonitor.tsx +216 -0
- package/src/reanimated2/core.ts +9 -31
- package/src/reanimated2/errors.ts +1 -0
- package/src/reanimated2/fabricUtils.ts +43 -18
- package/src/reanimated2/globals.d.ts +11 -1
- package/src/reanimated2/hook/commonTypes.ts +10 -0
- package/src/reanimated2/hook/useAnimatedRef.ts +20 -11
- package/src/reanimated2/hook/useEvent.ts +4 -4
- package/src/reanimated2/hook/useScrollViewOffset.ts +94 -23
- package/src/reanimated2/index.ts +11 -0
- package/src/reanimated2/js-reanimated/JSReanimated.ts +7 -7
- package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +4 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +9 -1
- package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +9 -1
- package/src/reanimated2/layoutReanimation/animationsManager.ts +10 -2
- package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +13 -0
- package/src/reanimated2/layoutReanimation/sharedTransitions/ProgressTransitionManager.ts +17 -8
- package/src/reanimated2/layoutReanimation/sharedTransitions/SharedTransition.ts +26 -7
- package/src/reanimated2/layoutReanimation/web/animationsManager.ts +1 -1
- package/src/reanimated2/layoutReanimation/web/componentStyle.ts +3 -1
- package/src/reanimated2/layoutReanimation/web/componentUtils.ts +1 -1
- package/src/reanimated2/layoutReanimation/web/createAnimation.ts +2 -2
- package/src/reanimated2/platform-specific/jsVersion.ts +1 -1
- package/src/reanimated2/platformFunctions/getRelativeCoords.ts +2 -2
- package/src/reanimated2/screenTransition/RNScreensTurboModule.ts +29 -0
- package/src/reanimated2/screenTransition/animationManager.ts +45 -0
- package/src/reanimated2/screenTransition/commonTypes.ts +63 -0
- package/src/reanimated2/screenTransition/index.ts +12 -0
- package/src/reanimated2/screenTransition/presets.ts +137 -0
- package/src/reanimated2/screenTransition/styleUpdater.ts +73 -0
- package/src/reanimated2/screenTransition/swipeSimulator.ts +238 -0
- package/src/reanimated2/shareables.ts +29 -6
- package/src/reanimated2/valueUnpacker.ts +10 -3
- package/src/specs/NativeReanimatedModule.ts +9 -0
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/70/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +0 -16
- package/android/src/reactNativeVersionPatch/messageQueueThread/67/com/swmansion/reanimated/ReanimatedMessageQueueThread.java +0 -12
|
@@ -8,8 +8,12 @@ import android.view.ViewParent;
|
|
|
8
8
|
import com.facebook.react.bridge.ReactContext;
|
|
9
9
|
import com.facebook.react.uimanager.IllegalViewOperationException;
|
|
10
10
|
import com.facebook.react.uimanager.PixelUtil;
|
|
11
|
+
import com.facebook.react.uimanager.UIManagerHelper;
|
|
11
12
|
import com.facebook.react.uimanager.ViewGroupManager;
|
|
12
13
|
import com.facebook.react.uimanager.ViewManager;
|
|
14
|
+
import com.facebook.react.uimanager.events.Event;
|
|
15
|
+
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
16
|
+
import com.facebook.react.uimanager.events.EventDispatcherListener;
|
|
13
17
|
import com.facebook.react.views.view.ReactViewGroup;
|
|
14
18
|
import com.swmansion.reanimated.Utils;
|
|
15
19
|
import java.util.ArrayList;
|
|
@@ -19,6 +23,8 @@ import java.util.HashSet;
|
|
|
19
23
|
import java.util.List;
|
|
20
24
|
import java.util.Map;
|
|
21
25
|
import java.util.Set;
|
|
26
|
+
import java.util.SortedSet;
|
|
27
|
+
import java.util.TreeSet;
|
|
22
28
|
import javax.annotation.Nullable;
|
|
23
29
|
|
|
24
30
|
public class SharedTransitionManager {
|
|
@@ -29,6 +35,7 @@ public class SharedTransitionManager {
|
|
|
29
35
|
private final Map<Integer, Integer> mSharedTransitionInParentIndex = new HashMap<>();
|
|
30
36
|
private final Map<Integer, Snapshot> mSnapshotRegistry = new HashMap<>();
|
|
31
37
|
private final Map<Integer, View> mCurrentSharedTransitionViews = new HashMap<>();
|
|
38
|
+
private final Map<Integer, SortedSet<Integer>> mSharedViewChildrenIndices = new HashMap<>();
|
|
32
39
|
private View mTransitionContainer;
|
|
33
40
|
private final List<View> mRemovedSharedViews = new ArrayList<>();
|
|
34
41
|
private final Set<Integer> mViewTagsToHide = new HashSet<>();
|
|
@@ -38,6 +45,25 @@ public class SharedTransitionManager {
|
|
|
38
45
|
private final List<SharedElement> mSharedElementsWithProgress = new ArrayList<>();
|
|
39
46
|
private final List<SharedElement> mSharedElementsWithAnimation = new ArrayList<>();
|
|
40
47
|
private final Set<View> mReattachedViews = new HashSet<>();
|
|
48
|
+
private boolean mIsTransitionPrepared = false;
|
|
49
|
+
private final Set<Integer> mTagsToCleanup = new HashSet<>();
|
|
50
|
+
|
|
51
|
+
class TopWillAppearListener implements EventDispatcherListener {
|
|
52
|
+
private final EventDispatcher mEventDispatcher;
|
|
53
|
+
|
|
54
|
+
public TopWillAppearListener(EventDispatcher eventDispatcher) {
|
|
55
|
+
mEventDispatcher = eventDispatcher;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@Override
|
|
59
|
+
public void onEventDispatch(Event event) {
|
|
60
|
+
if (event.getEventName().equals("topWillAppear")) {
|
|
61
|
+
tryStartSharedTransitionForViews(mAddedSharedViews, true);
|
|
62
|
+
mAddedSharedViews.clear();
|
|
63
|
+
mEventDispatcher.removeListener(this);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
41
67
|
|
|
42
68
|
public SharedTransitionManager(AnimationsManager animationsManager) {
|
|
43
69
|
mAnimationsManager = animationsManager;
|
|
@@ -56,13 +82,22 @@ public class SharedTransitionManager {
|
|
|
56
82
|
return mCurrentSharedTransitionViews.get(tag);
|
|
57
83
|
}
|
|
58
84
|
|
|
59
|
-
protected void screenDidLayout() {
|
|
60
|
-
|
|
61
|
-
|
|
85
|
+
protected void screenDidLayout(View view) {
|
|
86
|
+
if (mAddedSharedViews.isEmpty()) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
EventDispatcher eventDispatcher =
|
|
90
|
+
UIManagerHelper.getEventDispatcherForReactTag(
|
|
91
|
+
(ReactContext) view.getContext(), view.getId());
|
|
92
|
+
if (eventDispatcher != null) {
|
|
93
|
+
eventDispatcher.addListener(new TopWillAppearListener(eventDispatcher));
|
|
94
|
+
}
|
|
62
95
|
}
|
|
63
96
|
|
|
64
97
|
protected void viewDidLayout(View view) {
|
|
65
|
-
|
|
98
|
+
// this was causing problems when I moved the start of transition to the willAppear event
|
|
99
|
+
// handler
|
|
100
|
+
// maybeRestartAnimationWithNewLayout(view);
|
|
66
101
|
}
|
|
67
102
|
|
|
68
103
|
protected void onViewsRemoval(int[] tagsToDelete) {
|
|
@@ -72,11 +107,11 @@ public class SharedTransitionManager {
|
|
|
72
107
|
visitTreeForTags(tagsToDelete, new SnapshotTreeVisitor());
|
|
73
108
|
if (mRemovedSharedViews.size() > 0) {
|
|
74
109
|
// this happens when navigation goes back
|
|
75
|
-
|
|
76
|
-
if (!
|
|
110
|
+
mIsTransitionPrepared = prepareSharedTransition(mRemovedSharedViews, false);
|
|
111
|
+
if (!mIsTransitionPrepared) {
|
|
77
112
|
mRemovedSharedViews.clear();
|
|
78
113
|
}
|
|
79
|
-
visitTreeForTags(tagsToDelete, new
|
|
114
|
+
visitTreeForTags(tagsToDelete, new PrepareConfigCleanupTreeVisitor());
|
|
80
115
|
}
|
|
81
116
|
}
|
|
82
117
|
|
|
@@ -141,8 +176,7 @@ public class SharedTransitionManager {
|
|
|
141
176
|
sharedElementsToRestart, LayoutAnimations.Types.SHARED_ELEMENT_TRANSITION);
|
|
142
177
|
}
|
|
143
178
|
|
|
144
|
-
|
|
145
|
-
List<View> sharedViews, boolean withNewElements) {
|
|
179
|
+
protected boolean prepareSharedTransition(List<View> sharedViews, boolean withNewElements) {
|
|
146
180
|
if (sharedViews.isEmpty()) {
|
|
147
181
|
return false;
|
|
148
182
|
}
|
|
@@ -155,11 +189,43 @@ public class SharedTransitionManager {
|
|
|
155
189
|
setupTransitionContainer();
|
|
156
190
|
reparentSharedViewsForCurrentTransition(sharedElements);
|
|
157
191
|
orderByAnimationTypes(sharedElements);
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
protected void onScreenWillDisappear() {
|
|
196
|
+
if (!mIsTransitionPrepared) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
mIsTransitionPrepared = false;
|
|
200
|
+
for (SharedElement sharedElement : mSharedElementsWithAnimation) {
|
|
201
|
+
sharedElement.targetViewSnapshot = new Snapshot(sharedElement.targetView);
|
|
202
|
+
}
|
|
203
|
+
for (SharedElement sharedElement : mSharedElementsWithProgress) {
|
|
204
|
+
sharedElement.targetViewSnapshot = new Snapshot(sharedElement.targetView);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
startPreparedTransitions();
|
|
208
|
+
|
|
209
|
+
for (Integer tag : mTagsToCleanup) {
|
|
210
|
+
mNativeMethodsHolder.clearAnimationConfig(tag);
|
|
211
|
+
}
|
|
212
|
+
mTagsToCleanup.clear();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
private boolean tryStartSharedTransitionForViews(
|
|
216
|
+
List<View> sharedViews, boolean withNewElements) {
|
|
217
|
+
if (!prepareSharedTransition(sharedViews, withNewElements)) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
startPreparedTransitions();
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
private void startPreparedTransitions() {
|
|
158
225
|
startSharedTransition(
|
|
159
226
|
mSharedElementsWithAnimation, LayoutAnimations.Types.SHARED_ELEMENT_TRANSITION);
|
|
160
227
|
startSharedTransition(
|
|
161
228
|
mSharedElementsWithProgress, LayoutAnimations.Types.SHARED_ELEMENT_TRANSITION_PROGRESS);
|
|
162
|
-
return true;
|
|
163
229
|
}
|
|
164
230
|
|
|
165
231
|
private void sortViewsByTags(List<View> views) {
|
|
@@ -334,14 +400,27 @@ public class SharedTransitionManager {
|
|
|
334
400
|
for (SharedElement sharedElement : sharedElements) {
|
|
335
401
|
View viewSource = sharedElement.sourceView;
|
|
336
402
|
if (!mSharedTransitionParent.containsKey(viewSource.getId())) {
|
|
403
|
+
ViewGroup parent = (ViewGroup) viewSource.getParent();
|
|
404
|
+
int parentTag = parent.getId();
|
|
405
|
+
int childIndex = parent.indexOfChild(viewSource);
|
|
337
406
|
mSharedTransitionParent.put(viewSource.getId(), (View) viewSource.getParent());
|
|
338
|
-
mSharedTransitionInParentIndex.put(
|
|
339
|
-
|
|
340
|
-
(
|
|
341
|
-
|
|
342
|
-
|
|
407
|
+
mSharedTransitionInParentIndex.put(viewSource.getId(), childIndex);
|
|
408
|
+
SortedSet<Integer> childrenIndicesSet = mSharedViewChildrenIndices.get(parentTag);
|
|
409
|
+
if (childrenIndicesSet == null) {
|
|
410
|
+
mSharedViewChildrenIndices.put(
|
|
411
|
+
parentTag, new TreeSet<>(Collections.singleton(childIndex)));
|
|
412
|
+
} else {
|
|
413
|
+
childrenIndicesSet.add(childIndex);
|
|
414
|
+
}
|
|
343
415
|
}
|
|
344
416
|
}
|
|
417
|
+
|
|
418
|
+
for (SharedElement sharedElement : sharedElements) {
|
|
419
|
+
View viewSource = sharedElement.sourceView;
|
|
420
|
+
((ViewGroup) viewSource.getParent()).removeView(viewSource);
|
|
421
|
+
((ViewGroup) mTransitionContainer).addView(viewSource);
|
|
422
|
+
mReattachedViews.add(viewSource);
|
|
423
|
+
}
|
|
345
424
|
}
|
|
346
425
|
|
|
347
426
|
private void startSharedTransition(List<SharedElement> sharedElements, int type) {
|
|
@@ -388,6 +467,15 @@ public class SharedTransitionManager {
|
|
|
388
467
|
View parentView = mSharedTransitionParent.get(viewTag);
|
|
389
468
|
int childIndex = mSharedTransitionInParentIndex.get(viewTag);
|
|
390
469
|
ViewGroup parentViewGroup = ((ViewGroup) parentView);
|
|
470
|
+
int parentTag = parentViewGroup.getId();
|
|
471
|
+
SortedSet<Integer> childIndicesSet = mSharedViewChildrenIndices.get(parentTag);
|
|
472
|
+
// here we calculate how many children with smaller indices have not been reinserted yet
|
|
473
|
+
int childIndexOffset = childIndicesSet.headSet(childIndex).size();
|
|
474
|
+
childIndicesSet.remove(childIndex);
|
|
475
|
+
if (childIndicesSet.isEmpty()) {
|
|
476
|
+
mSharedViewChildrenIndices.remove(parentTag);
|
|
477
|
+
}
|
|
478
|
+
childIndex -= childIndexOffset;
|
|
391
479
|
if (childIndex <= parentViewGroup.getChildCount()) {
|
|
392
480
|
parentViewGroup.addView(view, childIndex);
|
|
393
481
|
} else {
|
|
@@ -498,9 +586,9 @@ public class SharedTransitionManager {
|
|
|
498
586
|
}
|
|
499
587
|
}
|
|
500
588
|
|
|
501
|
-
class
|
|
589
|
+
class PrepareConfigCleanupTreeVisitor implements TreeVisitor {
|
|
502
590
|
public void run(View view) {
|
|
503
|
-
|
|
591
|
+
mTagsToCleanup.add(view.getId());
|
|
504
592
|
}
|
|
505
593
|
}
|
|
506
594
|
|
|
@@ -17,6 +17,7 @@ public class ReanimatedSensor {
|
|
|
17
17
|
Sensor sensor;
|
|
18
18
|
ReanimatedSensorType sensorType;
|
|
19
19
|
int interval;
|
|
20
|
+
private static final int DEFAULT_INTERVAL = 8;
|
|
20
21
|
|
|
21
22
|
ReanimatedSensor(
|
|
22
23
|
WeakReference<ReactApplicationContext> reactContext,
|
|
@@ -30,7 +31,7 @@ public class ReanimatedSensor {
|
|
|
30
31
|
(SensorManager) reactContext.get().getSystemService(reactContext.get().SENSOR_SERVICE);
|
|
31
32
|
this.sensorType = sensorType;
|
|
32
33
|
if (interval == -1) {
|
|
33
|
-
this.interval =
|
|
34
|
+
this.interval = DEFAULT_INTERVAL;
|
|
34
35
|
} else {
|
|
35
36
|
this.interval = interval;
|
|
36
37
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was copied from android/build/generated/source/codegen/java/com/swmansion/reanimated/NativeReanimatedModuleSpec.java
|
|
3
|
+
* which was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
|
9
|
+
*
|
|
10
|
+
* @nolint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
package com.swmansion.reanimated;
|
|
14
|
+
|
|
15
|
+
import com.facebook.proguard.annotations.DoNotStrip;
|
|
16
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
17
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
18
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
19
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
|
20
|
+
import javax.annotation.Nonnull;
|
|
21
|
+
|
|
22
|
+
public abstract class NativeReanimatedModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
|
23
|
+
public static final String NAME = "ReanimatedModule";
|
|
24
|
+
|
|
25
|
+
public NativeReanimatedModuleSpec(ReactApplicationContext reactContext) {
|
|
26
|
+
super(reactContext);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Override
|
|
30
|
+
public @Nonnull String getName() {
|
|
31
|
+
return NAME;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
35
|
+
@DoNotStrip
|
|
36
|
+
public abstract boolean installTurboModule(String valueUnpackerCode);
|
|
37
|
+
}
|
|
@@ -3,7 +3,6 @@ package com.swmansion.reanimated;
|
|
|
3
3
|
import android.util.Log;
|
|
4
4
|
import com.facebook.react.bridge.LifecycleEventListener;
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
7
6
|
import com.facebook.react.bridge.ReactMethod;
|
|
8
7
|
import com.facebook.react.module.annotations.ReactModule;
|
|
9
8
|
import com.facebook.react.uimanager.NativeViewHierarchyManager;
|
|
@@ -14,7 +13,7 @@ import java.util.ArrayList;
|
|
|
14
13
|
import javax.annotation.Nullable;
|
|
15
14
|
|
|
16
15
|
@ReactModule(name = ReanimatedModule.NAME)
|
|
17
|
-
public class ReanimatedModule extends
|
|
16
|
+
public class ReanimatedModule extends NativeReanimatedModuleSpec
|
|
18
17
|
implements LifecycleEventListener, UIManagerModuleListener {
|
|
19
18
|
|
|
20
19
|
public static final String NAME = "ReanimatedModule";
|
|
@@ -91,17 +90,19 @@ public class ReanimatedModule extends ReactContextBaseJavaModule
|
|
|
91
90
|
}
|
|
92
91
|
|
|
93
92
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
94
|
-
public
|
|
93
|
+
public boolean installTurboModule(String valueUnpackerCode) {
|
|
95
94
|
// When debugging in chrome the JS context is not available.
|
|
96
95
|
// https://github.com/facebook/react-native/blob/v0.67.0-rc.6/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java#L25
|
|
97
96
|
Utils.isChromeDebugger = getReactApplicationContext().getJavaScriptContextHolder().get() == 0;
|
|
98
97
|
|
|
99
98
|
if (!Utils.isChromeDebugger) {
|
|
100
99
|
this.getNodesManager().initWithContext(getReactApplicationContext(), valueUnpackerCode);
|
|
100
|
+
return true;
|
|
101
101
|
} else {
|
|
102
102
|
Log.w(
|
|
103
103
|
"[REANIMATED]",
|
|
104
104
|
"Unable to create Reanimated Native Module. You can ignore this message if you are using Chrome Debugger now.");
|
|
105
|
+
return false;
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
108
|
|
|
@@ -9,25 +9,8 @@ import com.facebook.react.bridge.ReadableArray;
|
|
|
9
9
|
import com.facebook.react.bridge.ReadableMap;
|
|
10
10
|
import com.facebook.react.bridge.WritableMap;
|
|
11
11
|
import com.facebook.react.module.annotations.ReactModule;
|
|
12
|
-
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
13
12
|
import java.util.List;
|
|
14
13
|
|
|
15
|
-
class ReaUiImplementationProvider extends UIImplementationProvider {
|
|
16
|
-
|
|
17
|
-
@Override
|
|
18
|
-
UIImplementation createUIImplementation(
|
|
19
|
-
ReactApplicationContext reactContext,
|
|
20
|
-
ViewManagerRegistry viewManagerRegistry,
|
|
21
|
-
EventDispatcher eventDispatcher,
|
|
22
|
-
int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
23
|
-
return new com.facebook.react.uimanager.ReanimatedUIImplementation(
|
|
24
|
-
reactContext,
|
|
25
|
-
viewManagerRegistry,
|
|
26
|
-
eventDispatcher,
|
|
27
|
-
minTimeLeftInFrameForNonBatchedOperationMs);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
14
|
@ReactModule(name = UIManagerModule.NAME)
|
|
32
15
|
public class ReanimatedUIManager extends UIManagerModule {
|
|
33
16
|
|
|
@@ -35,11 +18,7 @@ public class ReanimatedUIManager extends UIManagerModule {
|
|
|
35
18
|
ReactApplicationContext reactContext,
|
|
36
19
|
List<ViewManager> viewManagersList,
|
|
37
20
|
int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
38
|
-
super(
|
|
39
|
-
reactContext,
|
|
40
|
-
viewManagersList,
|
|
41
|
-
new ReaUiImplementationProvider(),
|
|
42
|
-
minTimeLeftInFrameForNonBatchedOperationMs);
|
|
21
|
+
super(reactContext, viewManagersList, minTimeLeftInFrameForNonBatchedOperationMs);
|
|
43
22
|
}
|
|
44
23
|
|
|
45
24
|
public void onBatchComplete() {
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
package com.swmansion.reanimated;
|
|
2
|
+
|
|
3
|
+
import android.util.Log;
|
|
4
|
+
import androidx.annotation.NonNull;
|
|
5
|
+
import com.facebook.react.bridge.LifecycleEventListener;
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
8
|
+
import com.facebook.react.bridge.UIManager;
|
|
9
|
+
import com.facebook.react.bridge.UIManagerListener;
|
|
10
|
+
import com.facebook.react.fabric.FabricUIManager;
|
|
11
|
+
import com.facebook.react.module.annotations.ReactModule;
|
|
12
|
+
import com.facebook.react.uimanager.UIManagerModule;
|
|
13
|
+
import com.facebook.react.uimanager.UIManagerModuleListener;
|
|
14
|
+
import java.util.ArrayList;
|
|
15
|
+
import javax.annotation.Nullable;
|
|
16
|
+
|
|
17
|
+
@ReactModule(name = ReanimatedModule.NAME)
|
|
18
|
+
public class ReanimatedModule extends NativeReanimatedModuleSpec
|
|
19
|
+
implements LifecycleEventListener, UIManagerModuleListener,
|
|
20
|
+
UIManagerListener {
|
|
21
|
+
public static final String NAME = "ReanimatedModule";
|
|
22
|
+
|
|
23
|
+
public void didDispatchMountItems(@NonNull UIManager uiManager) {
|
|
24
|
+
// Keep: Required for UIManagerListener
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public void didMountItems(@NonNull UIManager uiManager) {
|
|
28
|
+
// Keep: Required for UIManagerListener
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public void didScheduleMountItems(@NonNull UIManager uiManager) {
|
|
32
|
+
// Keep: Required for UIManagerListener
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public void willDispatchViewUpdates(@NonNull UIManager uiManager) {
|
|
36
|
+
// This method is called for the interface of UIManagerListener on Fabric.
|
|
37
|
+
// The below function with the same name won't be called.
|
|
38
|
+
if (mOperations.isEmpty()) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
final ArrayList<UIThreadOperation> operations = mOperations;
|
|
42
|
+
mOperations = new ArrayList<>();
|
|
43
|
+
if (uiManager instanceof FabricUIManager) {
|
|
44
|
+
((FabricUIManager)uiManager).addUIBlock(uiBlockViewResolver -> {
|
|
45
|
+
NodesManager nodesManager = getNodesManager();
|
|
46
|
+
for (UIThreadOperation operation : operations) {
|
|
47
|
+
operation.execute(nodesManager);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
throw new RuntimeException(
|
|
52
|
+
"[Reanimated] Failed to obtain instance of FabricUIManager.");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public void willMountItems(@NonNull UIManager uiManager) {}
|
|
57
|
+
|
|
58
|
+
private interface UIThreadOperation {
|
|
59
|
+
void execute(NodesManager nodesManager);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private ArrayList<UIThreadOperation> mOperations = new ArrayList<>();
|
|
63
|
+
private @Nullable NodesManager mNodesManager;
|
|
64
|
+
|
|
65
|
+
public ReanimatedModule(ReactApplicationContext reactContext) {
|
|
66
|
+
super(reactContext);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@Override
|
|
70
|
+
public void initialize() {
|
|
71
|
+
ReactApplicationContext reactCtx = getReactApplicationContext();
|
|
72
|
+
|
|
73
|
+
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
74
|
+
UIManager uiManager = reactCtx.getFabricUIManager();
|
|
75
|
+
if (uiManager instanceof FabricUIManager) {
|
|
76
|
+
((FabricUIManager)uiManager).addUIManagerEventListener(this);
|
|
77
|
+
} else {
|
|
78
|
+
throw new RuntimeException(
|
|
79
|
+
"[Reanimated] Failed to obtain instance of FabricUIManager.");
|
|
80
|
+
}
|
|
81
|
+
} else {
|
|
82
|
+
UIManagerModule uiManager =
|
|
83
|
+
reactCtx.getNativeModule(UIManagerModule.class);
|
|
84
|
+
uiManager.addUIManagerListener(this);
|
|
85
|
+
}
|
|
86
|
+
reactCtx.addLifecycleEventListener(this);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@Override
|
|
90
|
+
public void onHostPause() {
|
|
91
|
+
if (mNodesManager != null) {
|
|
92
|
+
mNodesManager.onHostPause();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@Override
|
|
97
|
+
public void onHostResume() {
|
|
98
|
+
if (mNodesManager != null) {
|
|
99
|
+
mNodesManager.onHostResume();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@Override
|
|
104
|
+
public void onHostDestroy() {
|
|
105
|
+
// do nothing
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@Override
|
|
109
|
+
public void willDispatchViewUpdates(final UIManagerModule uiManager) {
|
|
110
|
+
// This method is called for the interface of UIManagerModuleListener on
|
|
111
|
+
// Paper. The below function with the same name won't be called.
|
|
112
|
+
if (mOperations.isEmpty()) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
final ArrayList<UIThreadOperation> operations = mOperations;
|
|
116
|
+
mOperations = new ArrayList<>();
|
|
117
|
+
uiManager.addUIBlock(nativeViewHierarchyManager -> {
|
|
118
|
+
NodesManager nodesManager = getNodesManager();
|
|
119
|
+
for (UIThreadOperation operation : operations) {
|
|
120
|
+
operation.execute(nodesManager);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@Override
|
|
126
|
+
public String getName() {
|
|
127
|
+
return NAME;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/*package*/
|
|
131
|
+
public NodesManager getNodesManager() {
|
|
132
|
+
if (mNodesManager == null) {
|
|
133
|
+
mNodesManager = new NodesManager(getReactApplicationContext());
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return mNodesManager;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
140
|
+
public boolean installTurboModule(String valueUnpackerCode) {
|
|
141
|
+
// When debugging in chrome the JS context is not available.
|
|
142
|
+
// https://github.com/facebook/react-native/blob/v0.67.0-rc.6/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java#L25
|
|
143
|
+
Utils.isChromeDebugger =
|
|
144
|
+
getReactApplicationContext().getJavaScriptContextHolder().get() == 0;
|
|
145
|
+
|
|
146
|
+
if (!Utils.isChromeDebugger) {
|
|
147
|
+
this.getNodesManager().initWithContext(
|
|
148
|
+
getReactApplicationContext(), valueUnpackerCode);
|
|
149
|
+
return true;
|
|
150
|
+
} else {
|
|
151
|
+
Log.w(
|
|
152
|
+
"[REANIMATED]",
|
|
153
|
+
"Unable to create Reanimated Native Module. You can ignore this message if you are using Chrome Debugger now.");
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@ReactMethod
|
|
159
|
+
public void addListener(String eventName) {
|
|
160
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@ReactMethod
|
|
164
|
+
public void removeListeners(Integer count) {
|
|
165
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@Override
|
|
169
|
+
public void invalidate() {
|
|
170
|
+
super.invalidate();
|
|
171
|
+
|
|
172
|
+
if (mNodesManager != null) {
|
|
173
|
+
mNodesManager.invalidate();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -90,32 +90,6 @@ public class ReanimatedUIManager extends UIManagerModule {
|
|
|
90
90
|
super.setChildren(viewTag, childrenTags);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
/**
|
|
94
|
-
* Replaces the View specified by oldTag with the View specified by newTag within oldTag's parent.
|
|
95
|
-
* This resolves to a simple {@link #manageChildren} call, but React doesn't have enough info in
|
|
96
|
-
* JS to formulate it itself.
|
|
97
|
-
*
|
|
98
|
-
* @deprecated This method will not be available in Fabric UIManager class.
|
|
99
|
-
*/
|
|
100
|
-
@ReactMethod
|
|
101
|
-
@Deprecated
|
|
102
|
-
public void replaceExistingNonRootView(int oldTag, int newTag) {
|
|
103
|
-
super.replaceExistingNonRootView(oldTag, newTag);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Method which takes a container tag and then releases all subviews for that container upon
|
|
108
|
-
* receipt.
|
|
109
|
-
*
|
|
110
|
-
* @param containerTag the tag of the container for which the subviews must be removed
|
|
111
|
-
* @deprecated This method will not be available in Fabric UIManager class.
|
|
112
|
-
*/
|
|
113
|
-
@ReactMethod
|
|
114
|
-
@Deprecated
|
|
115
|
-
public void removeSubviewsFromContainerWithID(int containerTag) {
|
|
116
|
-
super.removeSubviewsFromContainerWithID(containerTag);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
93
|
/**
|
|
120
94
|
* Determines the location on screen, width, and height of the given view and returns the values
|
|
121
95
|
* via an async callback.
|
|
@@ -69,36 +69,48 @@ public class NativeProxy extends NativeProxyCommon {
|
|
|
69
69
|
public static NativeMethodsHolder createNativeMethodsHolder(LayoutAnimations layoutAnimations) {
|
|
70
70
|
return new NativeMethodsHolder() {
|
|
71
71
|
@Override
|
|
72
|
-
public void startAnimation(int tag, int type, HashMap<String, Object> values) {
|
|
72
|
+
public void startAnimation(int tag, int type, HashMap<String, Object> values) {
|
|
73
|
+
// NOT IMPLEMENTED
|
|
74
|
+
}
|
|
73
75
|
|
|
74
76
|
@Override
|
|
75
77
|
public boolean isLayoutAnimationEnabled() {
|
|
78
|
+
// NOT IMPLEMENTED
|
|
76
79
|
return false;
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
@Override
|
|
80
83
|
public int findPrecedingViewTagForTransition(int tag) {
|
|
84
|
+
// NOT IMPLEMENTED
|
|
81
85
|
return -1;
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
@Override
|
|
85
89
|
public boolean shouldAnimateExiting(int tag, boolean shouldAnimate) {
|
|
90
|
+
// NOT IMPLEMENTED
|
|
86
91
|
return false;
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
@Override
|
|
90
95
|
public boolean hasAnimation(int tag, int type) {
|
|
96
|
+
// NOT IMPLEMENTED
|
|
91
97
|
return false;
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
@Override
|
|
95
|
-
public void clearAnimationConfig(int tag) {
|
|
101
|
+
public void clearAnimationConfig(int tag) {
|
|
102
|
+
// NOT IMPLEMENTED
|
|
103
|
+
}
|
|
96
104
|
|
|
97
105
|
@Override
|
|
98
|
-
public void cancelAnimation(int tag) {
|
|
106
|
+
public void cancelAnimation(int tag) {
|
|
107
|
+
// NOT IMPLEMENTED
|
|
108
|
+
}
|
|
99
109
|
|
|
100
110
|
@Override
|
|
101
|
-
public void checkDuplicateSharedTag(int viewTag, int screenTag) {
|
|
111
|
+
public void checkDuplicateSharedTag(int viewTag, int screenTag) {
|
|
112
|
+
// NOT IMPLEMENTED
|
|
113
|
+
}
|
|
102
114
|
};
|
|
103
115
|
}
|
|
104
116
|
}
|