Loading core/java/android/view/RenderNode.java +0 −19 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ import android.graphics.Matrix; import android.graphics.Outline; import android.graphics.Paint; import java.util.ArrayList; import java.util.List; /** * <p>A display list records a series of graphics related operations and can replay * them later. Display lists are usually built by recording operations on a Loading Loading @@ -180,12 +177,6 @@ public class RenderNode { private boolean mValid; private final long mNativeRenderNode; // We need to keep a strong reference to all running animators to ensure that // they can call removeAnimator when they have finished, as the native-side // object can only hold a WeakReference<> to avoid leaking memory due to // cyclic references. private List<RenderNodeAnimator> mActiveAnimators; private RenderNode(String name) { mNativeRenderNode = nCreate(name); } Loading Loading @@ -866,18 +857,9 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// public void addAnimator(RenderNodeAnimator animator) { if (mActiveAnimators == null) { mActiveAnimators = new ArrayList<RenderNodeAnimator>(); } mActiveAnimators.add(animator); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); } public void removeAnimator(RenderNodeAnimator animator) { nRemoveAnimator(mNativeRenderNode, animator.getNativeAnimator()); mActiveAnimators.remove(animator); } /////////////////////////////////////////////////////////////////////////// // Native methods /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -960,7 +942,6 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nRemoveAnimator(long renderNode, long animatorPtr); /////////////////////////////////////////////////////////////////////////// // Finalization Loading core/java/android/view/RenderNodeAnimator.java +17 −11 Original line number Diff line number Diff line Loading @@ -172,7 +172,8 @@ public final class RenderNodeAnimator extends Animator { @Override public void cancel() { mTarget.removeAnimator(this); if (!mFinished) { nCancel(mNativePtr.get()); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -180,6 +181,7 @@ public final class RenderNodeAnimator extends Animator { listeners.get(i).onAnimationCancel(this); } } } @Override public void end() { Loading Loading @@ -219,10 +221,6 @@ public final class RenderNodeAnimator extends Animator { return mTarget; } /** * WARNING: May only be called once!!! * TODO: Fix above -_- */ public void setStartValue(float startValue) { checkMutable(); nSetStartValue(mNativePtr.get(), startValue); Loading @@ -231,6 +229,9 @@ public final class RenderNodeAnimator extends Animator { @Override public void setStartDelay(long startDelay) { checkMutable(); if (startDelay < 0) { throw new IllegalArgumentException("startDelay must be positive; " + startDelay); } nSetStartDelay(mNativePtr.get(), startDelay); } Loading @@ -242,6 +243,9 @@ public final class RenderNodeAnimator extends Animator { @Override public RenderNodeAnimator setDuration(long duration) { checkMutable(); if (duration < 0) { throw new IllegalArgumentException("duration must be positive; " + duration); } nSetDuration(mNativePtr.get(), duration); return this; } Loading Loading @@ -269,7 +273,6 @@ public final class RenderNodeAnimator extends Animator { private void onFinished() { mFinished = true; mTarget.removeAnimator(this); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -296,10 +299,13 @@ public final class RenderNodeAnimator extends Animator { long canvasProperty, float finalValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, float finalValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetDuration(long nativePtr, long duration); private static native long nGetDuration(long nativePtr); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native long nGetStartDelay(long nativePtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nCancel(long animPtr); } core/jni/android_view_RenderNode.cpp +1 −9 Original line number Diff line number Diff line Loading @@ -456,16 +456,9 @@ static void android_view_RenderNode_addAnimator(JNIEnv* env, jobject clazz, RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->addAnimator(animator); animator->start(); } static void android_view_RenderNode_removeAnimator(JNIEnv* env, jobject clazz, jlong renderNodePtr, jlong animatorPtr) { RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->removeAnimator(animator); } #endif // USE_OPENGL_RENDERER // ---------------------------------------------------------------------------- Loading Loading @@ -546,7 +539,6 @@ static JNINativeMethod gMethods[] = { { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nRemoveAnimator", "(JJ)V", (void*) android_view_RenderNode_removeAnimator }, #endif }; Loading core/jni/android_view_RenderNodeAnimator.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,11 @@ static void setInterpolator(JNIEnv* env, jobject clazz, jlong animatorPtr, jlong animator->setInterpolator(interpolator); } static void cancel(JNIEnv* env, jobject clazz, jlong animatorPtr) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); animator->cancel(); } #endif // ---------------------------------------------------------------------------- Loading @@ -168,6 +173,7 @@ static JNINativeMethod gMethods[] = { { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nCancel", "(J)V", (void*) cancel }, #endif }; Loading libs/hwui/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) font/Font.cpp \ AmbientShadow.cpp \ Animator.cpp \ AnimatorManager.cpp \ AssetAtlas.cpp \ DamageAccumulator.cpp \ FontRenderer.cpp \ Loading Loading
core/java/android/view/RenderNode.java +0 −19 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ import android.graphics.Matrix; import android.graphics.Outline; import android.graphics.Paint; import java.util.ArrayList; import java.util.List; /** * <p>A display list records a series of graphics related operations and can replay * them later. Display lists are usually built by recording operations on a Loading Loading @@ -180,12 +177,6 @@ public class RenderNode { private boolean mValid; private final long mNativeRenderNode; // We need to keep a strong reference to all running animators to ensure that // they can call removeAnimator when they have finished, as the native-side // object can only hold a WeakReference<> to avoid leaking memory due to // cyclic references. private List<RenderNodeAnimator> mActiveAnimators; private RenderNode(String name) { mNativeRenderNode = nCreate(name); } Loading Loading @@ -866,18 +857,9 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// public void addAnimator(RenderNodeAnimator animator) { if (mActiveAnimators == null) { mActiveAnimators = new ArrayList<RenderNodeAnimator>(); } mActiveAnimators.add(animator); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); } public void removeAnimator(RenderNodeAnimator animator) { nRemoveAnimator(mNativeRenderNode, animator.getNativeAnimator()); mActiveAnimators.remove(animator); } /////////////////////////////////////////////////////////////////////////// // Native methods /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -960,7 +942,6 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nRemoveAnimator(long renderNode, long animatorPtr); /////////////////////////////////////////////////////////////////////////// // Finalization Loading
core/java/android/view/RenderNodeAnimator.java +17 −11 Original line number Diff line number Diff line Loading @@ -172,7 +172,8 @@ public final class RenderNodeAnimator extends Animator { @Override public void cancel() { mTarget.removeAnimator(this); if (!mFinished) { nCancel(mNativePtr.get()); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -180,6 +181,7 @@ public final class RenderNodeAnimator extends Animator { listeners.get(i).onAnimationCancel(this); } } } @Override public void end() { Loading Loading @@ -219,10 +221,6 @@ public final class RenderNodeAnimator extends Animator { return mTarget; } /** * WARNING: May only be called once!!! * TODO: Fix above -_- */ public void setStartValue(float startValue) { checkMutable(); nSetStartValue(mNativePtr.get(), startValue); Loading @@ -231,6 +229,9 @@ public final class RenderNodeAnimator extends Animator { @Override public void setStartDelay(long startDelay) { checkMutable(); if (startDelay < 0) { throw new IllegalArgumentException("startDelay must be positive; " + startDelay); } nSetStartDelay(mNativePtr.get(), startDelay); } Loading @@ -242,6 +243,9 @@ public final class RenderNodeAnimator extends Animator { @Override public RenderNodeAnimator setDuration(long duration) { checkMutable(); if (duration < 0) { throw new IllegalArgumentException("duration must be positive; " + duration); } nSetDuration(mNativePtr.get(), duration); return this; } Loading Loading @@ -269,7 +273,6 @@ public final class RenderNodeAnimator extends Animator { private void onFinished() { mFinished = true; mTarget.removeAnimator(this); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -296,10 +299,13 @@ public final class RenderNodeAnimator extends Animator { long canvasProperty, float finalValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, float finalValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetDuration(long nativePtr, long duration); private static native long nGetDuration(long nativePtr); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native long nGetStartDelay(long nativePtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nCancel(long animPtr); }
core/jni/android_view_RenderNode.cpp +1 −9 Original line number Diff line number Diff line Loading @@ -456,16 +456,9 @@ static void android_view_RenderNode_addAnimator(JNIEnv* env, jobject clazz, RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->addAnimator(animator); animator->start(); } static void android_view_RenderNode_removeAnimator(JNIEnv* env, jobject clazz, jlong renderNodePtr, jlong animatorPtr) { RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->removeAnimator(animator); } #endif // USE_OPENGL_RENDERER // ---------------------------------------------------------------------------- Loading Loading @@ -546,7 +539,6 @@ static JNINativeMethod gMethods[] = { { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nRemoveAnimator", "(JJ)V", (void*) android_view_RenderNode_removeAnimator }, #endif }; Loading
core/jni/android_view_RenderNodeAnimator.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,11 @@ static void setInterpolator(JNIEnv* env, jobject clazz, jlong animatorPtr, jlong animator->setInterpolator(interpolator); } static void cancel(JNIEnv* env, jobject clazz, jlong animatorPtr) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); animator->cancel(); } #endif // ---------------------------------------------------------------------------- Loading @@ -168,6 +173,7 @@ static JNINativeMethod gMethods[] = { { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nCancel", "(J)V", (void*) cancel }, #endif }; Loading
libs/hwui/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) font/Font.cpp \ AmbientShadow.cpp \ Animator.cpp \ AnimatorManager.cpp \ AssetAtlas.cpp \ DamageAccumulator.cpp \ FontRenderer.cpp \ Loading