diff options
| -rw-r--r-- | core/java/android/app/Notification.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index d57c288165d5..6a147720f8e9 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -17,6 +17,10 @@ package android.app; import static android.annotation.Dimension.DP; +import static android.app.admin.DevicePolicyResources.Drawables.Source.NOTIFICATION; +import static android.app.admin.DevicePolicyResources.Drawables.Style.SOLID_COLORED; +import static android.app.admin.DevicePolicyResources.Drawables.UNDEFINED; +import static android.app.admin.DevicePolicyResources.Drawables.WORK_PROFILE_ICON; import static android.graphics.drawable.Icon.TYPE_URI; import static android.graphics.drawable.Icon.TYPE_URI_ADAPTIVE_BITMAP; @@ -39,6 +43,7 @@ import android.annotation.StyleableRes; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.app.admin.DevicePolicyManager; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; @@ -71,6 +76,7 @@ import android.os.Parcelable; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; +import android.os.UserManager; import android.provider.Settings; import android.text.BidiFormatter; import android.text.SpannableStringBuilder; @@ -5046,6 +5052,18 @@ public class Notification implements Parcelable } // Note: This assumes that the current user can read the profile badge of the // originating user. + DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class); + return dpm.getDrawable( + getUpdatableProfileBadgeId(), SOLID_COLORED, NOTIFICATION, + this::getDefaultProfileBadgeDrawable); + } + + private String getUpdatableProfileBadgeId() { + return mContext.getSystemService(UserManager.class).isManagedProfile() + ? WORK_PROFILE_ICON : UNDEFINED; + } + + private Drawable getDefaultProfileBadgeDrawable() { return mContext.getPackageManager().getUserBadgeForDensityNoBackground( new UserHandle(mContext.getUserId()), 0); } |