Skip to content
Snippets Groups Projects
Commit 36d9999d authored by cruxfilm's avatar cruxfilm
Browse files

Removed dedundant .FINISH state

parent 4366bec1
No related branches found
No related tags found
1 merge request!72Resolve "Fix permission request text"
......@@ -9,15 +9,12 @@
import Contacts
enum PermissionState {
case CONTACTPERMISSION, NOTIFICATIONPERMISSION, CONTACTDENIED, FINISH
case CONTACTPERMISSION, NOTIFICATIONPERMISSION, CONTACTDENIED
}
class PermissionModel: ObservableObject {
@Published var currentState: PermissionState = .CONTACTPERMISSION
private var contactStore = CNContactStore()
init() {
currentState = .CONTACTPERMISSION
......@@ -27,53 +24,42 @@ class PermissionModel: ObservableObject {
func requestForAccess(_ completionHandler: @escaping (_ accessGranted: Bool) -> Void) {
//requesting for authorization
let authorizationStatus = CNContactStore.authorizationStatus(for: CNEntityType.contacts)
switch authorizationStatus {
case .authorized:
completionHandler(true)
case .notDetermined:
self.contactStore.requestAccess(for: CNEntityType.contacts, completionHandler: { (access, accessError) -> Void in
self.contactStore.requestAccess(for: CNEntityType.contacts) { (access, accessError) -> Void in
if access {
completionHandler(access)
} else {
if authorizationStatus == CNAuthorizationStatus.denied {
}
if authorizationStatus == CNAuthorizationStatus.denied { }
completionHandler(false)
}
})
}
default:
completionHandler(false)
}
}
func contactCheck(_ accessGranted: Bool) {
if accessGranted {
requestForNotifications()
} else {
DispatchQueue.main.async {
self.currentState = .CONTACTDENIED
}
do{
sleep(3)
}
self.requestForNotifications()
/*DispatchQueue.main.async(execute: {
self.showMessage(NSLocalizedString("AccessNotGranted", comment: ""), completion: self.requestForNotifications)
});*/
DispatchQueue.main.async { self.currentState = .CONTACTDENIED }
do { sleep(3) }
self.requestForNotifications()
}
}
func requestForNotifications(){
DispatchQueue.main.async {
self.currentState = .NOTIFICATIONPERMISSION
}
self.currentState = .NOTIFICATIONPERMISSION
}
UNUserNotificationCenter.current().requestAuthorization(options: [ .badge], completionHandler: {didAllow, error in
DispatchQueue.main.async {
self.currentState = .FINISH
LetterboxModel.instance.afterPermissions()
}
})
......@@ -81,15 +67,11 @@ class PermissionModel: ObservableObject {
func showMessage(_ message: String, completion: (() -> Void)?) {
let alertController = UIAlertController(title: "Letterbox", message: message, preferredStyle: UIAlertController.Style.alert)
let dismissAction = UIAlertAction(title: "OK", style: UIAlertAction.Style.default) { (action: UIAlertAction) -> Void in
if let cb = completion {
cb()
}
if let cb = completion { cb() }
}
alertController.addAction(dismissAction)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment