mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-13 22:43:59 +08:00
Native Animated - Allow events that are dispatched from any thread
Summary: Instead of preventing events from working when not on the UI Thread we can just dispatch to it instead. **Test plan** Tested manually that animated events still work in RNTester Closes https://github.com/facebook/react-native/pull/15953 Differential Revision: D5909816 Pulled By: shergin fbshipit-source-id: 48d02b6aa9f2bc3bcb638e8852fccaac3f205276
This commit is contained in:
committed by
Facebook Github Bot
parent
b694f96762
commit
3cbc36138a
@@ -361,12 +361,22 @@ import javax.annotation.Nullable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEventDispatch(Event event) {
|
||||
// Only support events dispatched from the UI thread.
|
||||
if (!UiThreadUtil.isOnUiThread()) {
|
||||
return;
|
||||
public void onEventDispatch(final Event event) {
|
||||
// Events can be dispatched from any thread so we have to make sure handleEvent is run from the
|
||||
// UI thread.
|
||||
if (UiThreadUtil.isOnUiThread()) {
|
||||
handleEvent(event);
|
||||
} else {
|
||||
UiThreadUtil.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
handleEvent(event);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void handleEvent(Event event) {
|
||||
if (!mEventDrivers.isEmpty()) {
|
||||
// If the event has a different name in native convert it to it's JS name.
|
||||
String eventName = mCustomEventNamesResolver.resolveCustomEventName(event.getEventName());
|
||||
|
||||
Reference in New Issue
Block a user