package org.fdroid.fdroid;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.PermissionInfo;
import android.graphics.drawable.Drawable;
public class Permission {
private final PackageManager packageManager;
private final PermissionInfo permissionInfo;
public Permission(Context context, String permission)
throws PackageManager.NameNotFoundException {
this.packageManager = context.getPackageManager();
this.permissionInfo = this.packageManager.getPermissionInfo(
fdroidToAndroid(permission), PackageManager.GET_META_DATA);
}
/**
* It appears that all of the permissions in android.Manifest.permissions
* are prefixed with "android.permission." and then the constant name.
* FDroid just includes the constant name in the apk list, so we prefix it
* with "android.permission."
*/
private static String fdroidToAndroid(String permission) {
return "android.permission." + permission;
}
public CharSequence getName() {
String label = this.permissionInfo.loadLabel(this.packageManager).toString();
return Character.toUpperCase(label.charAt(0)) + label.substring(1);
}
public CharSequence getDescription() {
return this.permissionInfo.loadDescription(this.packageManager);
}
public Drawable getIcon() {
return this.permissionInfo.loadIcon(this.packageManager);
}
}