Easy permissions for Android
Convenience
is a set of tools for making permissions management in Android significantly easier.
Add jitpack.io
repository to your project:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
Then add Convenience
to dependencies list:
dependencies {
implementation 'com.github.igormatyushkin014:Convenience:2.0.1'
}
All operations with permissions are done with PermissionManager
instance which is available via:
PermissionManager permissionManager = Convenience.getPermissions();
Before using Convenience
for permission request, you have to override activity’s onRequestPermissionsResult
method:
@Override
public void onRequestPermissionsResult(
int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults
) {
boolean handledByConvenience = Convenience.getPermissions().onRequestPermissionsResult(
requestCode,
permissions,
grantResults
);
if (!handledByConvenience) {
super.onRequestPermissionsResult(
requestCode,
permissions,
grantResults
);
}
}
String[] permissions = new String[] {
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
Convenience.getPermissions().check(
permissions,
activity,
new PermissionManager.OnRequestListener() {
@Override
public void onResult(CheckResult checkResult) {
if (requestResult.hasBlockedPermissions()) {
// Handle blocked permissions
} else {
// All permissions available
}
}
}
);
CheckResult
instance includes both allowed and blocked permissions:
String[] allowedPermissions = checkResult.getAllowedPermissions();
String[] blockedPermissions = checkResult.getBlockedPermissions();
Ask user to accept permissions:
Convenience.getPermissions().request(
permissions,
activity,
new PermissionManager.OnRequestListener() {
@Override
public void onResult(RequestResult requestResult) {
if (requestResult.hasBlockedPermissions()) {
// Handle blocked permissions
} else {
// All permissions available
}
}
}
);
Also, you can request only those permissions from the list that are currently blocked. It means that, if the permissions list includes accepted permissions, they will not be requested again. User will be asked to accept other permissions that were not accepted before:
Convenience.getPermissions().requestIfNeeded(
permissions,
activity,
new PermissionManager.OnRequestListener() {
@Override
public void onResult(RequestResult requestResult) {
if (requestResult.hasBlockedPermissions()) {
// Handle blocked permissions
} else {
// All permissions available
}
}
}
);
RequestResult
instance includes both allowed and blocked permissions:
String[] allowedPermissions = requestResult.getAllowedPermissions();
String[] blockedPermissions = requestResult.getBlockedPermissions();
Convenience
is available under the Apache 2.0 license. See the LICENSE file for more info.