Fix clipping issue on adaptive icons
Bug: 62372639

Change-Id: Ie9dcf18f61c45225823dfbbf85578edcbffd86b9
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index 9dc3129..c5ca183 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -801,7 +801,7 @@
     }
 
     private static final class IconDB extends SQLiteCacheHelper {
-        private final static int RELEASE_VERSION = 23;
+        private final static int RELEASE_VERSION = 24;
 
         private final static String TABLE_NAME = "icons";
         private final static String COLUMN_ROWID = "rowid";
diff --git a/src/com/android/launcher3/graphics/LauncherIcons.java b/src/com/android/launcher3/graphics/LauncherIcons.java
index 09ea1ad..ece6c58 100644
--- a/src/com/android/launcher3/graphics/LauncherIcons.java
+++ b/src/com/android/launcher3/graphics/LauncherIcons.java
@@ -337,15 +337,16 @@
         final int top = (textureHeight-height) / 2;
 
         mOldBounds.set(icon.getBounds());
+        int offset = 0;
         if (Utilities.ATLEAST_OREO && icon instanceof AdaptiveIconDrawable) {
-            int offset = Math.max((int) Math.ceil(BLUR_FACTOR * textureWidth), Math.max(left, top));
+            offset = Math.max((int) Math.ceil(BLUR_FACTOR * textureWidth), Math.max(left, top));
             int size = Math.max(width, height);
             icon.setBounds(offset, offset, offset + size, offset + size);
         } else {
             icon.setBounds(left, top, left+width, top+height);
         }
         mCanvas.save();
-        mCanvas.scale(scale, scale, textureWidth / 2, textureHeight / 2);
+        mCanvas.scale(scale, scale, textureWidth / 2 + offset, textureHeight / 2 + offset);
         icon.draw(mCanvas);
         mCanvas.restore();
         icon.setBounds(mOldBounds);