summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2017-03-02 12:36:08 -0800
committerHyunyoung Song <hyunyoungs@google.com>2017-03-02 13:39:27 -0800
commitda9ac1f01a16a2fe13e321d6fada5cb63f534bc2 (patch)
tree9fd6da62a1a5e2cdd3dd9922910fc4d83d43715d
parentd8745db015aff616d25359ec3bf542174aca9de2 (diff)
downloadandroid_packages_apps_Trebuchet-da9ac1f01a16a2fe13e321d6fada5cb63f534bc2.tar.gz
android_packages_apps_Trebuchet-da9ac1f01a16a2fe13e321d6fada5cb63f534bc2.tar.bz2
android_packages_apps_Trebuchet-da9ac1f01a16a2fe13e321d6fada5cb63f534bc2.zip
Add shadow to Adaptive Icons
Bug: 35920618 Change-Id: Ib48a656f988d1f007c32ab15cb28d120fab1e94f
-rw-r--r--src/com/android/launcher3/graphics/LauncherIcons.java14
-rw-r--r--src_config/com/android/launcher3/config/FeatureFlags.java2
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;
}