package toolbox.analysis;
import java.util.Collection;
import java.util.LinkedList;
import com.ensoftcorp.open.android.essentials.permissions.Permission;
import com.ensoftcorp.open.android.essentials.permissions.PermissionGroup;
import com.ensoftcorp.open.android.essentials.permissions.ProtectionLevel;
public class Example2 {
/**
* Returns a collection of Permissions that are used in the permission group
* @param permissionGroup The PermissionGroup to query against
* @param apiVersion The Android API level to query against
* @return A collection of used permissions
*/
public static Collection<Permission> getUsedPermissionGroupPermissions(PermissionGroup permissionGroup, int apiVersion) {
Collection<Permission> usedPermissions = new LinkedList<Permission>();
// for each permission in the given permission group
for(Permission permission : permissionGroup.getPermissions()){
// check and add permission if it is used
if(Example1.isPermissionUsed(permission, apiVersion)){
usedPermissions.add(permission);
}
}
return usedPermissions;
}
/**
* Returns true if the given permission group is used in the Android app
* @param permissionGroup The PermissionGroup to query against
* @param apiVersion The Android API level to query against
* @return Returns true if the permission group is used, false otherwise
*/
public static boolean isPermissionGroupUsed(PermissionGroup permissionGroup, int apiVersion) {
return !getUsedPermissionGroupPermissions(permissionGroup, apiVersion).isEmpty();
}
/**
* Returns a collection of Permissions that are used in the protection level
* @param protectionLevel The ProtectionLevel to query against
* @param apiVersion The Android API level to query against
* @return A collection of used permissions
*/
public static Collection<Permission> getUsedProtectionLevelPermissions(ProtectionLevel protectionLevel, int apiVersion) {
Collection<Permission> usedPermissions = new LinkedList<Permission>();
// for each permission in the given protection level
for(Permission permission : protectionLevel.getPermissions()){
// check and add permission if it is used
if(Example1.isPermissionUsed(permission, apiVersion)){
usedPermissions.add(permission);
}
}
return usedPermissions;
}
/**
* Returns true if the given protection level is used in the Android app
* @param protectionLevel The ProtectionLevel to query against
* @param apiVersion The Android API level to query against
* @return Returns true if the permission group is used, false otherwise
*/
public static boolean isProtectionLevelUsed(ProtectionLevel protectionLevel, int apiVersion) {
return !getUsedProtectionLevelPermissions(protectionLevel, apiVersion).isEmpty();
}
}