flutter-freaccess-hub/lib/backend/push_notification/tapNotifcationActivity.dart

91 lines
2.9 KiB
Dart

// import 'package:f_r_e_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();
// }
// }