@@ -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