summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-09-11 16:40:12 -0700
committerSvet Ganov <svetoslavganov@google.com>2015-09-12 09:57:54 -0700
commit30707bb7a27157d5124b0c648509c0e63d1da392 (patch)
tree0b241420144763bcfe6be2761092c141acf2a02e
parent3c44cc5448eed0b74b37f022e8695c36fb75f33c (diff)
downloadandroid_packages_apps_PackageInstaller-30707bb7a27157d5124b0c648509c0e63d1da392.tar.gz
android_packages_apps_PackageInstaller-30707bb7a27157d5124b0c648509c0e63d1da392.tar.bz2
android_packages_apps_PackageInstaller-30707bb7a27157d5124b0c648509c0e63d1da392.zip
Use unique preference key.
The UI code was wrongly using UID as the key - it is not unique - resulting in keeping only one app per UID in the UI and not showing permission controls for the other apps in this UID. This change uses the unique package plus UID as the preference key. bug:23937944 Change-Id: I859afcf3ec8efdcb62d0e9dacd19f771436da084
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java4
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java12
2 files changed, 8 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java
index 73fc7089..9365bf13 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionApps.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java
@@ -301,7 +301,7 @@ public class PermissionApps {
}
public String getKey() {
- return Integer.toString(getUid());
+ return mPackageName + getUid();
}
public String getLabel() {
@@ -357,7 +357,7 @@ public class PermissionApps {
final int result = mLabel.compareTo(another.mLabel);
if (result == 0) {
// Unbadged before badged.
- return getUid() - another.getUid();
+ return getKey().compareTo(another.getKey());
}
return result;
}
diff --git a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
index 7bae18f3..2a46f1a6 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
@@ -21,8 +21,8 @@ import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
+import android.util.ArrayMap;
import android.util.ArraySet;
-import android.util.SparseArray;
import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp;
import com.android.packageinstaller.permission.utils.Utils;
@@ -108,22 +108,22 @@ public class PermissionStatusReceiver extends BroadcastReceiver {
public boolean getAppsWithPermissionsCount(Context context, int[] counts) {
ArraySet<String> launcherPkgs = Utils.getLauncherPackages(context);
// Indexed by uid.
- SparseArray<Boolean> grantedApps = new SparseArray<>();
- SparseArray<Boolean> allApps = new SparseArray<>();
+ ArrayMap<String, Boolean> grantedApps = new ArrayMap<>();
+ ArrayMap<String, Boolean> allApps = new ArrayMap<>();
for (String group : Utils.MODERN_PERMISSION_GROUPS) {
PermissionApps permissionApps = new PermissionApps(context,
group, null);
permissionApps.loadNowWithoutUi();
for (PermissionApp app : permissionApps.getApps()) {
- int uid = app.getUid();
+ String key = app.getKey();
if (Utils.isSystem(app, launcherPkgs)) {
// We default to not showing system apps, so hide them from count.
continue;
}
if (app.areRuntimePermissionsGranted()) {
- grantedApps.put(uid, true);
+ grantedApps.put(key, true);
}
- allApps.put(uid, true);
+ allApps.put(key, true);
}
}
counts[0] = grantedApps.size();