showNotificationPermissionDialog function
Implementation
Future<void> showNotificationPermissionDialog(BuildContext context) async {
final shouldRequest = await showDialog<bool>(
context: context,
builder: (context) => AlertDialog(
title: Text('Benachrichtigungen erlauben'),
content: Text(
'Diese App benötigt Benachrichtigungen für Fortschrittsinformationen und Abschlüsse. Bitte aktiviere die Benachrichtigungen in den Einstellungen.'),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(false),
child: Text('Abbrechen'),
),
TextButton(
onPressed: () => Navigator.of(context).pop(true),
child: Text('Aktivieren'),
),
],
),
);
if (shouldRequest == true) {
final granted =
await AwesomeNotifications().requestPermissionToSendNotifications();
if (granted) {
await reinitializeNotificationChannels();
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Benachrichtigungen wurden aktiviert')),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Bitte erlaube Benachrichtigungen in den Einstellungen')),
);
await openAppSettings();
}
}
}