12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- //
- // RNPCamera.m
- // ReactNativePermissions
- //
- // Created by Yonah Forst on 11/07/16.
- // Copyright © 2016 Yonah Forst. All rights reserved.
- //
-
- #import "RNPAudioVideo.h"
-
- #import <AVFoundation/AVFoundation.h>
-
- @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
|