schedulePush method
- PushEntity push
Schedule local push to be shown in PushEntity.scheduleDurationAddition
Implementation
@override
Future<void> schedulePush(PushEntity push) async {
final scheduleDurationAddition = push.scheduleDurationAddition;
if (scheduleDurationAddition == null) {
_logger.error(
'Failed to set periodic push, repeat interval is null',
error: RepeatIntervalNullException(),
stackTrace: StackTrace.current,
);
return;
}
final title = push.title;
_logger.info('Scheduling push $title');
final id = push.pushId;
await _localNotifications.cancel(id);
final todayNoTimeAndDuration = tz.TZDateTime(
tz.local,
today.year,
today.month,
today.day,
).add(scheduleDurationAddition);
await _localNotifications.zonedSchedule(
id,
title,
push.body,
todayNoTimeAndDuration,
ScheduledPushConfig._notificationDetails,
androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle,
);
}