Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5abdbb65 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Avoid security exception when requesting badging

When requesting badged icons, use APIs that don't require the caller
to have MANAGE_USERS permission.

Change-Id: I218cdf5194f38f4affa1874a6fcb43a040ed5295
parent 821129f2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -176,6 +176,9 @@ public class LauncherApps {
     */
    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) {
+6 −7
Original line number Diff line number Diff line
@@ -524,15 +524,14 @@ public class UserManager {

    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) {