import 'package:flutter/material.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import '../api/mhsl/notify/register/notifyRegister.dart'; import '../api/mhsl/notify/register/notifyRegisterParams.dart'; import '../model/accountData.dart'; import '../storage/base/settingsProvider.dart'; import '../widget/confirmDialog.dart'; class NotifyUpdater { static ConfirmDialog enableAfterDisclaimer(SettingsProvider settings) { return ConfirmDialog( title: "Warnung", icon: Icons.warning_amber, content: "" "Die Push-Benachrichtigungen werden durch mhsl.eu versendet.\n\n" "Durch das aktivieren dieser Funktion wird dein Nutzername, dein Password und eine Geräte-ID von mhsl dauerhaft gespeichert und verarbeitet.\n\n" "Für mehr Informationen drücke lange auf die Einstellungsoption!", confirmButton: "Aktivieren", onConfirm: () { FirebaseMessaging.instance.requestPermission( provisional: false ); settings.val(write: true).notificationSettings.enabled = true; NotifyUpdater.registerToServer(); }, ); } static void registerToServer() async { String? fcmToken = await FirebaseMessaging.instance.getToken(); if(fcmToken == null) throw Exception("Failed to register push notification because there is no FBC token!"); NotifyRegister( NotifyRegisterParams( username: AccountData().getUsername(), password: AccountData().getPassword(), fcmToken: fcmToken, ), ).run(); } }