prevent common "change" tiles in timetable, more robust parsing
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../extensions/dateTime.dart';
|
import '../../../extensions/dateTime.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@@ -302,23 +302,25 @@ class _TimetableState extends State<Timetable> {
|
|||||||
var startTime = _parseWebuntisTimestamp(element.date, element.startTime);
|
var startTime = _parseWebuntisTimestamp(element.date, element.startTime);
|
||||||
var endTime = _parseWebuntisTimestamp(element.date, element.endTime);
|
var endTime = _parseWebuntisTimestamp(element.date, element.endTime);
|
||||||
|
|
||||||
var subject = subjects.result.firstWhere((subject) => subject.id == element.su[0].id);
|
var subject = subjects.result.firstWhereOrNull((subject) => subject.id == element.su.first.id);
|
||||||
var subjectName = {
|
var subjectName = 'Unbekannt';
|
||||||
TimetableNameMode.name: subject.name,
|
if(subject != null) {
|
||||||
TimetableNameMode.longName: subject.longName,
|
subjectName = {
|
||||||
TimetableNameMode.alternateName: subject.alternateName,
|
TimetableNameMode.name: subject.name,
|
||||||
}[settings.val().timetableSettings.timetableNameMode];
|
TimetableNameMode.longName: subject.longName,
|
||||||
|
TimetableNameMode.alternateName: subject.alternateName,
|
||||||
|
}[settings.val().timetableSettings.timetableNameMode]!;
|
||||||
|
}
|
||||||
|
|
||||||
return Appointment(
|
return Appointment(
|
||||||
id: ArbitraryAppointment(webuntis: element),
|
id: ArbitraryAppointment(webuntis: element),
|
||||||
startTime: startTime,
|
startTime: startTime,
|
||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
subject: subjectName!,
|
subject: subjectName,
|
||||||
location: ''
|
location: ''
|
||||||
'${rooms.result.firstWhere((room) => room.id == element.ro[0].id).name}'
|
'${rooms.result.firstWhereOrNull((room) => room.id == element.ro.firstOrNull?.id)?.name ?? 'Unbekannt'}'
|
||||||
'\n'
|
'\n'
|
||||||
'${element.te.first.longname}',
|
'${element.te.firstOrNull?.longname ?? 'Unbekannt'}',
|
||||||
notes: element.activityType,
|
notes: element.activityType,
|
||||||
color: _getEventColor(element, startTime, endTime),
|
color: _getEventColor(element, startTime, endTime),
|
||||||
);
|
);
|
||||||
@@ -331,7 +333,7 @@ class _TimetableState extends State<Timetable> {
|
|||||||
subject: 'Änderung',
|
subject: 'Änderung',
|
||||||
notes: element.info,
|
notes: element.info,
|
||||||
location: 'Unbekannt',
|
location: 'Unbekannt',
|
||||||
color: endTime.isBefore(DateTime.now()) ? Theme.of(context).primaryColor.withAlpha(100) : Theme.of(context).primaryColor,
|
color: const Color(0xff404040).withAlpha(endTime.isBefore(DateTime.now()) ? 100 : 255),
|
||||||
startTimeZone: '',
|
startTimeZone: '',
|
||||||
endTimeZone: '',
|
endTimeZone: '',
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user