Merge "Ignores AppOps entries belonging to other users" into klp-dev
This commit is contained in:
@@ -243,11 +243,22 @@ public class RecentLocationApps {
|
|||||||
try {
|
try {
|
||||||
ApplicationInfo appInfo = mPackageManager.getApplicationInfo(
|
ApplicationInfo appInfo = mPackageManager.getApplicationInfo(
|
||||||
packageName, PackageManager.GET_META_DATA);
|
packageName, PackageManager.GET_META_DATA);
|
||||||
pref = createRecentLocationEntry(
|
// Multiple users can install the same package. Each user gets a different Uid for
|
||||||
mPackageManager.getApplicationIcon(appInfo),
|
// the same package.
|
||||||
mPackageManager.getApplicationLabel(appInfo),
|
//
|
||||||
highBattery,
|
// Here we retrieve the Uid with package name, that will be the Uid for that package
|
||||||
new PackageEntryClickedListener(packageName));
|
// associated with the current active user. If the Uid differs from the Uid in ops,
|
||||||
|
// that means this entry belongs to another inactive user and we should ignore that.
|
||||||
|
if (appInfo.uid == ops.getUid()) {
|
||||||
|
pref = createRecentLocationEntry(
|
||||||
|
mPackageManager.getApplicationIcon(appInfo),
|
||||||
|
mPackageManager.getApplicationLabel(appInfo),
|
||||||
|
highBattery,
|
||||||
|
new PackageEntryClickedListener(packageName));
|
||||||
|
} else if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
||||||
|
Log.v(TAG, "package " + packageName + " with Uid " + ops.getUid() +
|
||||||
|
" belongs to another inactive account, ignored.");
|
||||||
|
}
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
Log.wtf(TAG, "Package not found: " + packageName);
|
Log.wtf(TAG, "Package not found: " + packageName);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user