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;
|
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);
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user