Commit 583e20d1 by azack Committed by GitHub

Issue #988: Provisional Notification Permissions Part 2/3 (#991)

* Issue #988: Updating platform interface for provisional permission status

* Issue #988: Updating platform interface for provisional permission status - increasing test coverage

* Issue #988: Updating platform interface for provisional permission status

---------

Co-authored-by: Maurits van Beusekom <maurits@vnbskm.nl>
parent 74a15d11
## 9.1.0
* Adds the "Provisional" permission status which is introduced in iOS 12+.
## 9.0.8 ## 9.0.8
* Adds missing return statement causing the permission_handler to freeze when already requesting permissions. * Adds missing return statement causing the permission_handler to freeze when already requesting permissions.
......
...@@ -153,7 +153,8 @@ typedef NS_ENUM(int, PermissionStatus) { ...@@ -153,7 +153,8 @@ typedef NS_ENUM(int, PermissionStatus) {
PermissionStatusGranted = 1, PermissionStatusGranted = 1,
PermissionStatusRestricted = 2, PermissionStatusRestricted = 2,
PermissionStatusLimited = 3, PermissionStatusLimited = 3,
PermissionStatusPermanentlyDenied = 4 PermissionStatusPermanentlyDenied = 4,
PermissionStatusProvisional = 5,
}; };
typedef NS_ENUM(int, ServiceStatus) { typedef NS_ENUM(int, ServiceStatus) {
......
...@@ -21,7 +21,12 @@ ...@@ -21,7 +21,12 @@
- (void)requestPermission:(PermissionGroup)permission completionHandler:(PermissionStatusHandler)completionHandler { - (void)requestPermission:(PermissionGroup)permission completionHandler:(PermissionStatusHandler)completionHandler {
PermissionStatus status = [self checkPermissionStatus:permission]; PermissionStatus status = [self checkPermissionStatus:permission];
if (status != PermissionStatusDenied) { if (@available(iOS 12.0, *)) {
if (status != PermissionStatusDenied && status != PermissionStatusProvisional) {
completionHandler(status);
return;
}
} else if (status != PermissionStatusDenied) {
completionHandler(status); completionHandler(status);
return; return;
} }
...@@ -63,7 +68,9 @@ ...@@ -63,7 +68,9 @@
if (@available(iOS 10 , *)) { if (@available(iOS 10 , *)) {
dispatch_semaphore_t sem = dispatch_semaphore_create(0); dispatch_semaphore_t sem = dispatch_semaphore_create(0);
[[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
if (settings.authorizationStatus == UNAuthorizationStatusDenied) { if (@available(iOS 12 , *) && settings.authorizationStatus == UNAuthorizationStatusProvisional) {
permissionStatus = PermissionStatusProvisional;
} else if (settings.authorizationStatus == UNAuthorizationStatusDenied) {
permissionStatus = PermissionStatusPermanentlyDenied; permissionStatus = PermissionStatusPermanentlyDenied;
} else if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) { } else if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) {
permissionStatus = PermissionStatusDenied; permissionStatus = PermissionStatusDenied;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'permission_handler_apple' s.name = 'permission_handler_apple'
s.version = '9.0.4' s.version = '9.1.0'
s.summary = 'Permission plugin for Flutter.' s.summary = 'Permission plugin for Flutter.'
s.description = <<-DESC s.description = <<-DESC
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions. Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
......
name: permission_handler_apple name: permission_handler_apple
description: Permission plugin for Flutter. This plugin provides the iOS API to request and check permissions. description: Permission plugin for Flutter. This plugin provides the iOS API to request and check permissions.
version: 9.0.8 repository: https://github.com/baseflow/flutter-permission-handler
homepage: https://github.com/baseflow/flutter-permission-handler issue_tracker: https://github.com/Baseflow/flutter-permission-handler/issues
version: 9.1.0
environment: environment:
sdk: ">=2.15.0 <3.0.0" sdk: ">=2.15.0 <4.0.0"
flutter: ">=2.8.0" flutter: ">=2.8.0"
flutter: flutter:
...@@ -17,7 +18,7 @@ flutter: ...@@ -17,7 +18,7 @@ flutter:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
permission_handler_platform_interface: ^3.7.0 permission_handler_platform_interface: ^3.10.0
dev_dependencies: dev_dependencies:
flutter_lints: ^1.0.4 flutter_lints: ^1.0.4
......
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