showNotificationPermissionDialog function

Future<void> showNotificationPermissionDialog(
  1. BuildContext context
)

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();
    }
  }
}