Skip to content

Commit e74908b

Browse files
committed
Fixes #9 - Camera Roll Access >iOS10
1 parent bff7b16 commit e74908b

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

PAPermissions.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ Pod::Spec.new do |s|
1212

1313
s.source_files = 'PAPermissions/Classes/**/*.{swift}'
1414
s.resources = "PAPermissions/Assets/**/*"
15-
s.ios.framework = ['AVFoundation', 'CoreLocation', 'CoreBluetooth', 'CoreMotion']
15+
s.ios.framework = ['AVFoundation', 'CoreLocation', 'CoreBluetooth', 'CoreMotion', 'Photos']
1616
end

PAPermissions/Classes/Checks/PAPhotoLibraryPermissionsCheck.swift

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,41 @@
77
//
88

99
import UIKit
10+
import Photos
1011

11-
class PAPhotoLibraryPermissionsCheck: PAPermissionsCheck {
12-
12+
public class PAPhotoLibraryPermissionsCheck: PAPermissionsCheck {
13+
14+
public override func checkStatus() {
15+
let currentStatus = self.status
16+
17+
if #available(iOS 8.0, *) {
18+
self.updatePermissions(status: PHPhotoLibrary.authorizationStatus())
19+
} else {
20+
self.status = .unavailable
21+
}
22+
23+
if self.status != currentStatus {
24+
self.updateStatus()
25+
}
26+
}
27+
28+
public override func defaultAction() {
29+
30+
if #available(iOS 8.0, *) {
31+
PHPhotoLibrary.requestAuthorization({ (status: PHAuthorizationStatus) in
32+
self.updatePermissions(status: status)
33+
self.updateStatus()
34+
})
35+
} else {
36+
// Photo Library Only available above iOS 8
37+
}
38+
}
39+
40+
private func updatePermissions(status: PHAuthorizationStatus) {
41+
switch status {
42+
case .authorized: self.status = .enabled
43+
case .denied, .notDetermined: self.status = .disabled
44+
case .restricted: self.status = .unavailable
45+
}
46+
}
1347
}

PAPermissions/Classes/PAPermissionsView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public class PAPermissionsItem {
114114
case .contacts:
115115
return PAPermissionsItem(type: type, identifier: type.rawValue, title: NSLocalizedString("Contacts", comment: ""), reason: localReason, icon: UIImage(named: "pa_contacts_icon", in: Bundle(for: PAPermissionsViewController.self), compatibleWith: nil)!)
116116
case .photoLibrary:
117-
return PAPermissionsItem(type: type, identifier: type.rawValue, title: NSLocalizedString("Photo Library", comment: ""), reason: localReason, icon: UIImage(named: "pa_contacts_icon", in: Bundle(for: PAPermissionsViewController.self), compatibleWith: nil)!)
117+
return PAPermissionsItem(type: type, identifier: type.rawValue, title: NSLocalizedString("Photo Library", comment: ""), reason: localReason, icon: UIImage(named: "pa_photo_library_icon", in: Bundle(for: PAPermissionsViewController.self), compatibleWith: nil)!)
118118
default:
119119
return nil
120120
}

0 commit comments

Comments
 (0)