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 ++++++++++++-- src_config/com/android/launcher3/config/FeatureFlags.java | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) 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(); diff --git a/src_config/com/android/launcher3/config/FeatureFlags.java b/src_config/com/android/launcher3/config/FeatureFlags.java index 7459c0c77..ab2e7180f 100644 --- a/src_config/com/android/launcher3/config/FeatureFlags.java +++ b/src_config/com/android/launcher3/config/FeatureFlags.java @@ -44,4 +44,6 @@ public final class FeatureFlags { public static final boolean BADGE_ICONS = true; // When enabled, icons not supporting {@link MaskableIconDrawable} will be wrapped in this class. public static final boolean LEGACY_ICON_TREATMENT = false; + // When enabled, adaptive icons would have shadows baked when being stored to icon cache. + public static final boolean ADAPTIVE_ICON_SHADOW = true; } -- cgit v1.2.3