mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-04 10:55:04 +08:00
Summary: This change drops the year from the copyright headers and the LICENSE file. Reviewed By: yungsters Differential Revision: D9727774 fbshipit-source-id: df4fc1e4390733fe774b1a160dd41b4a3d83302a
51 lines
1.6 KiB
Java
51 lines
1.6 KiB
Java
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
package com.facebook.react.animated;
|
|
|
|
import com.facebook.react.bridge.ReadableMap;
|
|
import com.facebook.react.bridge.WritableArray;
|
|
import com.facebook.react.bridge.WritableMap;
|
|
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
|
|
import java.util.List;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
/**
|
|
* Handles updating a {@link ValueAnimatedNode} when an event gets dispatched.
|
|
*/
|
|
/* package */ class EventAnimationDriver implements RCTEventEmitter {
|
|
private List<String> mEventPath;
|
|
/* package */ ValueAnimatedNode mValueNode;
|
|
|
|
public EventAnimationDriver(List<String> eventPath, ValueAnimatedNode valueNode) {
|
|
mEventPath = eventPath;
|
|
mValueNode = valueNode;
|
|
}
|
|
|
|
@Override
|
|
public void receiveEvent(int targetTag, String eventName, @Nullable WritableMap event) {
|
|
if (event == null) {
|
|
throw new IllegalArgumentException("Native animated events must have event data.");
|
|
}
|
|
|
|
// Get the new value for the node by looking into the event map using the provided event path.
|
|
ReadableMap curMap = event;
|
|
for (int i = 0; i < mEventPath.size() - 1; i++) {
|
|
curMap = curMap.getMap(mEventPath.get(i));
|
|
}
|
|
|
|
mValueNode.mValue = curMap.getDouble(mEventPath.get(mEventPath.size() - 1));
|
|
}
|
|
|
|
@Override
|
|
public void receiveTouches(String eventName, WritableArray touches, WritableArray changedIndices) {
|
|
throw new RuntimeException("receiveTouches is not support by native animated events");
|
|
}
|
|
}
|