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
This commit is contained in:
@@ -144,7 +144,6 @@ public class BatteryUtils {
|
|||||||
sInstance = null;
|
sInstance = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Gets the process time */
|
/** Gets the process time */
|
||||||
public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid, int which) {
|
public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid, int which) {
|
||||||
if (uid == null) {
|
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.
|
* Parses proto object from string.
|
||||||
*
|
*
|
||||||
|
@@ -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) {
|
synchronized (sPackageNameAndUidCacheLock) {
|
||||||
sPackageNameAndUidCache.put(packageName, uid);
|
sPackageNameAndUidCache.put(packageName, uid);
|
||||||
}
|
}
|
||||||
@@ -379,8 +380,7 @@ public class BatteryDiffEntry {
|
|||||||
mAppIcon = nameAndIconForUser.mIcon;
|
mAppIcon = nameAndIconForUser.mIcon;
|
||||||
mAppLabel = nameAndIconForUser.mName;
|
mAppLabel = nameAndIconForUser.mName;
|
||||||
putResourceCache(
|
putResourceCache(
|
||||||
getKey(),
|
getKey(), new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
|
||||||
new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
|
case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
|
||||||
@@ -392,8 +392,7 @@ public class BatteryDiffEntry {
|
|||||||
mAppIconId = nameAndIconForSystem.mIconId;
|
mAppIconId = nameAndIconForSystem.mIconId;
|
||||||
mAppIcon = mContext.getDrawable(nameAndIconForSystem.mIconId);
|
mAppIcon = mContext.getDrawable(nameAndIconForSystem.mIconId);
|
||||||
}
|
}
|
||||||
putResourceCache(
|
putResourceCache(getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
|
||||||
getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ConvertUtils.CONSUMER_TYPE_UID_BATTERY:
|
case ConvertUtils.CONSUMER_TYPE_UID_BATTERY:
|
||||||
@@ -406,8 +405,7 @@ public class BatteryDiffEntry {
|
|||||||
mAppIcon = getBadgeIconForUser(mAppIcon);
|
mAppIcon = getBadgeIconForUser(mAppIcon);
|
||||||
if (mAppLabel != null || mAppIcon != null) {
|
if (mAppLabel != null || mAppIcon != null) {
|
||||||
putResourceCache(
|
putResourceCache(
|
||||||
getKey(),
|
getKey(), new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
|
||||||
new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user