Skip to content

Commit a520270

Browse files
committed
Fix Permission-PhotoLibraryAddOnly usage description key + avoid usage on iOS < 14
1 parent d02db0b commit a520270

File tree

2 files changed

+16
-22
lines changed

2 files changed

+16
-22
lines changed

ios/PhotoLibraryAddOnly/RNPermissionHandlerPhotoLibraryAddOnly.m

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-permissions",
3-
"version": "3.0.0-beta.1",
3+
"version": "3.0.0-beta.2",
44
"license": "MIT",
55
"description": "An unified permissions API for React Native on iOS and Android",
66
"author": "Mathieu Acthernoene <[email protected]>",

0 commit comments

Comments
 (0)