set static method

Future<bool> set({
  1. required AlarmSettings alarmSettings,
})

Schedules an alarm with given alarmSettings with its notification.

If you set an alarm for the same dateTime as an existing one, the new alarm will replace the existing one.

Implementation

static Future<bool> set({required AlarmSettings alarmSettings}) async {
  alarmSettingsValidation(alarmSettings);

  final alarms = await getAlarms();

  for (final alarm in alarms) {
    if (alarm.id == alarmSettings.id ||
        alarm.dateTime.isSameSecond(alarmSettings.dateTime)) {
      await Alarm.stop(alarm.id);
    }
  }

  await AlarmStorage.saveAlarm(alarmSettings);

  final success = iOS
      ? await IOSAlarm().setAlarm(alarmSettings)
      : await AndroidAlarm().setAlarm(alarmSettings);

  if (success) {
    _scheduled.add(_scheduled.value.add(alarmSettings));
    _ringing.add(_ringing.value.remove(alarmSettings));
    updateStream.add(alarmSettings.id);
  }

  return success;
}