diff options
author | John Reck <jreck@google.com> | 2014-09-03 16:46:05 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-09-03 17:37:59 -0700 |
commit | e2478d45ccbe5b6abb360ac9d44771b5f4a50bde (patch) | |
tree | f66b0980340a65a83bfd790bd63dc6b179221790 /libs/hwui/Animator.cpp | |
parent | 3215da25dd24c9570a90a6151b692e5fd38fbbc7 (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.cpp | 7 |
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()); |