Make sure we have SEND_SMS permission before sending an SMS

Fixes #7246
This commit is contained in:
Moxie Marlinspike
2017-12-05 11:35:15 -08:00
parent 8686691a5a
commit 27e11e9627
4 changed files with 96 additions and 84 deletions

View File

@@ -64,6 +64,8 @@ public class Permissions {
private boolean ifNecesary;
private boolean condition = true;
PermissionsBuilder(PermissionObject permissionObject) {
this.permissionObject = permissionObject;
}
@@ -78,6 +80,12 @@ public class Permissions {
return this;
}
public PermissionsBuilder ifNecessary(boolean condition) {
this.ifNecesary = true;
this.condition = condition;
return this;
}
public PermissionsBuilder withRationaleDialog(@NonNull String message, @NonNull @DrawableRes int... headers) {
this.rationalDialogHeader = headers;
this.rationaleDialogMessage = message;
@@ -128,7 +136,7 @@ public class Permissions {
PermissionsRequest request = new PermissionsRequest(allGrantedListener, anyDeniedListener, anyPermanentlyDeniedListener, anyResultListener,
someGrantedListener, someDeniedListener, somePermanentlyDeniedListener);
if (ifNecesary && permissionObject.hasAll(requestedPermissions)) {
if (ifNecesary && (permissionObject.hasAll(requestedPermissions) || !condition)) {
executePreGrantedPermissionsRequest(request);
} else if (rationaleDialogMessage != null && rationalDialogHeader != null) {
executePermissionsRequestWithRationale(request);