Skip to content
Snippets Groups Projects
Commit ddf6b856 authored by doodlezucc's avatar doodlezucc
Browse files

move view to app context

parent 2be33a66
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
}
......@@ -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(() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment