55@implementation RNPermissionHandlerPhotoLibraryAddOnly
66
77+ (NSArray <NSString *> * _Nonnull)usageDescriptionKeys {
8- return @[@" NSPhotoLibraryUsageDescription " ];
8+ return @[@" NSPhotoLibraryAddUsageDescription " ];
99}
1010
1111+ (NSString * _Nonnull)handlerUniqueId {
@@ -14,25 +14,21 @@ + (NSString * _Nonnull)handlerUniqueId {
1414
1515- (void )checkWithResolver : (void (^ _Nonnull)(RNPermissionStatus))resolve
1616 rejecter : (void (__unused ^ _Nonnull)(NSError * _Nonnull))reject {
17- PHAuthorizationStatus status;
18-
1917 if (@available (iOS 14.0 , *)) {
20- status = [PHPhotoLibrary authorizationStatusForAccessLevel: PHAccessLevelAddOnly];
18+ switch ([PHPhotoLibrary authorizationStatusForAccessLevel: PHAccessLevelAddOnly]) {
19+ case PHAuthorizationStatusNotDetermined:
20+ return resolve (RNPermissionStatusNotDetermined);
21+ case PHAuthorizationStatusRestricted:
22+ return resolve (RNPermissionStatusRestricted);
23+ case PHAuthorizationStatusDenied:
24+ return resolve (RNPermissionStatusDenied);
25+ case PHAuthorizationStatusLimited:
26+ return resolve (RNPermissionStatusLimited);
27+ case PHAuthorizationStatusAuthorized:
28+ return resolve (RNPermissionStatusAuthorized);
29+ }
2130 } else {
22- status = [PHPhotoLibrary authorizationStatus ];
23- }
24-
25- switch (status) {
26- case PHAuthorizationStatusNotDetermined:
27- return resolve (RNPermissionStatusNotDetermined);
28- case PHAuthorizationStatusRestricted:
29- return resolve (RNPermissionStatusRestricted);
30- case PHAuthorizationStatusDenied:
31- return resolve (RNPermissionStatusDenied);
32- case PHAuthorizationStatusLimited:
33- return resolve (RNPermissionStatusLimited);
34- case PHAuthorizationStatusAuthorized:
35- return resolve (RNPermissionStatusAuthorized);
31+ return resolve (RNPermissionStatusNotAvailable);
3632 }
3733}
3834
@@ -43,9 +39,7 @@ - (void)requestWithResolver:(void (^ _Nonnull)(RNPermissionStatus))resolve
4339 [self checkWithResolver: resolve rejecter: reject];
4440 }];
4541 } else {
46- [PHPhotoLibrary requestAuthorization: ^(__unused PHAuthorizationStatus status) {
47- [self checkWithResolver: resolve rejecter: reject];
48- }];
42+ return resolve (RNPermissionStatusNotAvailable);
4943 }
5044}
5145
0 commit comments