2021-05-20 23:23:29 +00:00
|
|
|
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;
|
|
|
|
}
|
2021-05-20 23:23:29 +00:00
|
|
|
const AndroidInitializationSettings initializationSettingsAndroid =
|
|
|
|
AndroidInitializationSettings('notification_icon');
|
|
|
|
final InitializationSettings initializationSettings =
|
|
|
|
InitializationSettings(
|
|
|
|
android: initializationSettingsAndroid,
|
|
|
|
);
|
|
|
|
await _flutterLocalNotificationsPlugin.initialize(initializationSettings,
|
|
|
|
onSelectNotification: selectNotification);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future selectNotification(String payload) async {}
|
|
|
|
|
|
|
|
Future<void> showNotification(String title, String message) async {
|
|
|
|
if (!Platform.isAndroid) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
const AndroidNotificationDetails androidPlatformChannelSpecifics =
|
|
|
|
AndroidNotificationDetails(
|
|
|
|
'io.ente.photos',
|
|
|
|
'ente',
|
|
|
|
'ente alerts',
|
|
|
|
importance: Importance.max,
|
|
|
|
priority: Priority.high,
|
|
|
|
showWhen: false,
|
|
|
|
);
|
|
|
|
const NotificationDetails platformChannelSpecifics =
|
|
|
|
NotificationDetails(android: androidPlatformChannelSpecifics);
|
|
|
|
await _flutterLocalNotificationsPlugin.show(
|
|
|
|
0, title, message, platformChannelSpecifics);
|
|
|
|
}
|
|
|
|
}
|