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:04:15 -0700
commit7445ca7255d491bbc41f7532af758f96f55e0602 (patch)
tree0b241420144763bcfe6be2761092c141acf2a02e
parentca0a235fc9e73dddbd559799aaf05b7895f0358c (diff)
downloadplatform_packages_apps_PackageInstaller-marshmallow-release.tar.gz
platform_packages_apps_PackageInstaller-marshmallow-release.tar.bz2
platform_packages_apps_PackageInstaller-marshmallow-release.zip
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 73fc70893..9365bf13d 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 7bae18f30..2a46f1a67 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();