am 1c4a44e5: Do not return cross-profile intent results to a non-enabled user.
* commit '1c4a44e577c7b8316172d1bf5357d006776ae75e': Do not return cross-profile intent results to a non-enabled user.
This commit is contained in:
@@ -3929,19 +3929,20 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
// Check for results that need to skip the current profile.
|
||||
ResolveInfo resolveInfo = querySkipCurrentProfileIntents(matchingFilters, intent,
|
||||
resolvedType, flags, userId);
|
||||
if (resolveInfo != null) {
|
||||
if (resolveInfo != null && isUserEnabled(resolveInfo.targetUserId)) {
|
||||
List<ResolveInfo> result = new ArrayList<ResolveInfo>(1);
|
||||
result.add(resolveInfo);
|
||||
return filterIfNotPrimaryUser(result, userId);
|
||||
}
|
||||
// Check for cross profile results.
|
||||
resolveInfo = queryCrossProfileIntents(
|
||||
matchingFilters, intent, resolvedType, flags, userId);
|
||||
|
||||
// Check for results in the current profile.
|
||||
List<ResolveInfo> result = mActivities.queryIntent(
|
||||
intent, resolvedType, flags, userId);
|
||||
if (resolveInfo != null) {
|
||||
|
||||
// Check for cross profile results.
|
||||
resolveInfo = queryCrossProfileIntents(
|
||||
matchingFilters, intent, resolvedType, flags, userId);
|
||||
if (resolveInfo != null && isUserEnabled(resolveInfo.targetUserId)) {
|
||||
result.add(resolveInfo);
|
||||
Collections.sort(result, mResolvePrioritySorter);
|
||||
}
|
||||
@@ -3962,6 +3963,16 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isUserEnabled(int userId) {
|
||||
long callingId = Binder.clearCallingIdentity();
|
||||
try {
|
||||
UserInfo userInfo = sUserManager.getUserInfo(userId);
|
||||
return userInfo != null && userInfo.isEnabled();
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(callingId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter out activities with primaryUserOnly flag set, when current user is not the owner.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user