aboutsummaryrefslogtreecommitdiff
path: root/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java
diff options
context:
space:
mode:
Diffstat (limited to 'shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java')
-rw-r--r--shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java
new file mode 100644
index 000000000..f83378285
--- /dev/null
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowNativeRenderNodeAnimatorQ.java
@@ -0,0 +1,100 @@
+package org.robolectric.shadows;
+
+import static android.os.Build.VERSION_CODES.O;
+import static android.os.Build.VERSION_CODES.Q;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.nativeruntime.DefaultNativeRuntimeLoader;
+import org.robolectric.nativeruntime.RenderNodeAnimatorNatives;
+import org.robolectric.shadows.ShadowNativeRenderNodeAnimatorQ.Picker;
+
+/**
+ * Shadow for {@link android.view.RenderNodeAnimator} for Android Q and below that is backed by
+ * native code
+ */
+@Implements(
+ className = "android.view.RenderNodeAnimator",
+ minSdk = O,
+ maxSdk = Q,
+ looseSignatures = true,
+ shadowPicker = Picker.class)
+public class ShadowNativeRenderNodeAnimatorQ {
+ @Implementation
+ protected static long nCreateAnimator(int property, float finalValue) {
+ DefaultNativeRuntimeLoader.injectAndLoad();
+ return RenderNodeAnimatorNatives.nCreateAnimator(property, finalValue);
+ }
+
+ @Implementation
+ protected static long nCreateCanvasPropertyFloatAnimator(long canvasProperty, float finalValue) {
+ DefaultNativeRuntimeLoader.injectAndLoad();
+ return RenderNodeAnimatorNatives.nCreateCanvasPropertyFloatAnimator(canvasProperty, finalValue);
+ }
+
+ @Implementation
+ protected static long nCreateCanvasPropertyPaintAnimator(
+ long canvasProperty, int paintField, float finalValue) {
+ DefaultNativeRuntimeLoader.injectAndLoad();
+ return RenderNodeAnimatorNatives.nCreateCanvasPropertyPaintAnimator(
+ canvasProperty, paintField, finalValue);
+ }
+
+ @Implementation
+ protected static long nCreateRevealAnimator(int x, int y, float startRadius, float endRadius) {
+ DefaultNativeRuntimeLoader.injectAndLoad();
+ return RenderNodeAnimatorNatives.nCreateRevealAnimator(x, y, startRadius, endRadius);
+ }
+
+ @Implementation
+ protected static void nSetStartValue(long nativePtr, float startValue) {
+ RenderNodeAnimatorNatives.nSetStartValue(nativePtr, startValue);
+ }
+
+ @Implementation
+ protected static void nSetDuration(long nativePtr, long duration) {
+ RenderNodeAnimatorNatives.nSetDuration(nativePtr, duration);
+ }
+
+ @Implementation
+ protected static long nGetDuration(long nativePtr) {
+ return RenderNodeAnimatorNatives.nGetDuration(nativePtr);
+ }
+
+ @Implementation
+ protected static void nSetStartDelay(long nativePtr, long startDelay) {
+ RenderNodeAnimatorNatives.nSetStartDelay(nativePtr, startDelay);
+ }
+
+ @Implementation
+ protected static void nSetInterpolator(long animPtr, long interpolatorPtr) {
+ RenderNodeAnimatorNatives.nSetInterpolator(animPtr, interpolatorPtr);
+ }
+
+ @Implementation
+ protected static void nSetAllowRunningAsync(long animPtr, boolean mayRunAsync) {
+ RenderNodeAnimatorNatives.nSetAllowRunningAsync(animPtr, mayRunAsync);
+ }
+
+ @Implementation
+ protected static void nSetListener(Object animPtr, Object listener) {
+ RenderNodeAnimatorNatives.nSetListener((long) animPtr, listener);
+ }
+
+ @Implementation
+ protected static void nStart(long animPtr) {
+ RenderNodeAnimatorNatives.nStart(animPtr);
+ }
+
+ @Implementation
+ protected static void nEnd(long animPtr) {
+ RenderNodeAnimatorNatives.nEnd(animPtr);
+ }
+
+ /** Shadow picker for {@link android.view.RenderNodeAnimator}. */
+ public static final class Picker extends GraphicsShadowPicker<Object> {
+ public Picker() {
+ super(ShadowRenderNodeAnimator.class, ShadowNativeRenderNodeAnimatorQ.class);
+ }
+ }
+}