Skip to content

Commit

Permalink
Updated usage keys.
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanvorobei committed Jun 6, 2021
1 parent c019d0d commit 11acb5c
Show file tree
Hide file tree
Showing 18 changed files with 41 additions and 36 deletions.
Binary file not shown.
6 changes: 6 additions & 0 deletions README.md
Expand Up @@ -196,6 +196,12 @@ let authorized = SPPermissions.Permission.calendar.authorized

Also available `denied` & `notDetermined`.

You can get plist keys for permission:

```swift
let key = SPPermissions.Permission.bluetooth.usageDescriptionKey
```

## Request

Now available 3 present styles: `Dialog`, `List` and `Native`. Each interface has delegates and a data source. If you want see an example app, open `Example Apps/SPPermissions.xcodeproj`.
Expand Down
2 changes: 1 addition & 1 deletion SPPermissions.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|

s.name = "SPPermissions"
s.version = "6.4.0"
s.version = "6.4.1"
s.summary = "Ask permissions on Swift. Available List, Dialog & Native interface. Can check state permission."
s.homepage = "https://github.com/ivanvorobei/SPPermissions"
s.source = { :git => "https://github.com/ivanvorobei/SPPermissions.git", :tag => s.version }
Expand Down
7 changes: 0 additions & 7 deletions Sources/SPPermissions/SPPermissions.swift
Expand Up @@ -111,13 +111,6 @@ public enum SPPermissions {

// MARK: Must Ovveride

/**
SPPermissions: Permission type.
*/
open var usageDescriptionKey: String? {
preconditionFailure("This method must be overridden.")
}

/**
SPPermissions: Permission type.
*/
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsBluetooth/SPBluetoothPermission.swift
Expand Up @@ -30,15 +30,15 @@ import CoreBluetooth

public extension SPPermissions.Permission {

static var bluetooth: SPPermissions.Permission {
static var bluetooth: SPBluetoothPermission {
return SPBluetoothPermission()
}
}

public class SPBluetoothPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .bluetooth }
open override var usageDescriptionKey: String? { "NSBluetoothAlwaysUsageDescription" }
open var usageDescriptionKey: String? { "NSBluetoothAlwaysUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
if #available(iOS 13.0, tvOS 13, *) {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsCalendar/SPCalendarPermission.swift
Expand Up @@ -30,15 +30,15 @@ import EventKit

public extension SPPermissions.Permission {

static var calendar: SPPermissions.Permission {
static var calendar: SPCalendarPermission {
return SPCalendarPermission()
}
}

public class SPCalendarPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .calendar }
open override var usageDescriptionKey: String? { "NSCalendarsUsageDescription" }
open var usageDescriptionKey: String? { "NSCalendarsUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch EKEventStore.authorizationStatus(for: EKEntityType.event) {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsCamera/SPCameraPermission.swift
Expand Up @@ -31,7 +31,7 @@ import AVFoundation
@available(iOS 11.0, macCatalyst 14.0, *)
public extension SPPermissions.Permission {

static var camera: SPPermissions.Permission {
static var camera: SPCameraPermission {
return SPCameraPermission()
}
}
Expand All @@ -40,7 +40,7 @@ public extension SPPermissions.Permission {
public class SPCameraPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .camera }
open override var usageDescriptionKey: String? { "NSCameraUsageDescription" }
open var usageDescriptionKey: String? { "NSCameraUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch AVCaptureDevice.authorizationStatus(for: AVMediaType.video) {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsContacts/SPContactsPermission.swift
Expand Up @@ -30,15 +30,15 @@ import Contacts

public extension SPPermissions.Permission {

static var contacts: SPPermissions.Permission {
static var contacts: SPContactsPermission {
return SPContactsPermission()
}
}

public class SPContactsPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .contacts }
open override var usageDescriptionKey: String? { "NSContactsUsageDescription" }
open var usageDescriptionKey: String? { "NSContactsUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch CNContactStore.authorizationStatus(for: .contacts) {
Expand Down
Expand Up @@ -30,15 +30,15 @@ import MapKit

public extension SPPermissions.Permission {

static var locationAlways: SPPermissions.Permission {
static var locationAlways: SPLocationAlwaysPermission {
return SPLocationAlwaysPermission()
}
}

public class SPLocationAlwaysPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .locationAlways }
open override var usageDescriptionKey: String? { "NSLocationAlwaysAndWhenInUseUsageDescription" }
open var usageDescriptionKey: String? { "NSLocationAlwaysAndWhenInUseUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
let authorizationStatus: CLAuthorizationStatus = {
Expand Down
Expand Up @@ -30,15 +30,15 @@ import MapKit

public extension SPPermissions.Permission {

static var locationWhenInUse: SPPermissions.Permission {
static var locationWhenInUse: SPLocationWhenInUsePermission {
return SPLocationWhenInUsePermission()
}
}

public class SPLocationWhenInUsePermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .locationWhenInUse }
open override var usageDescriptionKey: String? { "NSLocationWhenInUseUsageDescription" }
open var usageDescriptionKey: String? { "NSLocationAlwaysAndWhenInUseUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
let authorizationStatus: CLAuthorizationStatus = {
Expand Down
Expand Up @@ -30,15 +30,15 @@ import MediaPlayer

public extension SPPermissions.Permission {

static var mediaLibrary: SPPermissions.Permission {
static var mediaLibrary: SPMediaLibraryPermission {
return SPMediaLibraryPermission()
}
}

public class SPMediaLibraryPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .mediaLibrary }
open override var usageDescriptionKey: String? { "NSAppleMusicUsageDescription" }
open var usageDescriptionKey: String? { "NSAppleMusicUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch MPMediaLibrary.authorizationStatus() {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsMicrophone/SPMicrophonePermission.swift
Expand Up @@ -30,15 +30,15 @@ import AVFoundation

public extension SPPermissions.Permission {

static var microphone: SPPermissions.Permission {
static var microphone: SPMicrophonePermission {
return SPMicrophonePermission()
}
}

public class SPMicrophonePermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .microphone }
open override var usageDescriptionKey: String? { "NSMicrophoneUsageDescription" }
open var usageDescriptionKey: String? { "NSMicrophoneUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch AVAudioSession.sharedInstance().recordPermission {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsMotion/SPMotionPermission.swift
Expand Up @@ -30,15 +30,15 @@ import CoreMotion

public extension SPPermissions.Permission {

static var motion: SPPermissions.Permission {
static var motion: SPMotionPermission {
return SPMotionPermission()
}
}

public class SPMotionPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .motion }
open override var usageDescriptionKey: String? { "NSMotionUsageDescription" }
open var usageDescriptionKey: String? { "NSMotionUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch CMMotionActivityManager.authorizationStatus() {
Expand Down
Expand Up @@ -29,15 +29,14 @@ import UserNotifications

public extension SPPermissions.Permission {

static var notification: SPPermissions.Permission {
static var notification: SPNotificationPermission {
return SPNotificationPermission()
}
}

public class SPNotificationPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .notification }
open override var usageDescriptionKey: String? { return nil }

public override var status: SPPermissions.PermissionStatus {
guard let authorizationStatus = fetchAuthorizationStatus() else { return .notDetermined }
Expand Down
11 changes: 9 additions & 2 deletions Sources/SPPermissionsPhotoLibrary/SPPhotoLibraryPermission.swift
Expand Up @@ -29,15 +29,22 @@ import Photos

public extension SPPermissions.Permission {

static var photoLibrary: SPPermissions.Permission {
static var photoLibrary: SPPhotoLibraryPermission {
return SPPhotoLibraryPermission()
}
}

public class SPPhotoLibraryPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .photoLibrary }
open override var usageDescriptionKey: String? { "NSPhotoLibraryUsageDescription" }

open var fullAccessUsageDescriptionKey: String? {
"NSPhotoLibraryUsageDescription"
}

open var addingOnlyUsageDescriptionKey: String? {
"NSPhotoLibraryAddUsageDescription"
}

public override var status: SPPermissions.PermissionStatus {
switch PHPhotoLibrary.authorizationStatus() {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsReminders/SPRemindersPermission.swift
Expand Up @@ -30,15 +30,15 @@ import EventKit

public extension SPPermissions.Permission {

static var reminders: SPPermissions.Permission {
static var reminders: SPRemindersPermission {
return SPRemindersPermission()
}
}

public class SPRemindersPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .reminders }
open override var usageDescriptionKey: String? { "NSRemindersUsageDescription" }
open var usageDescriptionKey: String? { "NSRemindersUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch EKEventStore.authorizationStatus(for: EKEntityType.reminder) {
Expand Down
Expand Up @@ -30,15 +30,15 @@ import Speech

public extension SPPermissions.Permission {

static var speech: SPPermissions.Permission {
static var speech: SPSpeechPermission {
return SPSpeechPermission()
}
}

public class SPSpeechPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .speech }
open override var usageDescriptionKey: String? { "NSSpeechRecognitionUsageDescription" }
open var usageDescriptionKey: String? { "NSSpeechRecognitionUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch SFSpeechRecognizer.authorizationStatus() {
Expand Down
4 changes: 2 additions & 2 deletions Sources/SPPermissionsTracking/SPTrackingPermission.swift
Expand Up @@ -30,7 +30,7 @@ import AppTrackingTransparency
@available(iOS 14.5, tvOS 14.5, *)
public extension SPPermissions.Permission {

static var tracking: SPPermissions.Permission {
static var tracking: SPTrackingPermission {
return SPTrackingPermission()
}
}
Expand All @@ -39,7 +39,7 @@ public extension SPPermissions.Permission {
public class SPTrackingPermission: SPPermissions.Permission {

open override var type: SPPermissions.PermissionType { .tracking }
open override var usageDescriptionKey: String? { "NSUserTrackingUsageDescription" }
open var usageDescriptionKey: String? { "NSUserTrackingUsageDescription" }

public override var status: SPPermissions.PermissionStatus {
switch ATTrackingManager.trackingAuthorizationStatus {
Expand Down

0 comments on commit 11acb5c

Please sign in to comment.