summaryrefslogtreecommitdiff
path: root/libs/hwui/Animator.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-09-03 16:46:05 -0700
committerJohn Reck <jreck@google.com>2014-09-03 17:37:59 -0700
commite2478d45ccbe5b6abb360ac9d44771b5f4a50bde (patch)
treef66b0980340a65a83bfd790bd63dc6b179221790 /libs/hwui/Animator.cpp
parent3215da25dd24c9570a90a6151b692e5fd38fbbc7 (diff)
Fix some wrong-thread issues around animator management
Bug: 17372309 Fixes a case where UI thread and RT thread both used the same method which wasn't safe for either of them. Adds additional assertions & logging in unusual circumstances to try and track down where the issue is occuring from. Change-Id: I93d31a6fd0c5927259b67bdf96a475944226eee6
Diffstat (limited to 'libs/hwui/Animator.cpp')
-rw-r--r--libs/hwui/Animator.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp
index da65f381b514..4f3a57377b26 100644
--- a/libs/hwui/Animator.cpp
+++ b/libs/hwui/Animator.cpp
@@ -161,6 +161,13 @@ bool BaseRenderNodeAnimator::animate(AnimationContext& context) {
return false;
}
+void BaseRenderNodeAnimator::forceEndNow(AnimationContext& context) {
+ if (mPlayState < FINISHED) {
+ mPlayState = FINISHED;
+ callOnFinishedListener(context);
+ }
+}
+
void BaseRenderNodeAnimator::callOnFinishedListener(AnimationContext& context) {
if (mListener.get()) {
context.callOnFinished(this, mListener.get());