     }
 
     func requestLocationAlways() {
-        if statusLocationAlways() != .Authorized {
+        switch statusLocationAlways() {
+        case .Unknown:
             locationManager.delegate = self
             locationManager.requestAlwaysAuthorization()
-        } else if statusContacts() == .Unauthorized {
+        case .Unauthorized:
             self.showDeniedAlert(.LocationAlways)
+        default:
+            break
         }
     }
 

    }

    func requestContacts() {
        if statusContacts() == .Unknown {
            ABAddressBookRequestAccessWithCompletion(nil) { (success, error) -> Void in
                self.detectAndCallback()
            }
        } else if statusContacts() == .Unauthorized {
            self.showDeniedAlert(.Contacts)
        }
    }

    public func statusNotifications() -> PermissionStatus {
        let settings = UIApplication.sharedApplication().currentUserNotificationSettings()
        if settings.types != UIUserNotificationType.None {

    }
    
    func requestCamera() {
        switch statusCamera() {
        case .Unknown:
            AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo,
                completionHandler: { (granted) -> Void in
                    self.detectAndCallback()
            })
        case .Unauthorized:
            self.showDeniedAlert(.Camera)
        default:
            break
        }
    }

