// // RNPCamera.m // ReactNativePermissions // // Created by Yonah Forst on 11/07/16. // Copyright © 2016 Yonah Forst. All rights reserved. // #import "RNPAudioVideo.h" #import @implementation RNPAudioVideo + (NSString *)getStatus:(NSString *)type { int status = [AVCaptureDevice authorizationStatusForMediaType:[self typeFromString:type]]; switch (status) { case AVAuthorizationStatusAuthorized: return RNPStatusAuthorized; case AVAuthorizationStatusDenied: return RNPStatusDenied; case AVAuthorizationStatusRestricted: return RNPStatusRestricted; default: return RNPStatusUndetermined; } } + (void)request:(NSString *)type completionHandler:(void (^)(NSString *))completionHandler { [AVCaptureDevice requestAccessForMediaType:[self typeFromString:type] completionHandler:^(BOOL granted) { dispatch_async(dispatch_get_main_queue(), ^{ completionHandler([RNPAudioVideo getStatus:type]); }); }]; } + (NSString *)typeFromString:(NSString *)string { if ([string isEqualToString:@"audio"]) { return AVMediaTypeAudio; } else { return AVMediaTypeVideo; } } @end