diff options
author | John Reck <jreck@google.com> | 2014-07-15 14:29:33 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-07-18 22:10:22 +0000 |
commit | d3de42cae84fadfa1befd082a2cf1bf72f9ad82a (patch) | |
tree | e3bff6900caa9cc6546dc6e843f37414192fcc74 /core/jni | |
parent | fac77c46fe03466cb4bd728da3dc49b40652964b (diff) | |
download | frameworks_base-d3de42cae84fadfa1befd082a2cf1bf72f9ad82a.zip frameworks_base-d3de42cae84fadfa1befd082a2cf1bf72f9ad82a.tar.gz frameworks_base-d3de42cae84fadfa1befd082a2cf1bf72f9ad82a.tar.bz2 |
Add RT-enabled reveal animator
Bug: 16161431
Also re-writes RevealAnimator to avoid using any listeners internally,
removing the logic around shadowing the update listeners.
Change-Id: I6ed8126398eed971a87f20bccb7584c9acafbb6c
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_view_RenderNodeAnimator.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/jni/android_view_RenderNodeAnimator.cpp b/core/jni/android_view_RenderNodeAnimator.cpp index ed57979..7c0c6ef 100644 --- a/core/jni/android_view_RenderNodeAnimator.cpp +++ b/core/jni/android_view_RenderNodeAnimator.cpp @@ -116,6 +116,14 @@ static jlong createCanvasPropertyPaintAnimator(JNIEnv* env, jobject clazz, return reinterpret_cast<jlong>( animator ); } +static jlong createRevealAnimator(JNIEnv* env, jobject clazz, jobject weakThis, + jint centerX, jint centerY, jboolean inverseClip, jfloat startRadius, jfloat endRadius) { + BaseRenderNodeAnimator* animator = new RevealAnimator(centerX, centerY, inverseClip, + startRadius, endRadius); + animator->setListener(new AnimationListenerBridge(env, weakThis)); + return reinterpret_cast<jlong>( animator ); +} + static void setStartValue(JNIEnv* env, jobject clazz, jlong animatorPtr, jfloat startValue) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); animator->setStartValue(startValue); @@ -154,9 +162,9 @@ static void start(JNIEnv* env, jobject clazz, jlong animatorPtr) { animator->start(); } -static void cancel(JNIEnv* env, jobject clazz, jlong animatorPtr) { +static void end(JNIEnv* env, jobject clazz, jlong animatorPtr) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); - animator->cancel(); + animator->end(); } #endif @@ -172,6 +180,7 @@ static JNINativeMethod gMethods[] = { { "nCreateAnimator", "(Ljava/lang/ref/WeakReference;IF)J", (void*) createAnimator }, { "nCreateCanvasPropertyFloatAnimator", "(Ljava/lang/ref/WeakReference;JF)J", (void*) createCanvasPropertyFloatAnimator }, { "nCreateCanvasPropertyPaintAnimator", "(Ljava/lang/ref/WeakReference;JIF)J", (void*) createCanvasPropertyPaintAnimator }, + { "nCreateRevealAnimator", "(Ljava/lang/ref/WeakReference;IIZFF)J", (void*) createRevealAnimator }, { "nSetStartValue", "(JF)V", (void*) setStartValue }, { "nSetDuration", "(JJ)V", (void*) setDuration }, { "nGetDuration", "(J)J", (void*) getDuration }, @@ -179,7 +188,7 @@ static JNINativeMethod gMethods[] = { { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nStart", "(J)V", (void*) start }, - { "nCancel", "(J)V", (void*) cancel }, + { "nEnd", "(J)V", (void*) end }, #endif }; |