1
0

Remove disappearing teachers workaround from timetable repository (#1545)

This commit is contained in:
Mikołaj Pich
2021-09-28 23:10:11 +02:00
committed by GitHub
parent 9711cc868c
commit 0b83a66b85
2 changed files with 3 additions and 138 deletions

View File

@ -123,17 +123,7 @@ class TimetableRepository @Inject constructor(
lessonsNew: List<Timetable>,
) {
val lessonsToRemove = lessonsOld uniqueSubtract lessonsNew
val lessonsToAdd = (lessonsNew uniqueSubtract lessonsOld).map { new ->
val matchingOld = lessonsOld.singleOrNull { new.start == it.start }
if (matchingOld != null) {
val useOldTeacher = new.teacher.isEmpty() && !new.changes && !matchingOld.changes
new.copy(
room = if (new.room.isEmpty()) matchingOld.room else new.room,
teacher = if (useOldTeacher) matchingOld.teacher
else new.teacher
)
} else new
}
val lessonsToAdd = lessonsNew uniqueSubtract lessonsOld
timetableDb.deleteAll(lessonsToRemove)
timetableDb.insertAll(lessonsToAdd)