From 7d4ef41cb4fdebeec7b009c7997c5e7e9be0b00f Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Thu, 28 Jun 2018 11:33:23 -0700 Subject: [PATCH] Fix clipping issue on adaptive icons Bug: 62372639 Change-Id: Ie9dcf18f61c45225823dfbbf85578edcbffd86b9 --- src/com/android/launcher3/IconCache.java | 2 +- src/com/android/launcher3/graphics/LauncherIcons.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 9dc3129fd8..c5ca183f7d 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -801,7 +801,7 @@ public class IconCache { } 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 09ea1ad41a..ece6c58407 100644 --- a/src/com/android/launcher3/graphics/LauncherIcons.java +++ b/src/com/android/launcher3/graphics/LauncherIcons.java @@ -337,15 +337,16 @@ public class LauncherIcons implements AutoCloseable { 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);