Files
react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.java
T
Christoph Nakazawa 95c7db90b8 Back out "[react-native][PR] Support Interpolation of strings when using native driver in Animated, fix Expected node to be marked as "native", optimize AnimatedNode creation and connections"
Summary: Original commit changeset: 82a948a95419

Reviewed By: TheSavior

Differential Revision: D14631845

fbshipit-source-id: f20d8150bccf50ea85388761e2f31ca4f97ae158
2019-03-26 17:13:11 -07:00

57 lines
1.3 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 javax.annotation.Nullable;
/**
* Basic type of animated node that maps directly from {@code Animated.Value(x)} of Animated.js
* library.
*/
/*package*/ class ValueAnimatedNode extends AnimatedNode {
/*package*/ double mValue = Double.NaN;
/*package*/ double mOffset = 0;
private @Nullable AnimatedNodeValueListener mValueListener;
public ValueAnimatedNode() {
// empty constructor that can be used by subclasses
}
public ValueAnimatedNode(ReadableMap config) {
mValue = config.getDouble("value");
mOffset = config.getDouble("offset");
}
public double getValue() {
return mOffset + mValue;
}
public void flattenOffset() {
mValue += mOffset;
mOffset = 0;
}
public void extractOffset() {
mOffset += mValue;
mValue = 0;
}
public void onValueUpdate() {
if (mValueListener == null) {
return;
}
mValueListener.onValueUpdate(getValue());
}
public void setValueListener(@Nullable AnimatedNodeValueListener listener) {
mValueListener = listener;
}
}