forked from firka/student-legacy
fix #118
This commit is contained in:
parent
29aa356cd0
commit
0f799375a1
@ -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);
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user