From 30707bb7a27157d5124b0c648509c0e63d1da392 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Fri, 11 Sep 2015 16:40:12 -0700 Subject: 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 --- .../packageinstaller/permission/model/PermissionApps.java | 4 ++-- .../permission/model/PermissionStatusReceiver.java | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/com/android/packageinstaller/permission/model') 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 launcherPkgs = Utils.getLauncherPackages(context); // Indexed by uid. - SparseArray grantedApps = new SparseArray<>(); - SparseArray allApps = new SparseArray<>(); + ArrayMap grantedApps = new ArrayMap<>(); + ArrayMap 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(); -- cgit v1.2.3