From 12584781e436f3e113bbdc41b1be99bf2341ac87 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Thu, 2 Mar 2017 12:36:08 -0800 Subject: [DO NOT MERGE] Add shadow to Adaptive Icons Bug: 35920618 Change-Id: Ib48a656f988d1f007c32ab15cb28d120fab1e94f (cherry picked from commit da9ac1f01a16a2fe13e321d6fada5cb63f534bc2) --- src/com/android/launcher3/graphics/LauncherIcons.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/com/android/launcher3/graphics') diff --git a/src/com/android/launcher3/graphics/LauncherIcons.java b/src/com/android/launcher3/graphics/LauncherIcons.java index 1a50dfe14..5db395be6 100644 --- a/src/com/android/launcher3/graphics/LauncherIcons.java +++ b/src/com/android/launcher3/graphics/LauncherIcons.java @@ -201,7 +201,7 @@ public class LauncherIcons { int textureWidth = iconBitmapSize; int textureHeight = iconBitmapSize; - final Bitmap bitmap = Bitmap.createBitmap(textureWidth, textureHeight, + Bitmap bitmap = Bitmap.createBitmap(textureWidth, textureHeight, Bitmap.Config.ARGB_8888); final Canvas canvas = sCanvas; canvas.setBitmap(bitmap); @@ -218,6 +218,16 @@ public class LauncherIcons { icon.setBounds(sOldBounds); canvas.setBitmap(null); + if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO()) { + try { + Class clazz = Class.forName("android.graphics.drawable.AdaptiveIconDrawable"); + if (clazz.isAssignableFrom(icon.getClass())) { + bitmap = ShadowGenerator.getInstance(context).recreateIcon(bitmap); + } + } catch (Exception e) { + // do nothing + } + } return bitmap; } } @@ -233,7 +243,7 @@ public class LauncherIcons { } try { - Class clazz = Class.forName("android.graphics.drawable.MaskableIconDrawable"); + Class clazz = Class.forName("android.graphics.drawable.AdaptiveIconDrawable"); if (!clazz.isAssignableFrom(drawable.getClass())) { Drawable maskWrapper = context.getDrawable(R.drawable.mask_drawable_wrapper).mutate(); -- cgit v1.2.3