Merge "Use the correct drawable to badge user icon" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
fd95ca6d2e
@@ -2,7 +2,8 @@
|
||||
android:width="36dp"
|
||||
android:height="36dp"
|
||||
android:viewportWidth="36.0"
|
||||
android:viewportHeight="36.0">
|
||||
android:viewportHeight="36.0"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:pathData="M16.3,11.3h3.4v1.7h-3.4z"
|
||||
android:fillColor="#FFFFFF"/>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.android.settingslib;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
@@ -142,7 +141,7 @@ public class Utils {
|
||||
public static Drawable getUserIcon(Context context, UserManager um, UserInfo user) {
|
||||
final int iconSize = UserIconDrawable.getSizeForList(context);
|
||||
if (user.isManagedProfile()) {
|
||||
Drawable drawable = UserIconDrawable.getManagedUserBadgeDrawable(context);
|
||||
Drawable drawable = UserIconDrawable.getManagedUserDrawable(context);
|
||||
drawable.setBounds(0, 0, iconSize, iconSize);
|
||||
return drawable;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settingslib.drawable;
|
||||
|
||||
import android.annotation.DrawableRes;
|
||||
import android.annotation.NonNull;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
@@ -36,6 +37,7 @@ import android.graphics.RectF;
|
||||
import android.graphics.Shader;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
|
||||
@@ -69,15 +71,23 @@ public class UserIconDrawable extends Drawable implements Drawable.Callback {
|
||||
private float mBadgeMargin;
|
||||
|
||||
/**
|
||||
* Gets the system default managed-user badge as a drawable
|
||||
* Gets the system default managed-user badge as a drawable. This drawable is tint-able.
|
||||
* For badging purpose, consider
|
||||
* {@link android.content.pm.PackageManager#getUserBadgedDrawableForDensity(Drawable, UserHandle, Rect, int)}.
|
||||
*
|
||||
* @param context
|
||||
* @return drawable containing just the badge
|
||||
*/
|
||||
public static Drawable getManagedUserBadgeDrawable(Context context) {
|
||||
int displayDensity = context.getResources().getDisplayMetrics().densityDpi;
|
||||
public static Drawable getManagedUserDrawable(Context context) {
|
||||
return getDrawableForDisplayDensity
|
||||
(context, com.android.internal.R.drawable.ic_corp_user_badge);
|
||||
}
|
||||
|
||||
private static Drawable getDrawableForDisplayDensity(
|
||||
Context context, @DrawableRes int drawable) {
|
||||
int density = context.getResources().getDisplayMetrics().densityDpi;
|
||||
return context.getResources().getDrawableForDensity(
|
||||
com.android.internal.R.drawable.ic_corp_user_badge,
|
||||
displayDensity, context.getTheme());
|
||||
drawable, density, context.getTheme());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,7 +174,8 @@ public class UserIconDrawable extends Drawable implements Drawable.Callback {
|
||||
boolean isManaged = context.getSystemService(DevicePolicyManager.class)
|
||||
.getProfileOwnerAsUser(userId) != null;
|
||||
if (isManaged) {
|
||||
badge = getManagedUserBadgeDrawable(context);
|
||||
badge = getDrawableForDisplayDensity(
|
||||
context, com.android.internal.R.drawable.ic_corp_badge_case);
|
||||
}
|
||||
return setBadge(badge);
|
||||
}
|
||||
@@ -322,7 +333,6 @@ public class UserIconDrawable extends Drawable implements Drawable.Callback {
|
||||
mIntrinsicRadius, mIconPaint);
|
||||
canvas.restoreToCount(saveId);
|
||||
}
|
||||
|
||||
if (mFrameColor != null) {
|
||||
mFramePaint.setColor(mFrameColor.getColorForState(getState(), Color.TRANSPARENT));
|
||||
}
|
||||
@@ -343,7 +353,6 @@ public class UserIconDrawable extends Drawable implements Drawable.Callback {
|
||||
final float borderRadius = mBadge.getBounds().width() * 0.5f + mBadgeMargin;
|
||||
canvas.drawCircle(badgeLeft + mBadgeRadius, badgeTop + mBadgeRadius,
|
||||
borderRadius, mClearPaint);
|
||||
|
||||
mBadge.draw(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user