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

Commit cd516c8d authored by Jun Lan's avatar Jun Lan
Browse files

Fix work profile apps are in Uninstalled

Context: work profile apps needs to pass userId to packageManager to get the uid.
Fixed screenshot: https://screenshot.googleplex.com/AkXfMWvmREyQJvv

Bug: 315477872
Fix: 315477872
Test: manual
Change-Id: I96eb42ef6ce27f15415f0e1fc32060d69b3fab2d
parent 1ab510bc
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@ public class BatteryUtils {
        sInstance = null;
    }


    /** Gets the process time */
    public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid, int which) {
        if (uid == null) {
@@ -344,6 +343,25 @@ public class BatteryUtils {
        }
    }

    /**
     * Find package uid from package name
     *
     * @param packageName used to find the uid
     * @param userId The user handle identifier to look up the package under
     * @return uid for packageName, or {@link #UID_NULL} if exception happens or {@code packageName}
     *     is null
     */
    public int getPackageUidAsUser(String packageName, int userId) {
        try {
            return packageName == null
                    ? UID_NULL
                    : mPackageManager.getPackageUidAsUser(
                            packageName, PackageManager.GET_META_DATA, userId);
        } catch (PackageManager.NameNotFoundException e) {
            return UID_NULL;
        }
    }

    /**
     * Parses proto object from string.
     *
+5 −7
Original line number Diff line number Diff line
@@ -324,7 +324,8 @@ public class BatteryDiffEntry {
            }
        }

        int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName);
        int uid =
                BatteryUtils.getInstance(mContext).getPackageUidAsUser(packageName, (int) mUserId);
        synchronized (sPackageNameAndUidCacheLock) {
            sPackageNameAndUidCache.put(packageName, uid);
        }
@@ -379,8 +380,7 @@ public class BatteryDiffEntry {
                    mAppIcon = nameAndIconForUser.mIcon;
                    mAppLabel = nameAndIconForUser.mName;
                    putResourceCache(
                            getKey(),
                            new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                            getKey(), new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                }
                break;
            case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
@@ -392,8 +392,7 @@ public class BatteryDiffEntry {
                        mAppIconId = nameAndIconForSystem.mIconId;
                        mAppIcon = mContext.getDrawable(nameAndIconForSystem.mIconId);
                    }
                    putResourceCache(
                            getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
                    putResourceCache(getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
                }
                break;
            case ConvertUtils.CONSUMER_TYPE_UID_BATTERY:
@@ -406,8 +405,7 @@ public class BatteryDiffEntry {
                mAppIcon = getBadgeIconForUser(mAppIcon);
                if (mAppLabel != null || mAppIcon != null) {
                    putResourceCache(
                            getKey(),
                            new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                            getKey(), new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                }
                break;
        }