summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/model/PermissionApps.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/model/PermissionApps.java')
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java48
1 files changed, 29 insertions, 19 deletions
diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java
index e5d96d55..be32f2ac 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionApps.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java
@@ -24,6 +24,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PermissionInfo;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
+import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.ArrayMap;
@@ -35,7 +36,6 @@ import com.android.packageinstaller.R;
import com.android.packageinstaller.permission.utils.Utils;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -120,7 +120,7 @@ public class PermissionApps {
return count;
}
- public Collection<PermissionApp> getApps() {
+ public List<PermissionApp> getApps() {
return mPermApps;
}
@@ -149,9 +149,10 @@ public class PermissionApps {
ArrayList<PermissionApp> permApps = new ArrayList<>();
- for (UserHandle user : UserManager.get(mContext).getUserProfiles()) {
+ UserManager userManager = mContext.getSystemService(UserManager.class);
+ for (UserHandle user : userManager.getUserProfiles()) {
List<PackageInfo> apps = mCache != null ? mCache.getPackages(user.getIdentifier())
- : mPm.getInstalledPackages(PackageManager.GET_PERMISSIONS,
+ : mPm.getInstalledPackagesAsUser(PackageManager.GET_PERMISSIONS,
user.getIdentifier());
final int N = apps.size();
@@ -182,17 +183,31 @@ public class PermissionApps {
|| (requestedPermissionInfo.flags
& PermissionInfo.FLAG_INSTALLED) == 0
|| (requestedPermissionInfo.flags
- & PermissionInfo.FLAG_HIDDEN) != 0) {
+ & PermissionInfo.FLAG_REMOVED) != 0) {
continue;
}
AppPermissionGroup group = AppPermissionGroup.create(mContext,
app, groupInfo, groupPermInfos, user);
+ if (group == null) {
+ continue;
+ }
+
String label = mSkipUi ? app.packageName
: app.applicationInfo.loadLabel(mPm).toString();
- PermissionApp permApp = new PermissionApp(app.packageName,
- group, label, getBadgedIcon(app.applicationInfo),
+
+ Drawable icon = null;
+ if (!mSkipUi) {
+ UserHandle userHandle = new UserHandle(
+ UserHandle.getUserId(group.getApp().applicationInfo.uid));
+
+ icon = mPm.getUserBadgedIcon(
+ mPm.loadUnbadgedItemIcon(app.applicationInfo, app.applicationInfo),
+ userHandle);
+ }
+
+ PermissionApp permApp = new PermissionApp(app.packageName, group, label, icon,
app.applicationInfo);
permApps.add(permApp);
@@ -246,15 +261,6 @@ public class PermissionApps {
return null;
}
- private Drawable getBadgedIcon(ApplicationInfo appInfo) {
- if (mSkipUi) {
- return null;
- }
- Drawable unbadged = appInfo.loadUnbadgedIcon(mPm);
- return mPm.getUserBadgedIcon(unbadged,
- new UserHandle(UserHandle.getUserId(appInfo.uid)));
- }
-
private void loadGroupInfo() {
PackageItemInfo info;
try {
@@ -317,6 +323,10 @@ public class PermissionApps {
return mAppPermissionGroup.areRuntimePermissionsGranted();
}
+ public boolean isReviewRequired() {
+ return mAppPermissionGroup.isReviewRequired();
+ }
+
public void grantRuntimePermissions() {
mAppPermissionGroup.grantRuntimePermissions(false);
}
@@ -341,8 +351,8 @@ public class PermissionApps {
return mAppPermissionGroup.hasRuntimePermission();
}
- public boolean hasAppOpPermissions() {
- return mAppPermissionGroup.hasAppOpPermission();
+ public int getUserId() {
+ return mAppPermissionGroup.getUserId();
}
public String getPackageName() {
@@ -401,7 +411,7 @@ public class PermissionApps {
public synchronized List<PackageInfo> getPackages(int userId) {
List<PackageInfo> ret = mPackageInfoCache.get(userId);
if (ret == null) {
- ret = mPm.getInstalledPackages(PackageManager.GET_PERMISSIONS, userId);
+ ret = mPm.getInstalledPackagesAsUser(PackageManager.GET_PERMISSIONS, userId);
mPackageInfoCache.put(userId, ret);
}
return ret;