From ddf6b856938a8ae6e53788596d426b351f0ed6c2 Mon Sep 17 00:00:00 2001 From: doodlezucc <electerminator@gmail.com> Date: Tue, 14 Nov 2023 15:30:26 +0100 Subject: [PATCH] move view to app context --- lib/context.dart | 6 ++++++ lib/main.dart | 9 +-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/context.dart b/lib/context.dart index a0c24a7..70c1ed7 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 da393dc..baa6d4e 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(() { -- GitLab