summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2017-01-11 12:30:45 -0800
committerHyunyoung Song <hyunyoungs@google.com>2017-01-12 17:09:12 -0800
commit9a5203a5391b9ad06ad4e1b806c17cbec2e968dd (patch)
treeef06dca7a31ae08386e3645337001b840e6176cb /src
parenta39a98dac95e9fd3e5b1b40673ec2ac8f52dfdaf (diff)
downloadandroid_packages_apps_Trebuchet-9a5203a5391b9ad06ad4e1b806c17cbec2e968dd.tar.gz
android_packages_apps_Trebuchet-9a5203a5391b9ad06ad4e1b806c17cbec2e968dd.tar.bz2
android_packages_apps_Trebuchet-9a5203a5391b9ad06ad4e1b806c17cbec2e968dd.zip
Use MaskableIconDrawable only in dogfood builds
Bug: 32063838 Change-Id: Id0d15c4fff54b9429dbe5f9ee7ef26fd9cf8703d
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/graphics/LauncherIcons.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/com/android/launcher3/graphics/LauncherIcons.java b/src/com/android/launcher3/graphics/LauncherIcons.java
index 3f191bdc3..48f376ffb 100644
--- a/src/com/android/launcher3/graphics/LauncherIcons.java
+++ b/src/com/android/launcher3/graphics/LauncherIcons.java
@@ -36,7 +36,11 @@ import android.os.UserHandle;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
+import com.android.launcher3.config.ProviderConfig;
+
+import java.lang.reflect.Method;
/**
* Helper methods for generating various launcher icons
@@ -174,6 +178,7 @@ public class LauncherIcons {
* @param scale the scale to apply before drawing {@param icon} on the canvas
*/
public static Bitmap createIconBitmap(Drawable icon, Context context, float scale) {
+ icon = castToMaskableIconDrawable(icon);
synchronized (sCanvas) {
final int iconBitmapSize = getIconBitmapSize();
@@ -229,6 +234,19 @@ public class LauncherIcons {
}
}
+ static Drawable castToMaskableIconDrawable(Drawable drawable) {
+ if (!(ProviderConfig.IS_DOGFOOD_BUILD && Utilities.isAtLeastO())) {
+ return drawable;
+ }
+ try {
+ Class clazz = Class.forName("android.graphics.drawable.MaskableIconDrawable");
+ Method method = clazz.getDeclaredMethod("wrap", Drawable.class);
+ return (Drawable) method.invoke(null, drawable);
+ } catch (Exception e) {
+ return drawable;
+ }
+ }
+
/**
* An extension of {@link BitmapDrawable} which returns the bitmap pixel size as intrinsic size.
* This allows the badging to be done based on the action bitmap size rather than