getEventsOnDay method
Returns events on given day.
To overwrite default behaviour of this function, provide eventFilter argument in EventController constructor.
Implementation
List<CalendarEventData<T>> getEventsOnDay(DateTime date) {
if (eventFilter != null) return eventFilter!.call(date, this.events);
final events = <CalendarEventData<T>>[];
for (var i = 0; i < _events.length; i++) {
if (_events[i].year == date.year) {
final monthEvents = _events[i]._months;
for (var j = 0; j < monthEvents.length; j++) {
if (monthEvents[j].month == date.month) {
final calendarEvents = monthEvents[j]._events;
for (var k = 0; k < calendarEvents.length; k++) {
if (calendarEvents[k].date.day == date.day)
events.add(calendarEvents[k]);
}
}
}
}
}
final daysFromRange = <DateTime>[];
for (final rangingEvent in _rangingEventList) {
for (var i = 0;
i <= rangingEvent.endDate.difference(rangingEvent.date).inDays;
i++) {
daysFromRange.add(rangingEvent.date.add(Duration(days: i)));
}
if (rangingEvent.date.isBefore(rangingEvent.endDate)) {
for (final eventDay in daysFromRange) {
if (eventDay.year == date.year &&
eventDay.month == date.month &&
eventDay.day == date.day) {
events.add(rangingEvent);
}
}
}
}
return events;
}