From 26317052cca601d7b4e54dc1878f84412a129fce Mon Sep 17 00:00:00 2001 From: Odweta Date: Tue, 26 Nov 2024 18:52:03 +0100 Subject: [PATCH] added prepending free subjects to timetable when the day does not start with subject number 1 --- .../src/main/java/com/odweta/solon/Parsing.kt | 20 +++++++++++++++++- .../main/java/com/odweta/solon/Timetable.kt | 20 ++++++++++++------ .../main/res/drawable/squiggly_line_green.png | Bin 0 -> 6117 bytes 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 mobile/app/src/main/res/drawable/squiggly_line_green.png 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 0000000000000000000000000000000000000000..38afc0c2575c54f4de182f3fca94029dc38e0166 GIT binary patch literal 6117 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 OVH^)1R=Hbv>c0WWKOZOn literal 0 HcmV?d00001