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 22:36:02 +0000
commit12584781e436f3e113bbdc41b1be99bf2341ac87 (patch)
tree2321dc0b9c3ba1a75f8d9bf771e8c58cd2610f85
parent9407d4ab57a0c3500647f1f5f9a9a44b51d222b4 (diff)
downloadandroid_packages_apps_Trebuchet-12584781e436f3e113bbdc41b1be99bf2341ac87.tar.gz
android_packages_apps_Trebuchet-12584781e436f3e113bbdc41b1be99bf2341ac87.tar.bz2
android_packages_apps_Trebuchet-12584781e436f3e113bbdc41b1be99bf2341ac87.zip
[DO NOT MERGE] Add shadow to Adaptive Icons
Bug: 35920618 Change-Id: Ib48a656f988d1f007c32ab15cb28d120fab1e94f (cherry picked from commit da9ac1f01a16a2fe13e321d6fada5cb63f534bc2)
-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;
}