Skip to content

Commit 2348ffc

Browse files
Bartlomiej Bloniarzfacebook-github-bot
authored andcommitted
Init the backend closer to the uiManager
Differential Revision: D81138133
1 parent c9f8aed commit 2348ffc

4 files changed

Lines changed: 25 additions & 12 deletions

File tree

packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,12 @@ NativeAnimatedNodesManager::NativeAnimatedNodesManager(
8989
LOG(ERROR)
9090
<< "C++ Animated was setup without a way to update UI. Animations will not work.";
9191
}
92-
if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
93-
// shouldn't be initialized here, but it's convenient for now
94-
animationBackend_ = std::make_shared<AnimationBackend>(
95-
startOnRenderCallback_,
96-
stopOnRenderCallback_,
97-
directManipulationCallback_);
98-
}
9992
}
10093

94+
NativeAnimatedNodesManager::NativeAnimatedNodesManager(
95+
std::shared_ptr<AnimationBackend> animationBackend) noexcept
96+
: animationBackend_(animationBackend) {}
97+
10198
NativeAnimatedNodesManager::~NativeAnimatedNodesManager() noexcept {
10299
stopRenderCallbackIfNeeded();
103100
}

packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ class NativeAnimatedNodesManager {
6363
StartOnRenderCallback&& startOnRenderCallback = nullptr,
6464
StopOnRenderCallback&& stopOnRenderCallback = nullptr) noexcept;
6565

66+
NativeAnimatedNodesManager(
67+
std::shared_ptr<AnimationBackend> animationBackend) noexcept;
68+
6669
~NativeAnimatedNodesManager() noexcept;
6770

6871
template <

packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <react/featureflags/ReactNativeFeatureFlags.h>
1212
#include <react/renderer/animated/MergedValueDispatcher.h>
1313
#include <react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h>
14+
#include <react/renderer/animationbackend/AnimationBackend.h>
1415
#include <react/renderer/uimanager/UIManagerBinding.h>
1516

1617
namespace facebook::react {
@@ -64,11 +65,22 @@ NativeAnimatedNodesManagerProvider::getOrCreate(
6465
uiManager->synchronouslyUpdateViewOnUIThread(viewTag, props);
6566
};
6667

67-
nativeAnimatedNodesManager_ = std::make_shared<NativeAnimatedNodesManager>(
68-
std::move(directManipulationCallback),
69-
std::move(fabricCommitCallback),
70-
std::move(startOnRenderCallback_),
71-
std::move(stopOnRenderCallback_));
68+
if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
69+
animationBackend_ = std::make_shared<AnimationBackend>(
70+
startOnRenderCallback_,
71+
stopOnRenderCallback_,
72+
directManipulationCallback);
73+
74+
nativeAnimatedNodesManager_ =
75+
std::make_shared<NativeAnimatedNodesManager>(animationBackend_);
76+
} else {
77+
nativeAnimatedNodesManager_ =
78+
std::make_shared<NativeAnimatedNodesManager>(
79+
std::move(directManipulationCallback),
80+
std::move(fabricCommitCallback),
81+
std::move(startOnRenderCallback_),
82+
std::move(stopOnRenderCallback_));
83+
}
7284

7385
addEventEmitterListener(
7486
nativeAnimatedNodesManager_->getEventEmitterListener());

packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class NativeAnimatedNodesManagerProvider {
4646
std::shared_ptr<EventEmitterListener> getEventEmitterListener();
4747

4848
private:
49+
std::shared_ptr<AnimationBackend> animationBackend_;
4950
std::shared_ptr<NativeAnimatedNodesManager> nativeAnimatedNodesManager_;
5051

5152
std::shared_ptr<EventEmitterListenerContainer> eventEmitterListenerContainer_;

0 commit comments

Comments
 (0)