aboutsummaryrefslogtreecommitdiff
path: root/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java
diff options
context:
space:
mode:
Diffstat (limited to 'shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java')
-rw-r--r--shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java
new file mode 100644
index 000000000..21a292c89
--- /dev/null
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeInterpolator.java
@@ -0,0 +1,55 @@
+package org.robolectric.shadows;
+
+import static android.os.Build.VERSION_CODES.O;
+
+import android.graphics.Interpolator;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.nativeruntime.DefaultNativeRuntimeLoader;
+import org.robolectric.nativeruntime.InterpolatorNatives;
+import org.robolectric.shadows.ShadowNativeInterpolator.Picker;
+
+/** Shadow for {@link Interpolator} that is backed by native code */
+@Implements(value = Interpolator.class, minSdk = O, shadowPicker = Picker.class)
+public class ShadowNativeInterpolator {
+
+ @Implementation
+ protected static long nativeConstructor(int valueCount, int frameCount) {
+ DefaultNativeRuntimeLoader.injectAndLoad();
+ return InterpolatorNatives.nativeConstructor(valueCount, frameCount);
+ }
+
+ @Implementation
+ protected static void nativeDestructor(long nativeInstance) {
+ InterpolatorNatives.nativeDestructor(nativeInstance);
+ }
+
+ @Implementation
+ protected static void nativeReset(long nativeInstance, int valueCount, int frameCount) {
+ InterpolatorNatives.nativeReset(nativeInstance, valueCount, frameCount);
+ }
+
+ @Implementation
+ protected static void nativeSetKeyFrame(
+ long nativeInstance, int index, int msec, float[] values, float[] blend) {
+ InterpolatorNatives.nativeSetKeyFrame(nativeInstance, index, msec, values, blend);
+ }
+
+ @Implementation
+ protected static void nativeSetRepeatMirror(
+ long nativeInstance, float repeatCount, boolean mirror) {
+ InterpolatorNatives.nativeSetRepeatMirror(nativeInstance, repeatCount, mirror);
+ }
+
+ @Implementation
+ protected static int nativeTimeToValues(long nativeInstance, int msec, float[] values) {
+ return InterpolatorNatives.nativeTimeToValues(nativeInstance, msec, values);
+ }
+
+ /** Shadow picker for {@link Interpolator}. */
+ public static final class Picker extends GraphicsShadowPicker<Object> {
+ public Picker() {
+ super(null, ShadowNativeInterpolator.class);
+ }
+ }
+}