Skip to content

Commit 56a65c0

Browse files
authored
Merge pull request #445 from bsutton/master
feat: Added 'clear' method to EventController.
2 parents b814e1f + 58d7d91 commit 56a65c0

File tree

3 files changed

+52
-11
lines changed

3 files changed

+52
-11
lines changed

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -255,17 +255,18 @@ assigned.
255255

256256
Methods provided by `EventController`
257257

258-
| Name | Parameters | Description |
259-
|-----------------|--------------------------------------------------------------|-----------------------------------------------------------|
260-
| add | CalendarEventData\<T\> event | Adds one event in controller and rebuilds view. |
261-
| addAll | List\<CalendarEventData\<T\>\> events | Adds list of events in controller and rebuilds view. |
262-
| remove | CalendarEventData\<T\> event | Removes an event from controller and rebuilds view. |
263-
| removeAll | List\<CalendarEventData\<T\>\> events | Removes all event defined in the list |
264-
| removeWhere | TestPredicate\<CalendarEventData\<T\>\> test | Removes all events for which test returns true. |
265-
| update | CalendarEventData\<T\> event, CalendarEventData\<T\> updated | Updates event with updated event. |
266-
| getFullDayEvent | DateTime date | Returns the list of full day events stored in controller |
267-
| updateFilter | EventFilter\<T\> newFilter | Updates the event filter of the controller. |
268-
| getEventsOnDay | DateTime date | Returns list of events on `date` |
258+
| Name | Parameters | Description |
259+
|-----------------|--------------------------------------------------------------|-------------------------------------------------------------|
260+
| add | CalendarEventData\<T\> event | Adds one event in controller and rebuilds view. |
261+
| addAll | List\<CalendarEventData\<T\>\> events | Adds list of events in controller and rebuilds view. |
262+
| remove | CalendarEventData\<T\> event | Removes an event from controller and rebuilds view. |
263+
| removeAll | List\<CalendarEventData\<T\>\> events | Removes all event defined in the list and rebuilds the view |
264+
| clear | | Removes events from the controller and rebuilds the view |
265+
| removeWhere | TestPredicate\<CalendarEventData\<T\>\> test | Removes all events for which test returns true. |
266+
| update | CalendarEventData\<T\> event, CalendarEventData\<T\> updated | Updates event with updated event. |
267+
| getFullDayEvent | DateTime date | Returns the list of full day events stored in controller |
268+
| updateFilter | EventFilter\<T\> newFilter | Updates the event filter of the controller. |
269+
| getEventsOnDay | DateTime date | Returns list of events on `date` |
269270

270271
Check [documentation](https://pub.dev/documentation/calendar_view/latest/calendar_view/EventController-class.html) for more info.
271272

lib/src/event_controller.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,12 @@ class EventController<T extends Object?> extends ChangeNotifier {
147147
notifyListeners();
148148
}
149149

150+
void clear() {
151+
_calendarData.clear();
152+
153+
notifyListeners();
154+
}
155+
150156
/// Removes multiple [event] from this controller.
151157
void removeWhere(TestPredicate<CalendarEventData<T>> test) {
152158
_calendarData.removeWhere(test);
@@ -615,5 +621,14 @@ class CalendarData<T extends Object?> {
615621
events.addAll(recurringEvents);
616622
return events;
617623
}
624+
625+
/// Remove all events from the controller.
626+
void clear() {
627+
_fullDayEventList.clear();
628+
_rangingEventList.clear();
629+
_singleDayEvents.clear();
630+
_eventList.clear();
631+
_recurringEventsList.clear();
632+
}
618633
//#endregion
619634
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import 'package:calendar_view/calendar_view.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
void main() {
5+
testWidgets('event controller ...', (tester) async {
6+
final controller = EventController();
7+
8+
final now = DateTime.now();
9+
controller.add(CalendarEventData<String>(
10+
title: 'none',
11+
date: now,
12+
startTime: now,
13+
endTime: now.add(Duration(hours: 1))));
14+
controller.add(CalendarEventData<String>(
15+
title: 'All Day',
16+
date: DateTime.now().withoutTime,
17+
));
18+
19+
expect(controller.getFullDayEvent(now).length, equals(1));
20+
expect(controller.getEventsOnDay(now).length, equals(2));
21+
expect(controller.allEvents.length, equals(2));
22+
controller.clear();
23+
expect(controller.allEvents.length, equals(0));
24+
});
25+
}

0 commit comments

Comments
 (0)