Disable RT-anim for AnimatorSet
Bug: 17317184
Unfortunately this will disable *all* RT animations in a scene,
but we don't have more selective targetting currently
Change-Id: I57e1c0ae43957f45229473bdcdaf34c05825fab7
diff --git a/libs/hwui/Animator.h b/libs/hwui/Animator.h
index 1ab6235b..35a4a09 100644
--- a/libs/hwui/Animator.h
+++ b/libs/hwui/Animator.h
@@ -53,6 +53,10 @@
mListener = listener;
}
AnimationListener* listener() { return mListener.get(); }
+ ANDROID_API void setAllowRunningAsync(bool mayRunAsync) {
+ mMayRunAsync = mayRunAsync;
+ }
+ bool mayRunAsync() { return mMayRunAsync; }
ANDROID_API void start() { mStagingPlayState = RUNNING; onStagingPlayStateChanged(); }
ANDROID_API void end() { mStagingPlayState = FINISHED; onStagingPlayStateChanged(); }
@@ -101,6 +105,7 @@
nsecs_t mStartTime;
nsecs_t mDuration;
nsecs_t mStartDelay;
+ bool mMayRunAsync;
sp<AnimationListener> mListener;
diff --git a/libs/hwui/AnimatorManager.cpp b/libs/hwui/AnimatorManager.cpp
index e06d800..c28fb88 100644
--- a/libs/hwui/AnimatorManager.cpp
+++ b/libs/hwui/AnimatorManager.cpp
@@ -90,6 +90,9 @@
if (animator->isRunning()) {
mInfo.out.hasAnimations = true;
}
+ if (CC_UNLIKELY(!animator->mayRunAsync())) {
+ mInfo.out.requiresUiRedraw = true;
+ }
}
return remove;
}