summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-09-11 16:40:12 -0700
committerThe Android Automerger <android-build@google.com>2015-09-15 14:31:12 -0700
commit9b9010b923e55c9d861a9710773d695f04ab4ac1 (patch)
tree5b5b5280e68da692cf2b53366ce1ea6515077d4b
parentab2af01a8e3a1a6264354503def0b63fae1d899d (diff)
downloadandroid_packages_apps_PackageInstaller-9b9010b923e55c9d861a9710773d695f04ab4ac1.tar.gz
android_packages_apps_PackageInstaller-9b9010b923e55c9d861a9710773d695f04ab4ac1.tar.bz2
android_packages_apps_PackageInstaller-9b9010b923e55c9d861a9710773d695f04ab4ac1.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();