45 lines
1.9 KiB
Dart
45 lines
1.9 KiB
Dart
import 'package:firebase_messaging/firebase_messaging.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import '../model/chatList/chatListProps.dart';
|
|
import '../model/message/messageProps.dart';
|
|
|
|
class NotificationController {
|
|
@pragma('vm:entry-point')
|
|
static Future<void> onBackgroundMessageHandler(RemoteMessage message) async {
|
|
return; // Displaying the notification is curently done via the Firebase SDK itself. The Message is server-generated.
|
|
// log("Handling a background notification: ${message.messageId}");
|
|
//
|
|
// 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 {
|
|
//NotificationService().showToast(message: "Du hast eine neue Talk Nachricht!", context: context);
|
|
Provider.of<ChatListProps>(context, listen: false).run(renew: true);
|
|
Provider.of<MessageProps>(context, listen: false).run(renew: true);
|
|
}
|
|
} |