From 96ac68a481ce5b794b5227e09ace7c30d6dd5e7b Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 2 Feb 2017 16:37:21 -0800 Subject: Updating the PreloadIconDrawable > The drawable gets the path from MaskIconDrawable path, instead of using a circle > The progress changes are animated as well Bug: 34831873 Change-Id: I4e7f0b610f4fd94de8e0cfcf8b179b775cf0b4d8 --- .../android/launcher3/graphics/LauncherIcons.java | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'src/com/android/launcher3/graphics/LauncherIcons.java') diff --git a/src/com/android/launcher3/graphics/LauncherIcons.java b/src/com/android/launcher3/graphics/LauncherIcons.java index 472b9135b..3fffb5bb5 100644 --- a/src/com/android/launcher3/graphics/LauncherIcons.java +++ b/src/com/android/launcher3/graphics/LauncherIcons.java @@ -29,13 +29,10 @@ import android.graphics.PaintFlagsDrawFilter; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; -import android.graphics.drawable.ScaleDrawable; import android.os.Process; import android.os.UserHandle; -import android.view.Gravity; import com.android.launcher3.AppInfo; import com.android.launcher3.IconCache; @@ -52,8 +49,6 @@ import com.android.launcher3.shortcuts.ShortcutInfoCompat; * Helper methods for generating various launcher icons */ public class LauncherIcons { - // TODO b/33553066 use the constant defined in MaskableIconDrawable - private static final float LEGACY_ICON_SCALE = .7f * .6667f; private static final Rect sOldBounds = new Rect(); private static final Canvas sCanvas = new Canvas(); @@ -236,17 +231,16 @@ public class LauncherIcons { if (!(ProviderConfig.IS_DOGFOOD_BUILD && Utilities.isAtLeastO())) { return drawable; } - int color = context.getResources().getColor(R.color.legacy_icon_background); - ColorDrawable colorDrawable = new ColorDrawable(color); - ScaleDrawable scaleDrawable = new ScaleDrawable(drawable, - Gravity.CENTER, LEGACY_ICON_SCALE, LEGACY_ICON_SCALE); - scaleDrawable.setLevel(1); + try { Class clazz = Class.forName("android.graphics.drawable.MaskableIconDrawable"); - if (!clazz.isAssignableFrom(drawable.getClass())){ + if (!clazz.isAssignableFrom(drawable.getClass())) { + Drawable maskWrapper = + context.getDrawable(R.drawable.mask_drawable_wrapper).mutate(); + ((FixedScaleDrawable) clazz.getMethod("getForeground").invoke(maskWrapper)) + .setDrawable(drawable); - return (Drawable) clazz.getConstructor(Drawable.class, Drawable.class) - .newInstance(colorDrawable, scaleDrawable); + return maskWrapper; } } catch (Exception e) { return drawable; -- cgit v1.2.3