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