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