This commit is contained in:
2026-02-13 15:53:22 +01:00
commit 25271189b5
639 changed files with 49083 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:timezone/timezone.dart' as tz;
class ScheduledNotificationConnector {
static Future<bool?> initialize() async {
const initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
const initializationSettingsDarwin =
DarwinInitializationSettings(
requestAlertPermission: false,
requestBadgePermission: false,
requestSoundPermission: false,
);
const initializationSettings = InitializationSettings(
android: initializationSettingsAndroid,
iOS: initializationSettingsDarwin,
macOS: initializationSettingsDarwin);
return FlutterLocalNotificationsPlugin().initialize(initializationSettings);
}
static Future<void> displayNotification(
int id, String title, String description) async {
final platformChannelSpecifics = NotificationDetails(
android: AndroidNotificationDetails(
'1', 'Benachrichtigungen', channelDescription: 'Benachrichtigungen'));
await FlutterLocalNotificationsPlugin().show(
id,
title,
description,
platformChannelSpecifics,
);
}
static Future<void> scheduleNotification(
int id,
DateTime scheduledNotificationDateTime,
String title,
String description) async {
if (scheduledNotificationDateTime.isBefore(DateTime.now())) {
return;
}
final platformChannelSpecifics = NotificationDetails(
android: AndroidNotificationDetails(
'1', 'Benachrichtigungen', channelDescription: 'Benachrichtigungen'));
await FlutterLocalNotificationsPlugin().zonedSchedule(
id.hashCode,
title,
description,
tz.TZDateTime.from(scheduledNotificationDateTime, tz.local),
platformChannelSpecifics,
androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime);
}
static Future<void> cancelScheduledNotification(String id) async {
await FlutterLocalNotificationsPlugin().cancel(id.hashCode);
}
static Future<void> cancelAllScheduledNotification() async {
await FlutterLocalNotificationsPlugin().cancelAll();
}
}