Don't show corp badge for supervised users

Some users have a profile owner, not because they are a corp user, but
because they are supervised. Such users should not have a corp badge
shown.

Bug: 202042272
Test: manual
Change-Id: If5238035440d79aff6b2b0c926286840b4269c45
This commit is contained in:
Adam Bookatz
2021-11-15 20:39:01 -08:00
parent 2cb0187713
commit 730970d8a0

View File

@@ -175,9 +175,12 @@ public class UserIconDrawable extends Drawable implements Drawable.Callback {
public UserIconDrawable setBadgeIfManagedUser(Context context, int userId) {
Drawable badge = null;
if (userId != UserHandle.USER_NULL) {
boolean isManaged = context.getSystemService(DevicePolicyManager.class)
.getProfileOwnerAsUser(userId) != null;
if (isManaged) {
DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
boolean isCorp =
dpm.getProfileOwnerAsUser(userId) != null // has an owner
&& dpm.getProfileOwnerOrDeviceOwnerSupervisionComponent(UserHandle.of(userId))
== null; // and has no supervisor
if (isCorp) {
badge = getDrawableForDisplayDensity(
context, com.android.internal.R.drawable.ic_corp_badge_case);
}