checkPermissionStatus method
Checks the current status of all notification permissions.
Implementation
Future<(NotificationFailure?, PermissionStatus)>
checkPermissionStatus() async {
try {
final (NotificationFailure? error, bool? enabled) = await _repository
.areNotificationsEnabled();
if (error != null) {
return (error, PermissionStatus.unknown);
}
if (enabled != true) {
return (null, PermissionStatus.denied);
}
final PermissionStatus platformStatus =
await _checkPlatformSpecificPermissions();
final PermissionStatus finalStatus = _combinePermissionStatus(
PermissionStatus.granted,
platformStatus,
);
return (null, finalStatus);
} catch (e, stackTrace) {
return (
NotificationFailure.permission(
details: e.toString(),
stackTrace: stackTrace,
),
PermissionStatus.unknown,
);
}
}