From aa038af6b3da0633c229f053c3f272bb452e4632 Mon Sep 17 00:00:00 2001 From: Samuel Fufa Date: Fri, 4 Oct 2019 16:37:12 -0700 Subject: Scale Icon badges for shortcut and widgets Test: Manual Bug: 141262820 Change-Id: I03edc986e3fe1876b6b7ed179b96864d587cb137 --- src/com/android/launcher3/Utilities.java | 2 +- src/com/android/launcher3/graphics/DrawableFactory.java | 7 +++---- src/com/android/launcher3/widget/WidgetCell.java | 12 ++++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src/com') diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 6ddebe75d..c5f26aaf1 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -584,7 +584,7 @@ public final class Utilities { LauncherIcons li = LauncherIcons.obtain(appState.getContext()); Bitmap badge = li.getShortcutInfoBadge(si, appState.getIconCache()).iconBitmap; li.recycle(); - float badgeSize = launcher.getResources().getDimension(R.dimen.profile_badge_size); + float badgeSize = iconSize * LauncherIcons.getBadgeSizeForIconSize(iconSize); float insetFraction = (iconSize - badgeSize) / iconSize; return new InsetDrawable(new FastBitmapDrawable(badge), insetFraction, insetFraction, 0, 0); diff --git a/src/com/android/launcher3/graphics/DrawableFactory.java b/src/com/android/launcher3/graphics/DrawableFactory.java index 288749fa7..837301fb8 100644 --- a/src/com/android/launcher3/graphics/DrawableFactory.java +++ b/src/com/android/launcher3/graphics/DrawableFactory.java @@ -80,26 +80,25 @@ public class DrawableFactory implements ResourceBasedOverride { * Returns a drawable that can be used as a badge for the user or null. */ @UiThread - public Drawable getBadgeForUser(UserHandle user, Context context) { + public Drawable getBadgeForUser(UserHandle user, Context context, int badgeSize) { if (mMyUser.equals(user)) { return null; } - Bitmap badgeBitmap = getUserBadge(user, context); + Bitmap badgeBitmap = getUserBadge(user, context, badgeSize); FastBitmapDrawable d = new FastBitmapDrawable(badgeBitmap); d.setFilterBitmap(true); d.setBounds(0, 0, badgeBitmap.getWidth(), badgeBitmap.getHeight()); return d; } - protected synchronized Bitmap getUserBadge(UserHandle user, Context context) { + protected synchronized Bitmap getUserBadge(UserHandle user, Context context, int badgeSize) { Bitmap badgeBitmap = mUserBadges.get(user); if (badgeBitmap != null) { return badgeBitmap; } final Resources res = context.getApplicationContext().getResources(); - int badgeSize = res.getDimensionPixelSize(R.dimen.profile_badge_size); badgeBitmap = Bitmap.createBitmap(badgeSize, badgeSize, Bitmap.Config.ARGB_8888); Drawable drawable = context.getPackageManager().getUserBadgedDrawableForDensity( diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java index 412fb7ba6..6944879be 100644 --- a/src/com/android/launcher3/widget/WidgetCell.java +++ b/src/com/android/launcher3/widget/WidgetCell.java @@ -37,6 +37,7 @@ import com.android.launcher3.SimpleOnStylusPressListener; import com.android.launcher3.StylusEventHelper; import com.android.launcher3.WidgetPreviewLoader; import com.android.launcher3.graphics.DrawableFactory; +import com.android.launcher3.icons.BaseIconFactory; import com.android.launcher3.model.WidgetItem; /** @@ -80,6 +81,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { private Bitmap mDeferredBitmap; protected final BaseActivity mActivity; + protected DeviceProfile mDeviceProfile; public WidgetCell(Context context) { this(context, null); @@ -93,6 +95,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { super(context, attrs, defStyle); mActivity = BaseActivity.fromContext(context); + mDeviceProfile = mActivity.getDeviceProfile(); mStylusEventHelper = new StylusEventHelper(new SimpleOnStylusPressListener(this), this); setContainerWidth(); @@ -102,8 +105,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { } private void setContainerWidth() { - DeviceProfile profile = mActivity.getDeviceProfile(); - mCellSize = (int) (profile.allAppsCellWidthPx * WIDTH_SCALE); + mCellSize = (int) (mDeviceProfile.allAppsCellWidthPx * WIDTH_SCALE); mPresetPreviewSize = (int) (mCellSize * PREVIEW_SCALE); } @@ -180,8 +182,10 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { return; } if (bitmap != null) { - mWidgetImage.setBitmap(bitmap, DrawableFactory.INSTANCE.get(getContext()) - .getBadgeForUser(mItem.user, getContext())); + mWidgetImage.setBitmap(bitmap, + DrawableFactory.INSTANCE.get(getContext()).getBadgeForUser(mItem.user, + getContext(), BaseIconFactory.getBadgeSizeForIconSize( + mDeviceProfile.allAppsIconSizePx))); if (mAnimatePreview) { mWidgetImage.setAlpha(0f); ViewPropertyAnimator anim = mWidgetImage.animate(); -- cgit v1.2.3