From 0f799375a14b0b597e8aa359f73ae71cf752dd51 Mon Sep 17 00:00:00 2001 From: 55nknown <55922348+55nknown@users.noreply.github.com> Date: Mon, 14 Nov 2022 08:02:50 +0100 Subject: [PATCH] fix #118 --- .../lib/api/providers/live_card_provider.dart | 24 +++++++++---------- filcnaplo/lib/app.dart | 4 ++-- filcnaplo/lib/ui/filter/widgets.dart | 6 ++++- filcnaplo/lib/ui/filter/widgets/grades.dart | 6 +++-- filcnaplo_kreta_api | 2 +- 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/filcnaplo/lib/api/providers/live_card_provider.dart b/filcnaplo/lib/api/providers/live_card_provider.dart index 806d1cb..c0de46e 100644 --- a/filcnaplo/lib/api/providers/live_card_provider.dart +++ b/filcnaplo/lib/api/providers/live_card_provider.dart @@ -22,8 +22,8 @@ class LiveCardProvider extends ChangeNotifier { LiveCardState currentState = LiveCardState.empty; late Timer _timer; - late final TimetableProvider _lessonProvider; - late final SettingsProvider _settingsProvider; + late final TimetableProvider _timetable; + late final SettingsProvider _settings; late Duration _delay; @@ -32,13 +32,13 @@ class LiveCardProvider extends ChangeNotifier { Map _lastActivity = {}; LiveCardProvider({ - required TimetableProvider lessonProvider, - required SettingsProvider settingsProvider, - }) : _lessonProvider = lessonProvider, - _settingsProvider = settingsProvider { + required TimetableProvider timetable, + required SettingsProvider settings, + }) : _timetable = timetable, + _settings = settings { _timer = Timer.periodic(const Duration(seconds: 1), (timer) => update()); - lessonProvider.restore().then((_) => update()); - _delay = settingsProvider.bellDelayEnabled ? Duration(seconds: settingsProvider.bellDelay) : Duration.zero; + timetable.restore().then((_) => update()); + _delay = settings.bellDelayEnabled ? Duration(seconds: settings.bellDelay) : Duration.zero; } @override @@ -127,14 +127,14 @@ class LiveCardProvider extends ChangeNotifier { } } - List today = _today(_lessonProvider); + List today = _today(_timetable); if (today.isEmpty) { - await _lessonProvider.fetch(week: Week.current()); - today = _today(_lessonProvider); + await _timetable.fetch(week: Week.current()); + today = _today(_timetable); } - _delay = _settingsProvider.bellDelayEnabled ? Duration(seconds: _settingsProvider.bellDelay) : Duration.zero; + _delay = _settings.bellDelayEnabled ? Duration(seconds: _settings.bellDelay) : Duration.zero; final now = _now().add(_delay); diff --git a/filcnaplo/lib/app.dart b/filcnaplo/lib/app.dart index ddc5649..c8e32e1 100644 --- a/filcnaplo/lib/app.dart +++ b/filcnaplo/lib/app.dart @@ -86,7 +86,7 @@ class App extends StatelessWidget { ChangeNotifierProvider(create: (context) => UpdateProvider(context: context)), // User data providers - ChangeNotifierProvider(create: (context) => GradeProvider(context: context)), + ChangeNotifierProvider(create: (context) => GradeProvider(settings: settings, user: user, database: database, kreta: kreta)), ChangeNotifierProvider(create: (_) => timetable), ChangeNotifierProvider(create: (context) => ExamProvider(context: context)), ChangeNotifierProvider(create: (context) => HomeworkProvider(context: context)), @@ -96,7 +96,7 @@ class App extends StatelessWidget { ChangeNotifierProvider(create: (context) => AbsenceProvider(context: context)), ChangeNotifierProvider(create: (context) => GradeCalculatorProvider(context)), - ChangeNotifierProvider(create: (context) => LiveCardProvider(lessonProvider: timetable, settingsProvider: settings)) + ChangeNotifierProvider(create: (context) => LiveCardProvider(timetable: timetable, settings: settings)) ], child: Consumer( builder: (context, themeMode, child) { diff --git a/filcnaplo/lib/ui/filter/widgets.dart b/filcnaplo/lib/ui/filter/widgets.dart index 4d44d41..2077a51 100644 --- a/filcnaplo/lib/ui/filter/widgets.dart +++ b/filcnaplo/lib/ui/filter/widgets.dart @@ -1,4 +1,5 @@ import 'package:filcnaplo/api/providers/update_provider.dart'; +import 'package:filcnaplo/models/settings.dart'; import 'package:filcnaplo/theme/colors/colors.dart'; import 'package:filcnaplo/ui/date_widget.dart'; import 'package:filcnaplo/ui/filter/widgets/grades.dart' as grade_filter; @@ -39,6 +40,7 @@ Future> getFilterWidgets(FilterType activeData, {bool absencesN final noteProvider = Provider.of(context); final eventProvider = Provider.of(context); final updateProvider = Provider.of(context); + final settingsProvider = Provider.of(context); List items = []; @@ -63,7 +65,9 @@ Future> getFilterWidgets(FilterType activeData, {bool absencesN // Grades case FilterType.grades: items = grade_filter.getWidgets(gradeProvider.grades, gradeProvider.lastSeenDate); - items.addAll(await getFilterWidgets(FilterType.newGrades, context: context)); + if (settingsProvider.gradeOpeningFun) { + items.addAll(await getFilterWidgets(FilterType.newGrades, context: context)); + } break; // Grades diff --git a/filcnaplo/lib/ui/filter/widgets/grades.dart b/filcnaplo/lib/ui/filter/widgets/grades.dart index 888c45d..1d44506 100644 --- a/filcnaplo/lib/ui/filter/widgets/grades.dart +++ b/filcnaplo/lib/ui/filter/widgets/grades.dart @@ -8,7 +8,8 @@ import 'package:filcnaplo_desktop_ui/common/widgets/grade/grade_viewable.dart' a List getWidgets(List providerGrades, DateTime? lastSeenDate) { List items = []; for (var grade in providerGrades) { - if (grade.type == GradeType.midYear && (!(lastSeenDate != null && grade.date.isAfter(lastSeenDate)) || grade.value.value == 0)) { + final surprise = (!(lastSeenDate != null && grade.date.isAfter(lastSeenDate)) || grade.value.value == 0); + if (grade.type == GradeType.midYear && surprise) { items.add(DateWidget( key: grade.id, date: grade.date, @@ -23,7 +24,8 @@ List getNewWidgets(List providerGrades, DateTime? lastSeenDat List items = []; List newGrades = []; for (var grade in providerGrades) { - if (grade.type == GradeType.midYear && !(lastSeenDate != null && !grade.date.isAfter(lastSeenDate)) && grade.value.value != 0) { + final surprise = !(lastSeenDate != null && !grade.date.isAfter(lastSeenDate)) && grade.value.value != 0; + if (grade.type == GradeType.midYear && surprise) { newGrades.add(grade); } } diff --git a/filcnaplo_kreta_api b/filcnaplo_kreta_api index 47e98db..01cf6ca 160000 --- a/filcnaplo_kreta_api +++ b/filcnaplo_kreta_api @@ -1 +1 @@ -Subproject commit 47e98dbeae5a79b2819ecdb4a4bc8c56c9d0456b +Subproject commit 01cf6ca701f944e21ffb6e16cc543cc3a981c38c