Request notification permission for geofence alerts
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
enum NotificationPermissionStatus {
|
||||
enabled,
|
||||
disabled,
|
||||
requestable,
|
||||
settingsRequired,
|
||||
unsupported;
|
||||
|
||||
static NotificationPermissionStatus fromPlatformValue(String? value) {
|
||||
return switch (value) {
|
||||
'enabled' => NotificationPermissionStatus.enabled,
|
||||
'disabled' => NotificationPermissionStatus.disabled,
|
||||
'requestable' => NotificationPermissionStatus.requestable,
|
||||
'settings_required' => NotificationPermissionStatus.settingsRequired,
|
||||
_ => NotificationPermissionStatus.unsupported,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -93,6 +93,8 @@ final geofenceSystemStatusProvider = FutureProvider<GeofenceSystemState>((
|
||||
abstract class NotificationPermissionStatusService {
|
||||
Future<NotificationPermissionStatus> inspect();
|
||||
|
||||
Future<void> requestPermission();
|
||||
|
||||
Future<void> openSettings();
|
||||
}
|
||||
|
||||
@@ -112,6 +114,15 @@ class DeviceNotificationPermissionStatusService
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> requestPermission() async {
|
||||
try {
|
||||
await _channel.invokeMethod<void>('requestNotificationPermission');
|
||||
} on MissingPluginException {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> openSettings() async {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user