scheduleWeeklyNotify static method
Future<void>
scheduleWeeklyNotify({
- required int id,
- required String androidChannelId,
- required String androidChannelDescription,
- required Day day,
- required Time time,
- required String title,
- required String content,
- String androidResourceIcon = androidResourceName,
- InitializationSettings? settings,
- VoidCallback? onSelectNotification,
Implementation
static Future<void> scheduleWeeklyNotify({
required int id,
required String androidChannelId,
required String androidChannelDescription,
required Day day,
required Time time,
required String title,
required String content,
String androidResourceIcon = androidResourceName,
InitializationSettings? settings,
VoidCallback? onSelectNotification,
}) async {
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
final NotificationDetails platformChannelSpecifics = NotificationDetails(
android: AndroidNotificationDetails(
androidChannelId,
androidChannelDescription,
channelDescription: androidChannelDescription,
icon: androidResourceIcon,
importance: Importance.max,
enableVibration: false,
styleInformation: BigTextStyleInformation(content),
),
iOS: const IOSNotificationDetails(presentAlert: true),
macOS: const MacOSNotificationDetails(presentAlert: true),
);
tz.initializeTimeZones();
final tz.TZDateTime scheduleDateTime = tz.TZDateTime.from(
getNextWeekdayDateTime(day, time),
tz.local,
);
flutterLocalNotificationsPlugin.initialize(
settings ?? NotificationUtils.settings,
onSelectNotification: (String? text) async =>
onSelectNotification?.call(),
);
await flutterLocalNotificationsPlugin.zonedSchedule(
id,
title,
content,
scheduleDateTime,
platformChannelSpecifics,
payload: content,
matchDateTimeComponents: DateTimeComponents.dayOfWeekAndTime,
androidAllowWhileIdle: true,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
);
}