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) => 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 Future registerToServer() async { var 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(); } }