summaryrefslogtreecommitdiffstats
path: root/packages/SettingsLib
diff options
context:
space:
mode:
authorTodd Volkert <tvolkert@google.com>2015-06-24 18:24:18 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-24 18:24:18 +0000
commit77d6fac75eb3b9d320299f8e09398f0f079c2111 (patch)
treec3968bcc7a89a6e990492b3b9f25b91061b134a7 /packages/SettingsLib
parent46de9f562ce1a9d424d051ad28002fec28a063e2 (diff)
parent5f8e4675ae88149b4bf5fff318a88dddb054cf68 (diff)
downloadframeworks_base-77d6fac75eb3b9d320299f8e09398f0f079c2111.zip
frameworks_base-77d6fac75eb3b9d320299f8e09398f0f079c2111.tar.gz
frameworks_base-77d6fac75eb3b9d320299f8e09398f0f079c2111.tar.bz2
am 5f8e4675: Remove unused PermissionsInfo class
* commit '5f8e4675ae88149b4bf5fff318a88dddb054cf68': Remove unused PermissionsInfo class
Diffstat (limited to 'packages/SettingsLib')
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/applications/PermissionsInfo.java192
1 files changed, 0 insertions, 192 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/PermissionsInfo.java b/packages/SettingsLib/src/com/android/settingslib/applications/PermissionsInfo.java
deleted file mode 100644
index 8b38a5f..0000000
--- a/packages/SettingsLib/src/com/android/settingslib/applications/PermissionsInfo.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settingslib.applications;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.PermissionGroupInfo;
-import android.content.pm.PermissionInfo;
-import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
-import android.os.Build;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.util.ArrayMap;
-import android.util.Log;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-public class PermissionsInfo {
-
- private static final String TAG = "PermissionsInfo";
-
- private final PackageManager mPm;
- private final ArrayList<PermissionGroup> mGroups = new ArrayList<>();
- private final Map<String, PermissionGroup> mGroupLookup = new ArrayMap<>();
- private final Callback mCallback;
- private final Context mContext;
- // Count of apps that request runtime permissions.
- private int mRuntimePermAppsCt;
- // Count of apps that are granted runtime permissions.
- private int mRuntimePermAppsGrantedCt;
-
- public PermissionsInfo(Context context, Callback callback) {
- mContext = context;
- mPm = context.getPackageManager();
- mCallback = callback;
- new PermissionsLoader().execute();
- }
-
- public List<PermissionGroup> getGroups() {
- synchronized (mGroups) {
- return new ArrayList<>(mGroups);
- }
- }
-
- public int getRuntimePermAppsCount() {
- return mRuntimePermAppsCt;
- }
-
- public int getRuntimePermAppsGrantedCount() {
- return mRuntimePermAppsGrantedCt;
- }
-
- private PermissionGroup getOrCreateGroup(String permission) {
- PermissionGroup group = mGroupLookup.get(permission);
- if (group == null) {
- // Some permissions don't have a group, in that case treat them like a group
- // and create their own PermissionGroup (only if they are runtime).
- try {
- PermissionInfo info = mPm.getPermissionInfo(permission, 0);
- if (info.protectionLevel == PermissionInfo.PROTECTION_DANGEROUS) {
- group = new PermissionGroup();
- // TODO: Add default permission icon.
- group.icon = info.icon != 0 ? info.loadIcon(mPm) : mContext.getDrawable(
- com.android.internal.R.drawable.ic_perm_device_info);
- group.name = info.name;
- group.packageName = info.packageName;
- group.label = info.loadLabel(mPm).toString();
- mGroups.add(group);
- mGroupLookup.put(permission, group);
- }
- } catch (NameNotFoundException e) {
- Log.w(TAG, "Unknown permission " + permission, e);
- }
- }
- return group;
- }
-
- private class PermissionsLoader extends AsyncTask<Void, Void, Void> {
-
- @Override
- protected Void doInBackground(Void... params) {
- List<PermissionGroupInfo> groups =
- mPm.getAllPermissionGroups(PackageManager.GET_META_DATA);
- // Get the groups.
- for (PermissionGroupInfo groupInfo : groups) {
- PermissionGroup group = new PermissionGroup();
- // TODO: Add default permission icon.
- group.icon = groupInfo.icon != 0 ? groupInfo.loadIcon(mPm) : mContext.getDrawable(
- com.android.internal.R.drawable.ic_perm_device_info);
- group.name = groupInfo.name;
- group.packageName = groupInfo.packageName;
- group.label = groupInfo.loadLabel(mPm).toString();
- synchronized (mGroups) {
- mGroups.add(group);
- }
- }
- // Load permissions and which are runtime.
- for (PermissionGroup group : mGroups) {
- try {
- List<PermissionInfo> permissions =
- mPm.queryPermissionsByGroup(group.name, 0);
- for (PermissionInfo info : permissions) {
- if (info.protectionLevel != PermissionInfo.PROTECTION_DANGEROUS) continue;
- mGroupLookup.put(info.name, group);
- }
- } catch (NameNotFoundException e) {
- Log.w(TAG, "Problem getting permissions", e);
- }
- }
- // Load granted info.
- for (UserHandle user : UserManager.get(mContext).getUserProfiles()) {
- List<PackageInfo> allApps = mPm.getInstalledPackages(
- PackageManager.GET_PERMISSIONS, user.getIdentifier());
- for (PackageInfo info : allApps) {
- if (info.applicationInfo.targetSdkVersion <= Build.VERSION_CODES.LOLLIPOP_MR1
- || info.requestedPermissions == null) {
- continue;
- }
- final int N = info.requestedPermissionsFlags.length;
- boolean appHasRuntimePerms = false;
- boolean appGrantedRuntimePerms = false;
- for (int i = 0; i < N; i++) {
- boolean granted = (info.requestedPermissionsFlags[i]
- & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0;
- PermissionGroup group = getOrCreateGroup(info.requestedPermissions[i]);
- String key = Integer.toString(info.applicationInfo.uid);
- if (group != null && !group.possibleApps.contains(key)) {
- appHasRuntimePerms = true;
- group.possibleApps.add(key);
- if (granted) {
- appGrantedRuntimePerms = true;
- group.grantedApps.add(key);
- }
- }
- }
- if (appHasRuntimePerms) {
- mRuntimePermAppsCt++;
- if (appGrantedRuntimePerms) {
- mRuntimePermAppsGrantedCt++;
- }
- }
- }
- }
- Collections.sort(mGroups);
-
- return null;
- }
-
- @Override
- protected void onPostExecute(Void result) {
- mCallback.onPermissionLoadComplete();
- }
- }
-
- public static class PermissionGroup implements Comparable<PermissionGroup> {
- public final List<String> possibleApps = new ArrayList<>();
- public final List<String> grantedApps = new ArrayList<>();
- public String name;
- public String packageName;
- public String label;
- public Drawable icon;
-
- @Override
- public int compareTo(PermissionGroup another) {
- return label.compareTo(another.label);
- }
- }
-
- public interface Callback {
- void onPermissionLoadComplete();
- }
-
-}