import 'dart:io'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class NotificationService { static final NotificationService instance = NotificationService._privateConstructor(); NotificationService._privateConstructor(); final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); Future init() async { if (!Platform.isAndroid) { return; } const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('notification_icon'); const InitializationSettings initializationSettings = InitializationSettings( android: initializationSettingsAndroid, ); await _flutterLocalNotificationsPlugin.initialize( initializationSettings, onSelectNotification: selectNotification, ); } Future selectNotification(String? payload) async {} Future showNotification(String title, String message) async { if (!Platform.isAndroid) { return; } const AndroidNotificationDetails androidPlatformChannelSpecifics = AndroidNotificationDetails( 'io.ente.photos', 'ente', channelDescription: 'ente alerts', importance: Importance.max, priority: Priority.high, showWhen: false, ); const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics); await _flutterLocalNotificationsPlugin.show( 0, title, message, platformChannelSpecifics, ); } }