- newEvent->recur_secs = 86400; // 24 hours interval
- newEvent->recur_count = -1; // Reoccur infinitely
- newEvent->alarm_time = toTime_t(event_time);
+ if(days.first() == EVERY_DAY) {
+ newEvent->recur_secs = 86400; // 24 hours
+ newEvent->recur_count = -1; // Reoccur infinitely
+ newEvent->alarm_time = toTime_t(event_time); // Set event time
+ } else {
+ if(days.first() == NEVER) {
+ newEvent->alarm_time = toTime_t(event_time); // Set event time
+ } else {
+ qDebug("Using the new recurrence API");
+ newEvent->recur_count = -1;
+ newEvent->recur_secs = 0; // We re not using this way for recurrence
+ alarm_recur_t* recur = alarm_event_add_recurrences(newEvent, 1);
+ // Set event time
+ recur->special = ALARM_RECUR_SPECIAL_NONE;
+ recur->mask_mon = ALARM_RECUR_MON_ALL;
+ recur->mask_mday = ALARM_RECUR_MDAY_ALL;
+ recur->mask_hour = (1ul << event_time.hour());
+ recur->mask_min = (1ull << event_time.minute());
+ recur->mask_wday = daysToMask(days);
+ Q_ASSERT(newEvent->recurrence_cnt == 1);
+ }
+ }