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