Loading src/com/android/launcher3/Utilities.java +23 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,7 @@ public final class Utilities { Bitmap bitmap = createIconBitmap(icon, context, scale); if (Utilities.ATLEAST_LOLLIPOP && user != null && !UserHandleCompat.myUserHandle().equals(user)) { BitmapDrawable drawable = new BitmapDrawable(context.getResources(), bitmap); BitmapDrawable drawable = new FixedSizeBitmapDrawable(bitmap); Drawable badged = context.getPackageManager().getUserBadgedIcon( drawable, user.getUser()); if (badged instanceof BitmapDrawable) { Loading Loading @@ -827,4 +827,26 @@ public final class Utilities { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); return ATLEAST_LOLLIPOP && powerManager.isPowerSaveMode(); } /** * 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 * the scaled bitmap size. */ private static class FixedSizeBitmapDrawable extends BitmapDrawable { public FixedSizeBitmapDrawable(Bitmap bitmap) { super(null, bitmap); } @Override public int getIntrinsicHeight() { return getBitmap().getWidth(); } @Override public int getIntrinsicWidth() { return getBitmap().getWidth(); } } } Loading
src/com/android/launcher3/Utilities.java +23 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,7 @@ public final class Utilities { Bitmap bitmap = createIconBitmap(icon, context, scale); if (Utilities.ATLEAST_LOLLIPOP && user != null && !UserHandleCompat.myUserHandle().equals(user)) { BitmapDrawable drawable = new BitmapDrawable(context.getResources(), bitmap); BitmapDrawable drawable = new FixedSizeBitmapDrawable(bitmap); Drawable badged = context.getPackageManager().getUserBadgedIcon( drawable, user.getUser()); if (badged instanceof BitmapDrawable) { Loading Loading @@ -827,4 +827,26 @@ public final class Utilities { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); return ATLEAST_LOLLIPOP && powerManager.isPowerSaveMode(); } /** * 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 * the scaled bitmap size. */ private static class FixedSizeBitmapDrawable extends BitmapDrawable { public FixedSizeBitmapDrawable(Bitmap bitmap) { super(null, bitmap); } @Override public int getIntrinsicHeight() { return getBitmap().getWidth(); } @Override public int getIntrinsicWidth() { return getBitmap().getWidth(); } } }