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;
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<String, String> _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<Lesson> today = _today(_lessonProvider);
List<Lesson> 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);

View File

@ -86,7 +86,7 @@ class App extends StatelessWidget {
ChangeNotifierProvider<UpdateProvider>(create: (context) => UpdateProvider(context: context)),
// 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<ExamProvider>(create: (context) => ExamProvider(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<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>(
builder: (context, themeMode, child) {

View File

@ -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<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
final noteProvider = Provider.of<NoteProvider>(context);
final eventProvider = Provider.of<EventProvider>(context);
final updateProvider = Provider.of<UpdateProvider>(context);
final settingsProvider = Provider.of<SettingsProvider>(context);
List<DateWidget> items = [];
@ -63,7 +65,9 @@ Future<List<DateWidget>> 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

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> 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<DateWidget> getNewWidgets(List<Grade> providerGrades, DateTime? lastSeenDat
List<DateWidget> items = [];
List<Grade> 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);
}
}

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