diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-02-02 16:37:21 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-02-06 10:43:27 -0800 |
commit | 96ac68a481ce5b794b5227e09ace7c30d6dd5e7b (patch) | |
tree | 9ea46cdeccfce02fbe0830d7430f9f95c64557b6 /src/com/android/launcher3/graphics/LauncherIcons.java | |
parent | e1fa0145d36fbefeb397f952cba2689ce537d786 (diff) | |
download | android_packages_apps_Trebuchet-96ac68a481ce5b794b5227e09ace7c30d6dd5e7b.tar.gz android_packages_apps_Trebuchet-96ac68a481ce5b794b5227e09ace7c30d6dd5e7b.tar.bz2 android_packages_apps_Trebuchet-96ac68a481ce5b794b5227e09ace7c30d6dd5e7b.zip |
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
Diffstat (limited to 'src/com/android/launcher3/graphics/LauncherIcons.java')
-rw-r--r-- | src/com/android/launcher3/graphics/LauncherIcons.java | 20 |
1 files changed, 7 insertions, 13 deletions
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; |