From bdfdddae99605d5577c811c6e1f5fc9a96c7f13c Mon Sep 17 00:00:00 2001 From: doodlezucc <electerminator@gmail.com> Date: Wed, 25 Oct 2023 11:58:46 +0200 Subject: [PATCH] move timetable iterable merge to timetable class --- lib/main.dart | 12 +----------- lib/untis/timetable.dart | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 3fd81e6..c991cd2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -105,8 +105,6 @@ class _MyHomePageState extends State<MyHomePage> { Future<void> fetchTimetable() async { final date = appContext.date.value; - TimetableData? merged; - final profile = await appContext.profile.firstNotNull; final selectedClasses = profile.selectedClasses; @@ -114,16 +112,8 @@ class _MyHomePageState extends State<MyHomePage> { return Future(() => untis.timetableOf(classid, date).fetched); })); - for (final fetched in allTimetables) { - if (merged == null) { - merged = fetched; - } else { - merged = TimetableData.merge(merged, fetched); - } - } - setState(() { - timetable = merged; + timetable = TimetableData.mergeAll(allTimetables); }); } diff --git a/lib/untis/timetable.dart b/lib/untis/timetable.dart index 96e998a..c0617b8 100644 --- a/lib/untis/timetable.dart +++ b/lib/untis/timetable.dart @@ -20,4 +20,18 @@ class TimetableData { rooms: a.rooms.union(b.rooms), ); } + + static TimetableData? mergeAll(Iterable<TimetableData> all) { + TimetableData? merged; + + for (final fetched in all) { + if (merged == null) { + merged = fetched; + } else { + merged = TimetableData.merge(merged, fetched); + } + } + + return merged; + } } -- GitLab