summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/AppSecurityPermissions.java
diff options
context:
space:
mode:
authorSuchi Amalapurapu <asuchitra@google.com>2009-05-27 14:11:50 -0700
committerSuchi Amalapurapu <asuchitra@google.com>2009-05-27 14:14:09 -0700
commitc7b14e92075b8a0250ccc8bb4aa21e61d620a708 (patch)
tree17519d64aff19c8a45a2ca4041b68dc48ecb2c7d /core/java/android/widget/AppSecurityPermissions.java
parentcf2119a9755d9e2713ce78e84d0826d430a11a62 (diff)
downloadframeworks_base-c7b14e92075b8a0250ccc8bb4aa21e61d620a708.zip
frameworks_base-c7b14e92075b8a0250ccc8bb4aa21e61d620a708.tar.gz
frameworks_base-c7b14e92075b8a0250ccc8bb4aa21e61d620a708.tar.bz2
Fix a bug in AppSecurityPermissions where it wouldn't display permissions used by an app if it uses a shared user id.
Remove the else clause and always get the list of requested permissions first before adding the permissions obtained via the shared user id. Also change an if condition and comments for better readability
Diffstat (limited to 'core/java/android/widget/AppSecurityPermissions.java')
-rwxr-xr-xcore/java/android/widget/AppSecurityPermissions.java31
1 files changed, 13 insertions, 18 deletions
diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java
index 5fa00e7..c4b5ef8 100755
--- a/core/java/android/widget/AppSecurityPermissions.java
+++ b/core/java/android/widget/AppSecurityPermissions.java
@@ -124,25 +124,25 @@ public class AppSecurityPermissions implements View.OnClickListener {
if(pkg == null) {
return;
}
- // Extract shared user permissions if any
+ // Get requested permissions
+ if (pkg.requestedPermissions != null) {
+ ArrayList<String> strList = pkg.requestedPermissions;
+ int size = strList.size();
+ if (size > 0) {
+ extractPerms(strList.toArray(new String[size]), permSet);
+ }
+ }
+ // Get permissions related to shared user if any
if(pkg.mSharedUserId != null) {
int sharedUid;
try {
sharedUid = mPm.getUidForSharedUser(pkg.mSharedUserId);
+ getAllUsedPermissions(sharedUid, permSet);
} catch (NameNotFoundException e) {
Log.w(TAG, "Could'nt retrieve shared user id for:"+pkg.packageName);
- return;
}
- getAllUsedPermissions(sharedUid, permSet);
- } else {
- ArrayList<String> strList = pkg.requestedPermissions;
- int size;
- if((strList == null) || ((size = strList.size()) == 0)) {
- return;
- }
- // Extract permissions defined in current package
- extractPerms(strList.toArray(new String[size]), permSet);
}
+ // Retrieve list of permissions
for(PermissionInfo tmpInfo : permSet) {
mPermsList.add(tmpInfo);
}
@@ -176,14 +176,9 @@ public class AppSecurityPermissions implements View.OnClickListener {
Log.w(TAG, "Could'nt retrieve permissions for package:"+packageName);
return;
}
- if(pkgInfo == null) {
- return;
- }
- String strList[] = pkgInfo.requestedPermissions;
- if(strList == null) {
- return;
+ if ((pkgInfo != null) && (pkgInfo.requestedPermissions != null)) {
+ extractPerms(pkgInfo.requestedPermissions, permSet);
}
- extractPerms(strList, permSet);
}
private void extractPerms(String strList[], Set<PermissionInfo> permSet) {