Scale Icon badges for shortcut and widgets
Test: Manual Bug: 141262820 Change-Id: I03edc986e3fe1876b6b7ed179b96864d587cb137
This commit is contained in:
@@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Process;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
/**
|
||||
@@ -35,6 +36,8 @@ public class BaseIconFactory implements AutoCloseable {
|
||||
static final boolean ATLEAST_OREO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;
|
||||
static final boolean ATLEAST_P = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P;
|
||||
|
||||
private static final float ICON_BADGE_SCALE = 0.444f;
|
||||
|
||||
private final Rect mOldBounds = new Rect();
|
||||
protected final Context mContext;
|
||||
private final Canvas mCanvas;
|
||||
@@ -254,7 +257,7 @@ public class BaseIconFactory implements AutoCloseable {
|
||||
* Adds the {@param badge} on top of {@param target} using the badge dimensions.
|
||||
*/
|
||||
public void badgeWithDrawable(Canvas target, Drawable badge) {
|
||||
int badgeSize = mContext.getResources().getDimensionPixelSize(R.dimen.profile_badge_size);
|
||||
int badgeSize = getBadgeSizeForIconSize(mIconBitmapSize);
|
||||
badge.setBounds(mIconBitmapSize - badgeSize, mIconBitmapSize - badgeSize,
|
||||
mIconBitmapSize, mIconBitmapSize);
|
||||
badge.draw(target);
|
||||
@@ -334,6 +337,13 @@ public class BaseIconFactory implements AutoCloseable {
|
||||
iconDpi);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the correct badge size given an icon size
|
||||
*/
|
||||
public static int getBadgeSizeForIconSize(int iconSize) {
|
||||
return (int) (ICON_BADGE_SCALE * iconSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
||||
Reference in New Issue
Block a user