From 156bd49bdcf9fee8c5d51fcf1ad06b09dd07cbaa Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 13 Jan 2016 21:49:10 +0000 Subject: [PATCH] Revert "Avoid drawable invalidation during draw()" This reverts commit e5e59c6da424096da8f57137cdc57d8bd410b079. Drawables expect to be able to call invalidateSelf() during draw() to pump animation frames. We shouldn't break this. Bug: 26533725 Change-Id: Ibe2871f2622faf836637225fc1e3e6f0ca6def47 --- core/java/android/view/View.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 5f8d49d91e3ca..dea004e3ee349 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -3481,9 +3481,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private int[] mDrawableState = null; - /** Whether draw() is currently being called. */ - private boolean mInDraw = false; - ViewOutlineProvider mOutlineProvider = ViewOutlineProvider.BACKGROUND; /** @@ -16154,8 +16151,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ @CallSuper public void draw(Canvas canvas) { - mInDraw = true; - final int privateFlags = mPrivateFlags; final boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE && (mAttachInfo == null || !mAttachInfo.mIgnoreDirtyState); @@ -16200,7 +16195,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, onDrawForeground(canvas); // we're done... - mInDraw = false; return; } @@ -16348,8 +16342,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // Step 6, draw decorations (foreground, scrollbars) onDrawForeground(canvas); - - mInDraw = false; } /** @@ -16794,8 +16786,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ @Override public void invalidateDrawable(@NonNull Drawable drawable) { - // Don't invalidate if a drawable changes during drawing. - if (verifyDrawable(drawable) && !mInDraw) { + if (verifyDrawable(drawable)) { final Rect dirty = drawable.getDirtyBounds(); final int scrollX = mScrollX; final int scrollY = mScrollY;