From 318f567a849223284eecec761c23b41a3fd2e568 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 21 Jun 2017 16:10:45 -0700 Subject: [PATCH] Prevent recursive draw-invalidate cycle when drawing folder Change-Id: I4d3e680ee0cd1af9da997ac92c505ca38ee4e810 --- src/com/android/launcher3/folder/FolderIcon.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java index b6f05f3fce..48d8e10eda 100644 --- a/src/com/android/launcher3/folder/FolderIcon.java +++ b/src/com/android/launcher3/folder/FolderIcon.java @@ -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(); }