91 lines
2.9 KiB
Dart
91 lines
2.9 KiB
Dart
// import 'package:hub/components/templates_components/visit_request_template_component/visit_request_template_component_widget.dart';
|
|
// import 'package:firebase_messaging/firebase_messaging.dart';
|
|
// import 'package:flutter/material.dart';
|
|
// import 'package:rxdart/rxdart.dart';
|
|
|
|
|
|
|
|
|
|
// class NotificationHandler {
|
|
// // Criar BehaviorSubjects para mensagens em primeiro plano e mensagens que abriram o app
|
|
// final BehaviorSubject<RemoteMessage> _onMessage =
|
|
// BehaviorSubject<RemoteMessage>();
|
|
// final BehaviorSubject<RemoteMessage> _onMessageOpenedApp =
|
|
// BehaviorSubject<RemoteMessage>();
|
|
|
|
// // Inicializar listeners no construtor
|
|
// NotificationHandler() {
|
|
// initializeListeners();
|
|
// }
|
|
|
|
// void initializeListeners() async {
|
|
// // Listener para mensagens em primeiro plano
|
|
// // FirebaseMessaging.onMessage.listen((message) {
|
|
// // _onMessage.add(message); // Adicionar mensagem ao stream
|
|
// // });
|
|
|
|
// RemoteMessage? initialMessage =
|
|
// await FirebaseMessaging.instance.getInitialMessage();
|
|
|
|
// if (initialMessage != null) _onMessage.add(initialMessage);
|
|
|
|
// // Listener para mensagens que abriram o app
|
|
// FirebaseMessaging.onMessageOpenedApp.listen((message) {
|
|
// _onMessageOpenedApp.add(message); // Adicionar mensagem ao stream
|
|
// });
|
|
// }
|
|
|
|
// void openedAppVisitRequestNotification(
|
|
// RemoteMessage message, BuildContext context) {
|
|
// log('openedAppVisitRequestNotification');
|
|
// showDialog(
|
|
// context: context,
|
|
// builder: (BuildContext context) {
|
|
// return Dialog(
|
|
// backgroundColor:
|
|
// Colors.transparent, // Faz o fundo do Dialog ser transparente
|
|
// child: VisitRequestTemplateComponentWidget(
|
|
// name: message.data['nome'] ?? 'blabla',
|
|
// reason: message.data['motivo'] ?? 'blabla',
|
|
// message: message.data['mensagem'] ?? 'blabla',
|
|
// document: message.data['document']),
|
|
// );
|
|
// });
|
|
// }
|
|
|
|
// // Método para tratar mensagens recebidas
|
|
// void handleMessage(RemoteMessage message, BuildContext context) {
|
|
// log('Notification Received!');
|
|
// message.data.forEach((key, value) {
|
|
// log('$key: $value');
|
|
// });
|
|
|
|
// switch (message.data['type']) {
|
|
// case 'visit_request':
|
|
// openedAppVisitRequestNotification(message, context);
|
|
// break;
|
|
// case '':
|
|
// break;
|
|
// default:
|
|
// log('Notification type not recognized');
|
|
// }
|
|
// }
|
|
|
|
// // Ouvir streams
|
|
// void listenToNotifications(BuildContext context) {
|
|
// _onMessage.listen((message) {
|
|
// handleMessage(message, context);
|
|
// });
|
|
|
|
// _onMessageOpenedApp.listen((message) {
|
|
// handleMessage(message, context);
|
|
// });
|
|
// }
|
|
|
|
// // Dispor streams
|
|
// void dispose() {
|
|
// _onMessage.close();
|
|
// _onMessageOpenedApp.close();
|
|
// }
|
|
// }
|