This commit is contained in:
55nknown 2022-11-14 08:02:50 +01:00
parent 29aa356cd0
commit 0f799375a1
5 changed files with 24 additions and 18 deletions

View File

@ -22,8 +22,8 @@ class LiveCardProvider extends ChangeNotifier {
LiveCardState currentState = LiveCardState.empty; LiveCardState currentState = LiveCardState.empty;
late Timer _timer; late Timer _timer;
late final TimetableProvider _lessonProvider; late final TimetableProvider _timetable;
late final SettingsProvider _settingsProvider; late final SettingsProvider _settings;
late Duration _delay; late Duration _delay;
@ -32,13 +32,13 @@ class LiveCardProvider extends ChangeNotifier {
Map<String, String> _lastActivity = {}; Map<String, String> _lastActivity = {};
LiveCardProvider({ LiveCardProvider({
required TimetableProvider lessonProvider, required TimetableProvider timetable,
required SettingsProvider settingsProvider, required SettingsProvider settings,
}) : _lessonProvider = lessonProvider, }) : _timetable = timetable,
_settingsProvider = settingsProvider { _settings = settings {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) => update()); _timer = Timer.periodic(const Duration(seconds: 1), (timer) => update());
lessonProvider.restore().then((_) => update()); timetable.restore().then((_) => update());
_delay = settingsProvider.bellDelayEnabled ? Duration(seconds: settingsProvider.bellDelay) : Duration.zero; _delay = settings.bellDelayEnabled ? Duration(seconds: settings.bellDelay) : Duration.zero;
} }
@override @override
@ -127,14 +127,14 @@ class LiveCardProvider extends ChangeNotifier {
} }
} }
List<Lesson> today = _today(_lessonProvider); List<Lesson> today = _today(_timetable);
if (today.isEmpty) { if (today.isEmpty) {
await _lessonProvider.fetch(week: Week.current()); await _timetable.fetch(week: Week.current());
today = _today(_lessonProvider); 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); final now = _now().add(_delay);

View File

@ -86,7 +86,7 @@ class App extends StatelessWidget {
ChangeNotifierProvider<UpdateProvider>(create: (context) => UpdateProvider(context: context)), ChangeNotifierProvider<UpdateProvider>(create: (context) => UpdateProvider(context: context)),
// User data providers // User data providers
ChangeNotifierProvider<GradeProvider>(create: (context) => GradeProvider(context: context)), ChangeNotifierProvider<GradeProvider>(create: (context) => GradeProvider(settings: settings, user: user, database: database, kreta: kreta)),
ChangeNotifierProvider<TimetableProvider>(create: (_) => timetable), ChangeNotifierProvider<TimetableProvider>(create: (_) => timetable),
ChangeNotifierProvider<ExamProvider>(create: (context) => ExamProvider(context: context)), ChangeNotifierProvider<ExamProvider>(create: (context) => ExamProvider(context: context)),
ChangeNotifierProvider<HomeworkProvider>(create: (context) => HomeworkProvider(context: context)), ChangeNotifierProvider<HomeworkProvider>(create: (context) => HomeworkProvider(context: context)),
@ -96,7 +96,7 @@ class App extends StatelessWidget {
ChangeNotifierProvider<AbsenceProvider>(create: (context) => AbsenceProvider(context: context)), ChangeNotifierProvider<AbsenceProvider>(create: (context) => AbsenceProvider(context: context)),
ChangeNotifierProvider<GradeCalculatorProvider>(create: (context) => GradeCalculatorProvider(context)), ChangeNotifierProvider<GradeCalculatorProvider>(create: (context) => GradeCalculatorProvider(context)),
ChangeNotifierProvider<LiveCardProvider>(create: (context) => LiveCardProvider(lessonProvider: timetable, settingsProvider: settings)) ChangeNotifierProvider<LiveCardProvider>(create: (context) => LiveCardProvider(timetable: timetable, settings: settings))
], ],
child: Consumer<ThemeModeObserver>( child: Consumer<ThemeModeObserver>(
builder: (context, themeMode, child) { builder: (context, themeMode, child) {

View File

@ -1,4 +1,5 @@
import 'package:filcnaplo/api/providers/update_provider.dart'; import 'package:filcnaplo/api/providers/update_provider.dart';
import 'package:filcnaplo/models/settings.dart';
import 'package:filcnaplo/theme/colors/colors.dart'; import 'package:filcnaplo/theme/colors/colors.dart';
import 'package:filcnaplo/ui/date_widget.dart'; import 'package:filcnaplo/ui/date_widget.dart';
import 'package:filcnaplo/ui/filter/widgets/grades.dart' as grade_filter; import 'package:filcnaplo/ui/filter/widgets/grades.dart' as grade_filter;
@ -39,6 +40,7 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
final noteProvider = Provider.of<NoteProvider>(context); final noteProvider = Provider.of<NoteProvider>(context);
final eventProvider = Provider.of<EventProvider>(context); final eventProvider = Provider.of<EventProvider>(context);
final updateProvider = Provider.of<UpdateProvider>(context); final updateProvider = Provider.of<UpdateProvider>(context);
final settingsProvider = Provider.of<SettingsProvider>(context);
List<DateWidget> items = []; List<DateWidget> items = [];
@ -63,7 +65,9 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
// Grades // Grades
case FilterType.grades: case FilterType.grades:
items = grade_filter.getWidgets(gradeProvider.grades, gradeProvider.lastSeenDate); 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; break;
// Grades // Grades

View File

@ -8,7 +8,8 @@ import 'package:filcnaplo_desktop_ui/common/widgets/grade/grade_viewable.dart' a
List<DateWidget> getWidgets(List<Grade> providerGrades, DateTime? lastSeenDate) { List<DateWidget> getWidgets(List<Grade> providerGrades, DateTime? lastSeenDate) {
List<DateWidget> items = []; List<DateWidget> items = [];
for (var grade in providerGrades) { 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( items.add(DateWidget(
key: grade.id, key: grade.id,
date: grade.date, date: grade.date,
@ -23,7 +24,8 @@ List<DateWidget> getNewWidgets(List<Grade> providerGrades, DateTime? lastSeenDat
List<DateWidget> items = []; List<DateWidget> items = [];
List<Grade> newGrades = []; List<Grade> newGrades = [];
for (var grade in providerGrades) { 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); newGrades.add(grade);
} }
} }

@ -1 +1 @@
Subproject commit 47e98dbeae5a79b2819ecdb4a4bc8c56c9d0456b Subproject commit 01cf6ca701f944e21ffb6e16cc543cc3a981c38c