import 'package:flutter/services.dart'; import '../models/notification_permission_status.dart'; abstract class NotificationPermissionStatusService { Future inspect(); Future requestPermission(); Future openSettings(); } class DeviceNotificationPermissionStatusService implements NotificationPermissionStatusService { static const _channel = MethodChannel('ignis/geofence_automation'); @override Future inspect() async { try { final value = await _channel.invokeMethod( 'getNotificationPermissionStatus', ); return NotificationPermissionStatus.fromPlatformValue(value); } on MissingPluginException { return NotificationPermissionStatus.unsupported; } } @override Future requestPermission() async { try { await _channel.invokeMethod('requestNotificationPermission'); } on MissingPluginException { return; } } @override Future openSettings() async { try { await _channel.invokeMethod('openNotificationSettings'); } on MissingPluginException { return; } } }