From 20dcaf2cb3966dcd140385052fc3aa14605af97e Mon Sep 17 00:00:00 2001 From: Miguel Revetria Date: Fri, 4 Dec 2015 10:22:16 -0300 Subject: [PATCH] CB-10128: [iOS] Fixed how checks access authorization to camera & library. This closes #146 --- src/ios/CDVCamera.m | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ios/CDVCamera.m b/src/ios/CDVCamera.m index 850f447..1fae2e2 100644 --- a/src/ios/CDVCamera.m +++ b/src/ios/CDVCamera.m @@ -558,11 +558,14 @@ static NSString* toBase64(NSData* data) { dispatch_block_t invoke = ^ (void) { CDVPluginResult* result; - if ([ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusAuthorized) { - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no image selected"]; - } else { + if (picker.sourceType == UIImagePickerControllerSourceTypeCamera && [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] != ALAuthorizationStatusAuthorized) { + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"has no access to camera"]; + } else if (picker.sourceType != UIImagePickerControllerSourceTypeCamera && [ALAssetsLibrary authorizationStatus] != ALAuthorizationStatusAuthorized) { result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"has no access to assets"]; + } else { + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no image selected"]; } + [weakSelf.commandDelegate sendPluginResult:result callbackId:cameraPicker.callbackId];