diff options
author | Nicolas Prevot <nprevot@google.com> | 2014-08-18 18:50:41 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-16 04:29:45 +0000 |
commit | f52233df74bb4a3efa1f7b9107353c841eafc933 (patch) | |
tree | 60eaa39880c1f8105962cf6f7bc4934931cb7880 /services/core | |
parent | 3c50bf00a6cb767eaf0100150a4070a554054008 (diff) | |
parent | 376e4ba96222163be1f1cf409dc697550be4a285 (diff) | |
download | frameworks_base-f52233df74bb4a3efa1f7b9107353c841eafc933.zip frameworks_base-f52233df74bb4a3efa1f7b9107353c841eafc933.tar.gz frameworks_base-f52233df74bb4a3efa1f7b9107353c841eafc933.tar.bz2 |
Merge "When forwarding intents, ignoring the package set in the intent." into lmp-dev
Diffstat (limited to 'services/core')
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index c1f7e85..b62c304 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -3204,24 +3204,22 @@ public class PackageManagerService extends IPackageManager.Stub { if (matches.get(i).getTargetUserId() == targetUserId) return true; } } - ArrayList<String> packageNames = null; SparseArray<ArrayList<String>> fromSource = mSettings.mCrossProfilePackageInfo.get(sourceUserId); if (fromSource != null) { packageNames = fromSource.get(targetUserId); - } - if (packageNames != null && packageNames.contains(intent.getPackage())) { - return true; - } - // We need the package name, so we try to resolve with the loosest flags possible - List<ResolveInfo> resolveInfos = mActivities.queryIntent( - intent, resolvedType, PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); - int count = resolveInfos.size(); - for (int i = 0; i < count; i++) { - ResolveInfo resolveInfo = resolveInfos.get(i); - if (packageNames.contains(resolveInfo.activityInfo.packageName)) { - return true; + if (packageNames != null) { + // We need the package name, so we try to resolve with the loosest flags possible + List<ResolveInfo> resolveInfos = mActivities.queryIntent(intent, resolvedType, + PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); + int count = resolveInfos.size(); + for (int i = 0; i < count; i++) { + ResolveInfo resolveInfo = resolveInfos.get(i); + if (packageNames.contains(resolveInfo.activityInfo.packageName)) { + return true; + } + } } } return false; |