@@ -13,24 +13,32 @@ + (NSString * _Nonnull)handlerUniqueId {
1313}
1414
1515- (RNPermissionStatus)currentStatus {
16- switch ([AVCaptureDevice authorizationStatusForMediaType: AVMediaTypeVideo]) {
17- case AVAuthorizationStatusNotDetermined:
18- return RNPermissionStatusNotDetermined;
19- case AVAuthorizationStatusRestricted:
20- return RNPermissionStatusRestricted;
21- case AVAuthorizationStatusDenied:
22- return RNPermissionStatusDenied;
23- case AVAuthorizationStatusAuthorized:
24- return RNPermissionStatusAuthorized;
16+ if (@available (iOS 7.0 , tvOS 17.0 , *)) {
17+ switch ([AVCaptureDevice authorizationStatusForMediaType: AVMediaTypeVideo]) {
18+ case AVAuthorizationStatusNotDetermined:
19+ return RNPermissionStatusNotDetermined;
20+ case AVAuthorizationStatusRestricted:
21+ return RNPermissionStatusRestricted;
22+ case AVAuthorizationStatusDenied:
23+ return RNPermissionStatusDenied;
24+ case AVAuthorizationStatusAuthorized:
25+ return RNPermissionStatusAuthorized;
26+ }
27+ } else {
28+ return RNPermissionStatusNotAvailable;
2529 }
2630}
2731
2832- (void )requestWithResolver : (void (^ _Nonnull)(RNPermissionStatus))resolve
2933 rejecter : (void (^ _Nonnull)(NSError * _Nonnull))reject {
30- [AVCaptureDevice requestAccessForMediaType: AVMediaTypeVideo
31- completionHandler: ^(__unused BOOL granted) {
34+ if (@available (iOS 7.0 , tvOS 17.0 , *)) {
35+ [AVCaptureDevice requestAccessForMediaType: AVMediaTypeVideo
36+ completionHandler: ^(__unused BOOL granted) {
37+ resolve ([self currentStatus ]);
38+ }];
39+ } else {
3240 resolve ([self currentStatus ]);
33- }];
41+ }
3442}
3543
3644@end
0 commit comments