@Override public boolean isPermissionRequested(String key) { if (key == null) { return false; } return requestedPermissions.contains(key) || isPermissionRequested(Util.getParentKey(key)); }
private void addAvailablePermission(String permission) { String parent = Util.getParentKey(permission); if (parent == null) { parent = ROOT; } Set<String> lookupSet = availablePermissionLookup.get(parent); if (lookupSet == null) { lookupSet = new TreeSet<String>(); availablePermissionLookup.put(parent, lookupSet); } lookupSet.add(permission); }
private void setRequestedPermission(String requested, boolean set, boolean setSubPermissions) { if (requested == null) { return; } if (set) { requestedPermissions.add(requested); if (setSubPermissions) { List<String> subPermissions = getAvailablePermissions(requested); requestedPermissions.addAll(subPermissions); } } else { requestedPermissions.remove(requested); if (setSubPermissions) { List<String> subPermissions = getAvailablePermissions(requested); requestedPermissions.removeAll(subPermissions); } } String parentPermission = Util.getParentKey(requested); setRequestedPermission(parentPermission, allSubPermissionsSet(parentPermission), false); save(); }