             locationManager.requestWhenInUseAuthorization()
         case .Unauthorized:
             self.showDeniedAlert(.LocationInUse)
+        case .Disabled:
+            self.showDisabledAlert(.LocationInUse)
         default:
             break
         }


    func showDeniedAlert(permission: PermissionType) {
        var alert = UIAlertController(title: "Permission for \(permission.rawValue) was denied.",
            message: "Please enable access to \(permission.rawValue) in Settings",
            preferredStyle: .Alert)
        alert.addAction(UIAlertAction(title: "OK",
            style: .Cancel,

            locationManager.requestAlwaysAuthorization()
        case .Unauthorized:
            self.showDeniedAlert(.LocationAlways)
        case .Disabled:
            self.showDisabledAlert(.LocationInUse)
        default:
            break
        }
    }

    public func statusLocationInUse() -> PermissionStatus {
        if !CLLocationManager.locationServicesEnabled() {
            return .Disabled
        }
        
        let status = CLLocationManager.authorizationStatus()
        // if you're already "always" authorized, then you don't need in use
        // but the user can still demote you! So I still use them separately.
