diff --git a/lib/context.dart b/lib/context.dart index a0c24a7cf8730da62238184e88dba3ad0544f48a..70c1ed72ee219fc61cea8515e7be5a9a1e045148 100644 --- a/lib/context.dart +++ b/lib/context.dart @@ -4,12 +4,17 @@ import 'untis/lecture.dart'; import 'user/profile.dart'; import 'user/save_state.dart'; import 'util/listenable.dart'; +import 'views/mixed_class_view.dart'; +import 'views/view.dart'; class AppContext { final UntisFetch untis; final SaveManager _saveManager; final Listenable<Profile?> profile = Listenable(null); final Listenable<DateTime> date = Listenable(DateTime.now()); + final Listenable<TimetableView> view = Listenable( + MixedClassView(classIds: {}), + ); List<Class>? classes; List<Lecture>? lectures; @@ -24,5 +29,6 @@ class AppContext { profile.value! ..hiddenLectures.onChange.listen((_) => save()) ..selectedClasses.onChange.listen((_) => save()); + view.value = MixedClassView(classIds: profile.value!.selectedClasses); } } diff --git a/lib/main.dart b/lib/main.dart index da393dc7425c3fe7fd04eda48fc29377762bb0f1..baa6d4e6befc0fc9ebd9f8b2959d1793aa3eba1f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -13,8 +13,6 @@ import 'untis/fetch.dart'; import 'untis/timetable.dart'; import 'user/save_state.dart'; import 'util/listenable.dart'; -import 'views/mixed_class_view.dart'; -import 'views/view.dart'; void main() { runApp(const MyApp()); @@ -58,7 +56,6 @@ class MyHomePage extends StatefulWidget { } class _MyHomePageState extends State<MyHomePage> { - late TimetableView view; late List<StreamSubscription> _subscriptions; TimetableData? timetable; @@ -108,11 +105,7 @@ class _MyHomePageState extends State<MyHomePage> { Future<void> fetchTimetable() async { final date = appContext.date.value; - - final profile = await appContext.profile.firstNotNull; - final selectedClasses = profile.selectedClasses; - - view = MixedClassView(classIds: selectedClasses); + final view = appContext.view.value; final fetchedTimetable = await view.timetableOf(date, untis: untis); setState(() {