Commit 8d1aa526 by Mathias Cochet

Permission status added.

parent eb7ef50a
...@@ -108,6 +108,7 @@ typedef NS_ENUM(int, PermissionStatus) { ...@@ -108,6 +108,7 @@ typedef NS_ENUM(int, PermissionStatus) {
PermissionStatusGranted, PermissionStatusGranted,
PermissionStatusRestricted, PermissionStatusRestricted,
PermissionStatusNotDetermined, PermissionStatusNotDetermined,
PermissionStatusLimited,
}; };
typedef NS_ENUM(int, ServiceStatus) { typedef NS_ENUM(int, ServiceStatus) {
......
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
return PermissionStatusDenied; return PermissionStatusDenied;
case PHAuthorizationStatusAuthorized: case PHAuthorizationStatusAuthorized:
return PermissionStatusGranted; return PermissionStatusGranted;
case PHAuthorizationStatusLimited:
return PermissionStatusLimited;
} }
return PermissionStatusNotDetermined; return PermissionStatusNotDetermined;
......
...@@ -22,6 +22,10 @@ enum PermissionStatus { ...@@ -22,6 +22,10 @@ enum PermissionStatus {
/// permission status in the settings. /// permission status in the settings.
/// *Only supported on Android.* /// *Only supported on Android.*
permanentlyDenied, permanentlyDenied,
///User has authorized this application for limited access.
/// *Only supported on iOS (iOS14+).*
limited,
} }
extension PermissionStatusValue on PermissionStatus { extension PermissionStatusValue on PermissionStatus {
...@@ -37,6 +41,8 @@ extension PermissionStatusValue on PermissionStatus { ...@@ -37,6 +41,8 @@ extension PermissionStatusValue on PermissionStatus {
return 3; return 3;
case PermissionStatus.permanentlyDenied: case PermissionStatus.permanentlyDenied:
return 4; return 4;
case PermissionStatus.limited:
return 5;
default: default:
throw UnimplementedError(); throw UnimplementedError();
} }
...@@ -49,6 +55,7 @@ extension PermissionStatusValue on PermissionStatus { ...@@ -49,6 +55,7 @@ extension PermissionStatusValue on PermissionStatus {
PermissionStatus.restricted, PermissionStatus.restricted,
PermissionStatus.undetermined, PermissionStatus.undetermined,
PermissionStatus.permanentlyDenied, PermissionStatus.permanentlyDenied,
PermissionStatus.limited,
][value]; ][value];
} }
} }
...@@ -74,6 +81,8 @@ extension PermissionStatusGetters on PermissionStatus { ...@@ -74,6 +81,8 @@ extension PermissionStatusGetters on PermissionStatus {
/// permission status in the settings. /// permission status in the settings.
/// *Only supported on Android.* /// *Only supported on Android.*
bool get isPermanentlyDenied => this == PermissionStatus.permanentlyDenied; bool get isPermanentlyDenied => this == PermissionStatus.permanentlyDenied;
bool get isLimited => this == PermissionStatus.limited;
} }
extension FuturePermissionStatusGetters on Future<PermissionStatus> { extension FuturePermissionStatusGetters on Future<PermissionStatus> {
...@@ -98,4 +107,6 @@ extension FuturePermissionStatusGetters on Future<PermissionStatus> { ...@@ -98,4 +107,6 @@ extension FuturePermissionStatusGetters on Future<PermissionStatus> {
/// *Only supported on Android.* /// *Only supported on Android.*
Future<bool> get isPermanentlyDenied async => Future<bool> get isPermanentlyDenied async =>
(await this).isPermanentlyDenied; (await this).isPermanentlyDenied;
Future<bool> get isLimited async => (await this).isLimited;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment