Merge "Avoid security exception when requesting badging"
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 300955a..5187181 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -176,6 +176,9 @@
*/
public void startActivityForProfile(ComponentName component, Rect sourceBounds,
Bundle opts, UserHandle user) {
+ if (DEBUG) {
+ Log.i(TAG, "StartActivityForProfile " + component + " " + user.getIdentifier());
+ }
try {
mService.startActivityAsUser(component, sourceBounds, opts, user);
} catch (RemoteException re) {
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 6392bd4..031cba7 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -524,15 +524,14 @@
private int getBadgeResIdForUser(int userHandle) {
// Return the framework-provided badge.
- if (userHandle == UserHandle.myUserId()) {
- UserInfo user = getUserInfo(userHandle);
- /* TODO: Allow managed profiles for other users in the future */
- if (!user.isManagedProfile()
- || user.profileGroupId != getUserInfo(UserHandle.USER_OWNER).profileGroupId) {
- return 0;
+ List<UserInfo> userProfiles = getProfiles(UserHandle.myUserId());
+ for (UserInfo user : userProfiles) {
+ if (user.id == userHandle
+ && user.isManagedProfile()) {
+ return com.android.internal.R.drawable.ic_corp_badge;
}
}
- return com.android.internal.R.drawable.ic_corp_badge;
+ return 0;
}
private Drawable getMergedDrawable(Drawable icon, Drawable badge) {