import 'dart:convert'; import 'dart:io'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/main.dart'; import 'package:permission_handler/permission_handler.dart'; //final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); class AppNotifications { static final AppNotifications _instance = AppNotifications._internal(); AppNotifications._internal(); factory AppNotifications() => _instance; // Future requestPermissions() async { // if (Platform.isIOS) { // await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation()?.requestPermissions(alert: true, badge: true, sound: true); // } else if (Platform.isAndroid) { // AndroidFlutterLocalNotificationsPlugin? androidImplementation = flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation(); // bool? granted = await androidImplementation?.requestPermission(); // if (granted == false) { // print("-------------------- Permission Granted ------------------------"); // print(granted); // await Permission.notification.request(); // } // } // } // Future isAndroidPermGranted() async { // if (Platform.isAndroid) { // bool granted = await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation()?.areNotificationsEnabled() ?? false; // } // } void initNotification(String? firebaseToken) async { // await requestPermissions(); AppState().setDeviceToken = firebaseToken; // await Permission.notification.isDenied.then((value) { // if (value) { // Permission.notification.request(); // } // }); RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage(); if (initialMessage != null) _handleMessage(initialMessage); FirebaseMessaging.onMessage.listen((RemoteMessage message) { if (message.notification != null) _handleMessage(message); }); FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage); } void _handleMessage(RemoteMessage message) { print("Handle Message"); logger.w(json.encode(message)); } }