diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/jni/android_view_RenderNode.cpp | 2 | ||||
| -rw-r--r-- | core/jni/android_view_ThreadedRenderer.cpp | 20 |
2 files changed, 15 insertions, 7 deletions
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp index 1296831..949f4ff 100644 --- a/core/jni/android_view_RenderNode.cpp +++ b/core/jni/android_view_RenderNode.cpp @@ -458,7 +458,7 @@ static void android_view_RenderNode_addAnimator(JNIEnv* env, jobject clazz, static void android_view_RenderNode_endAllAnimators(JNIEnv* env, jobject clazz, jlong renderNodePtr) { RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); - renderNode->animators().endAllAnimators(); + renderNode->animators().endAllStagingAnimators(); } #endif // USE_OPENGL_RENDERER diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp index 6ec6b00..7e6d335 100644 --- a/core/jni/android_view_ThreadedRenderer.cpp +++ b/core/jni/android_view_ThreadedRenderer.cpp @@ -166,12 +166,7 @@ public: // Runs any animations still left in mCurrentFrameAnimations virtual void runRemainingAnimations(TreeInfo& info) { AnimationContext::runRemainingAnimations(info); - // post all the finished stuff - if (mOnFinishedEvents.size()) { - sp<InvokeAnimationListeners> message - = new InvokeAnimationListeners(mOnFinishedEvents); - mRootNode->sendMessage(message); - } + postOnFinishedEvents(); } virtual void callOnFinished(BaseRenderNodeAnimator* animator, AnimationListener* listener) { @@ -179,9 +174,22 @@ public: mOnFinishedEvents.push_back(event); } + virtual void destroy() { + AnimationContext::destroy(); + postOnFinishedEvents(); + } + private: sp<RootRenderNode> mRootNode; std::vector<OnFinishedEvent> mOnFinishedEvents; + + void postOnFinishedEvents() { + if (mOnFinishedEvents.size()) { + sp<InvokeAnimationListeners> message + = new InvokeAnimationListeners(mOnFinishedEvents); + mRootNode->sendMessage(message); + } + } }; class ContextFactoryImpl : public IContextFactory { |
