diff options
| author | Amith Yamasani <yamasani@google.com> | 2013-05-23 07:41:09 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2013-05-23 07:41:09 -0700 |
| commit | 77049e1303bba3056c4a1353d3c03421d0ba27f7 (patch) | |
| tree | ef191b368dbcc94f0cc7ae1424916e167cb4dd99 | |
| parent | 6c5b979917b8189d7de75f9d622899ba1fb9e6d1 (diff) | |
| parent | 60b4afedbeea11983b748d0d8ea9032d177dd6e7 (diff) | |
| download | frameworks_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.java | 15 |
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; } } |
