schedulePush method

  1. @override
Future<void> schedulePush(
  1. 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,
  );
}