Prevent recursive draw-invalidate cycle when drawing folder

Change-Id: I4d3e680ee0cd1af9da997ac92c505ca38ee4e810
This commit is contained in:
Sunny Goyal
2017-06-21 16:10:45 -07:00
parent a2fde430b5
commit 318f567a84
@@ -510,6 +510,10 @@ public class FolderIcon extends FrameLayout implements FolderListener {
Drawable d = params.drawable;
if (d != null) {
// Remove the callback to prevent invalidate as a result of property changes
Drawable.Callback cb = d.getCallback();
d.setCallback(null);
mTempBounds.set(d.getBounds());
d.setBounds(0, 0, mIntrinsicIconSize, mIntrinsicIconSize);
boolean isPreloadIcon = d instanceof PreloadIconDrawable;
@@ -523,6 +527,7 @@ public class FolderIcon extends FrameLayout implements FolderListener {
d.clearColorFilter();
}
d.setBounds(mTempBounds);
d.setCallback(cb);
}
canvas.restore();
}