Request notification permission for geofence alerts

This commit is contained in:
Artem Kokos
2026-05-15 10:43:21 +07:00
parent 8b9a25e746
commit 50748c6945
6 changed files with 124 additions and 14 deletions

View File

@@ -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,
};
}

View File

@@ -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 {