Allow overriding managed profile notification badge
Bug: 203548565 Bug: 188410712 Test: manual Change-Id: I7e66442583e061d03db7281ab3d367ca88a832cb
This commit is contained in:
committed by
Kholoud Mohamed
parent
dc0bab518f
commit
3df423f2a8
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user