summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2013-05-23 07:41:09 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-23 07:41:09 -0700
commit77049e1303bba3056c4a1353d3c03421d0ba27f7 (patch)
treeef191b368dbcc94f0cc7ae1424916e167cb4dd99
parent6c5b979917b8189d7de75f9d622899ba1fb9e6d1 (diff)
parent60b4afedbeea11983b748d0d8ea9032d177dd6e7 (diff)
downloadframeworks_base-77049e1303bba3056c4a1353d3c03421d0ba27f7.zip
frameworks_base-77049e1303bba3056c4a1353d3c03421d0ba27f7.tar.gz
frameworks_base-77049e1303bba3056c4a1353d3c03421d0ba27f7.tar.bz2
am 60b4afed: Merge "Fix account filtering for specific package name" into jb-mr2-dev
* commit '60b4afedbeea11983b748d0d8ea9032d177dd6e7': Fix account filtering for specific package name
-rw-r--r--services/java/com/android/server/accounts/AccountManagerService.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/services/java/com/android/server/accounts/AccountManagerService.java b/services/java/com/android/server/accounts/AccountManagerService.java
index 3b63937..0fbde37 100644
--- a/services/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/java/com/android/server/accounts/AccountManagerService.java
@@ -2802,12 +2802,19 @@ public class AccountManagerService
if (sharedAccounts == null || sharedAccounts.length == 0) return unfiltered;
String requiredAccountType = "";
try {
- for (String packageName : packages) {
- PackageInfo pi = mPackageManager.getPackageInfo(packageName, 0);
+ // If there's an explicit callingPackage specified, check if that package
+ // opted in to see restricted accounts.
+ if (callingPackage != null) {
+ PackageInfo pi = mPackageManager.getPackageInfo(callingPackage, 0);
if (pi != null && pi.restrictedAccountType != null) {
requiredAccountType = pi.restrictedAccountType;
- // If it matches the package name of the original caller, use this choice.
- if (callingPackage != null && packageName.equals(callingPackage)) {
+ }
+ } else {
+ // Otherwise check if the callingUid has a package that has opted in
+ for (String packageName : packages) {
+ PackageInfo pi = mPackageManager.getPackageInfo(packageName, 0);
+ if (pi != null && pi.restrictedAccountType != null) {
+ requiredAccountType = pi.restrictedAccountType;
break;
}
}