Merge "Make sure VD animation push staging happens only in MODE_FULL" into nyc-mr1-dev

This commit is contained in:
Doris Liu
2016-06-22 00:40:47 +00:00
committed by Android (Google) Code Review

View File

@@ -255,7 +255,6 @@ public:
void runVectorDrawableAnimators(AnimationContext* context) {
for (auto it = mVectorDrawableAnimators.begin(); it != mVectorDrawableAnimators.end();) {
(*it)->pushStaging(*context);
if ((*it)->animate(*context)) {
it = mVectorDrawableAnimators.erase(it);
} else {
@@ -264,6 +263,12 @@ public:
}
}
void pushStagingVectorDrawableAnimators(AnimationContext* context) {
for (auto& anim : mVectorDrawableAnimators) {
anim->pushStaging(*context);
}
}
void destroy() {
for (auto& renderNode : mPendingAnimatingRenderNodes) {
renderNode->animators().endAllStagingAnimators();
@@ -328,6 +333,9 @@ public:
// already ran in each RenderNode. Note that these animators don't damage the RenderNodes.
// The damaging is done in prepareTree as needed after checking whether a VD has been
// modified.
if (mode == TreeInfo::MODE_FULL) {
mRootNode->pushStagingVectorDrawableAnimators(this);
}
mRootNode->runVectorDrawableAnimators(this);
}