Skip to content

Conversation

@bartlomiejbloniarz
Copy link
Contributor

Summary:
To avoid timestamp representation bugs with different platforms passing the timestamp as a simple double, we now use std::chrono::duration<double, std::milli> to represent timestamps.

Changelog

[General] [Added] - AnimationTimestamp to UIManagerAnimationBackend
[General] [Changed] - updated AnimationBackend usages to use AnimationTimestamp

Differential Revision: D90505538

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jan 16, 2026
@facebook-github-bot facebook-github-bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Jan 16, 2026
@meta-codesync
Copy link

meta-codesync bot commented Jan 16, 2026

@bartlomiejbloniarz has exported this pull request. If you are a Meta employee, you can view the originating Diff in D90505538.

@github-actions
Copy link

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
react-native-github :private:react-native-fantom:buildFantomTester 9.0.0 Build Scan not published

Bartlomiej Bloniarz and others added 5 commits January 16, 2026 06:32
…imationBackend to its own DisplayLink on iOS" (#55103)

Summary:
Pull Request resolved: #55103

This diff decouples AnimationBackend from Animated. Now the backend is intialized in the Scheduler, from where it's passed to UIManager. Animation frontends (such as Animated) can then obtain a reference to the backend, and use it to schedule animation frame updates.

# Changelog
[General] [Changed] - Moved AnimationBackend initiailzation to `Scheduler`
[General] [Added] - `AnimationChoreographer` interface with an implementation for fantom tests

Differential Revision: D89663251

Reviewed By: zeyap
Summary:
Pull Request resolved: #55124

On Android AnimationBackend has now its own instance of the Choreographer that it interacts with.

# Changelog
[General] [Removed] - `UIManagerNativeAnimatedDelegateBackendImpl`
[General] [Added] - `AnimationBackendChoreographer`, `AndroidAnimationChoregrapher`

Differential Revision: D90327370
Summary:
Pull Request resolved: #55123

On iOS and macOS AnimationBackend has now its own instance of the DisplayLink that it interacts with (through `RCTAnimationChoreographer`).

# Changelog
[General] [Added] - `RCTAnimationChoreographer` to `RCTScheduler`

Differential Revision: D90327371
Summary:
Pull Request resolved: #55205

In `AnimationBackend` the start and stop methods can be called from both the JS and UI thread (Animated does that in some cases). To handle that both of these methods are guarded with a mutex. Also the list of callbacks is also guarded with the mutex.

# Changelog

[General] [Added] - `std::mutex` to `AnimationBackend` to protect `start`, `stop` and `callbacks`.

Differential Revision: D90505528
Summary:
Pull Request resolved: #55206

To avoid timestamp representation bugs with different platforms passing the timestamp as a simple double, we now use `std::chrono::duration<double, std::milli>` to represent timestamps.

# Changelog
[General] [Added] - `AnimationTimestamp` to `UIManagerAnimationBackend`
[General] [Changed] - updated `AnimationBackend` usages to use `AnimationTimestamp`

Differential Revision: D90505538
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook p: Software Mansion Partner: Software Mansion Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants