From 730970d8a0715f74ab6812483f7cf7943f2e1df5 Mon Sep 17 00:00:00 2001 From: Adam Bookatz Date: Mon, 15 Nov 2021 20:39:01 -0800 Subject: [PATCH] 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 --- .../android/settingslib/drawable/UserIconDrawable.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java b/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java index 71bf9f6f59fc4..a781a629b7a1a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java @@ -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); }