ente/lib/services/notification_service.dart

49 lines
1.5 KiB
Dart
Raw Normal View History

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<void> init() async {
2021-05-31 00:55:03 +00:00
if (!Platform.isAndroid) {
return;
}
const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('notification_icon');
2022-07-04 06:02:17 +00:00
const InitializationSettings initializationSettings =
InitializationSettings(
android: initializationSettingsAndroid,
);
2023-06-24 05:39:58 +00:00
await _flutterLocalNotificationsPlugin.initialize(initializationSettings);
}
Future<void> showNotification(String title, String message) async {
if (!Platform.isAndroid) {
return;
}
const AndroidNotificationDetails androidPlatformChannelSpecifics =
AndroidNotificationDetails(
'io.ente.photos',
'ente',
2022-05-18 10:08:13 +00:00
channelDescription: 'ente alerts',
importance: Importance.max,
priority: Priority.high,
showWhen: false,
);
const NotificationDetails platformChannelSpecifics =
NotificationDetails(android: androidPlatformChannelSpecifics);
await _flutterLocalNotificationsPlugin.show(
2022-06-11 08:23:52 +00:00
0,
title,
message,
platformChannelSpecifics,
);
}
}