Client/lib/notification/notificationController.dart

64 lines
2.4 KiB
Dart

import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import '../widget/debug/debugTile.dart';
import '../widget/debug/jsonViewer.dart';
import 'notificationTasks.dart';
class NotificationController {
@pragma('vm:entry-point')
static Future<void> onBackgroundMessageHandler(RemoteMessage message) async {
NotificationTasks.updateBadgeCount(message);
return; // Displaying the notification is curently done via the Firebase SDK itself. The Message is server-generated.
//
// await Firebase.initializeApp();
// AccountData().waitForPopulation().then((value) {
// log("User account status: $value");
// if(value) {
// GetRoom(
// GetRoomParams(
// includeStatus: false,
// ),
// ).run().then((value) {
// var messageCount = value.data.map((e) => e.unreadMessages).reduce((a, b) => a + b);
// var chatCount = value.data.where((e) => e.unreadMessages > 0).length;
// var people = value.data.where((e) => e.unreadMessages > 0).map((e) => e.displayName.split(" ")[0]);
//
// final NotificationService service = NotificationService();
// service.initializeNotifications().then((value) {
// service.showNotification(
// title: "Du hast $messageCount ungelesene Nachrichten!",
// body: "In $chatCount Chats, von ${people.join(", ")}",
// badgeCount: messageCount,
// );
// });
// });
// }
// });
}
static Future<void> onForegroundMessageHandler(RemoteMessage message, BuildContext context) async {
NotificationTasks.updateProviders(context);
NotificationTasks.updateBadgeCount(message);
}
static Future<void> onAppOpenedByNotification(RemoteMessage message, BuildContext context) async {
NotificationTasks.navigateToTalk();
NotificationTasks.updateProviders(context);
DebugTile(context).run(() {
showDialog(context: context, builder: (context) => AlertDialog(
title: const Text('Notification report'),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('Dieser Bericht wird angezeigt, da du den Entwicklermodus aktiviert hast und die App über eine Benachrichtigung geöffnet wurde.'),
Text(JsonViewer.format(message.data)),
],
),
));
});
}
}