diff --git a/mobile/app/src/main/java/com/odweta/solon/Parsing.kt b/mobile/app/src/main/java/com/odweta/solon/Parsing.kt index 70901c9..647eb97 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Parsing.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Parsing.kt @@ -269,6 +269,24 @@ class Parsing { auxSubjects.add(Subject.empty()) } + // prepend free subjects when day does not start with subject number 1 + val newSubjects: MutableList = mutableListOf() + var n = auxSubjects[0].number.toInt() + while (n > 1) { + newSubjects.add( + Subject.freeSubject( + number = (n - 1).toString(), + start = "00:00", + end = "00:00" + ) + ) + n -= 1 + } + val finalSubjects: MutableList = mutableListOf() + finalSubjects.addAll(newSubjects.reversed()) + finalSubjects.addAll(auxSubjects) + + for ((i, s) in auxSubjects.withIndex()) { if (s.free) { s.start = auxSubjects[i-1].end @@ -279,7 +297,7 @@ class Parsing { val day = Day() day.name = name day.date = date - day.subjects = auxSubjects + day.subjects = finalSubjects // get rid of duplicates val nextSubjects: MutableList = mutableListOf() diff --git a/mobile/app/src/main/java/com/odweta/solon/Timetable.kt b/mobile/app/src/main/java/com/odweta/solon/Timetable.kt index 8134a94..05d75db 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Timetable.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Timetable.kt @@ -1,6 +1,7 @@ package com.odweta.solon import android.annotation.SuppressLint +import android.graphics.drawable.Drawable import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -220,8 +221,12 @@ private fun DayScreen(day: Day) { if (day.subjects.indexOf(subject) > 0) { Box(modifier = Modifier.height(10.dp)) { if (subject.name == day.subjects[day.subjects.indexOf(subject) - 1].name) { + val drawable = + if (subject.free) { R.drawable.squiggly_line_green } + else { R.drawable.squiggly_line_yellow } + Image( - painter = painterResource(R.drawable.squiggly_line_yellow), + painter = painterResource(drawable), contentDescription = "Spojovač stejných předmětů", modifier = Modifier.fillMaxSize() ) @@ -324,11 +329,14 @@ private fun DayScreen(day: Day) { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.End ) { - Text( - text = "${subject.start}–${subject.end}", - color = Color.White, - fontSize = 21.sp - ) + // show only for non prepended free lectures + if ((subject.free && subject.start != "00:00" && subject.end != "00:00") || !subject.free) { + Text( + text = "${subject.start}–${subject.end}", + color = Color.White, + fontSize = 21.sp + ) + } if (!subject.free) { Box ( diff --git a/mobile/app/src/main/res/drawable/squiggly_line_green.png b/mobile/app/src/main/res/drawable/squiggly_line_green.png new file mode 100644 index 0000000..38afc0c Binary files /dev/null and b/mobile/app/src/main/res/drawable/squiggly_line_green.png differ