diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 1797826530..2aab68beed 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -146,6 +146,20 @@ public class IconCache { } } + /** + * Empty out the cache that aren't of the correct grid size + */ + public void flushInvalidIcons(DeviceProfile grid) { + synchronized (mCache) { + for (ComponentName cn : mCache.keySet()) { + final CacheEntry e = mCache.get(cn); + if (e.icon.getWidth() != grid.iconSizePx || e.icon.getHeight() != grid.iconSizePx) { + mCache.remove(cn); + } + } + } + } + /** * Fill in "application" with the icon and label for "info." */ diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index ee13f29467..b0e49685d6 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -402,6 +402,7 @@ public class Launcher extends Activity Context.MODE_PRIVATE); mModel = app.setLauncher(this); mIconCache = app.getIconCache(); + mIconCache.flushInvalidIcons(grid); mDragController = new DragController(this); mInflater = getLayoutInflater();