Skip to content

Commit 2ec6dec

Browse files
committed
Fix MPMediaLibrary not available on simulators / iOS < 9.3
1 parent b8adb13 commit 2ec6dec

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

ios/Permissions/RNPMediaLibrary.m

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,45 @@ @implementation RNPMediaLibrary
1313

1414
+ (NSString *)getStatus
1515
{
16-
switch ([MPMediaLibrary authorizationStatus]) {
17-
case MPMediaLibraryAuthorizationStatusAuthorized:
18-
return RNPStatusAuthorized;
19-
case MPMediaLibraryAuthorizationStatusDenied:
20-
return RNPStatusDenied;
21-
case MPMediaLibraryAuthorizationStatusRestricted:
22-
return RNPStatusRestricted;
23-
default:
24-
return RNPStatusUndetermined;
16+
#if TARGET_OS_SIMULATOR
17+
return RNPStatusRestricted;
18+
#else
19+
if (@available(iOS 9.3, *)) {
20+
switch ([MPMediaLibrary authorizationStatus]) {
21+
case MPMediaLibraryAuthorizationStatusAuthorized:
22+
return RNPStatusAuthorized;
23+
case MPMediaLibraryAuthorizationStatusDenied:
24+
return RNPStatusDenied;
25+
case MPMediaLibraryAuthorizationStatusRestricted:
26+
return RNPStatusRestricted;
27+
default:
28+
return RNPStatusUndetermined;
29+
}
30+
} else {
31+
return RNPStatusAuthorized;
2532
}
33+
#endif
2634
}
2735

2836
+ (void)request:(void (^)(NSString *))completionHandler
2937
{
30-
void (^handler)(void) = ^(void) {
31-
dispatch_async(dispatch_get_main_queue(), ^{
32-
completionHandler([self.class getStatus]);
33-
});
34-
};
38+
#if TARGET_OS_SIMULATOR
39+
completionHandler(RNPStatusRestricted);
40+
#else
41+
if (@available(iOS 9.3, *)) {
42+
void (^handler)(void) = ^(void) {
43+
dispatch_async(dispatch_get_main_queue(), ^{
44+
completionHandler([self.class getStatus]);
45+
});
46+
};
3547

36-
[MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus status){
37-
handler();
38-
}];
48+
[MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus status){
49+
handler();
50+
}];
51+
} else {
52+
completionHandler(RNPStatusAuthorized);
53+
}
54+
#endif
3955
}
56+
4057
@end

0 commit comments

Comments
 (0)