diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..3379285
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/solon.iml b/.idea/solon.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/solon.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..b5c241b
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1709058824678
+
+
+ 1709058824678
+
+
+
+
\ No newline at end of file
diff --git a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
index 21f0786..3c58a70 100644
--- a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
@@ -575,7 +575,7 @@ class DayFragment : Fragment() {
dayEndTextView.text = Vars.dayEndString
dayEndTextView.typeface = customFont
dayEndTextView.setAutoSizeTextTypeUniformWithConfiguration(55, 85, 1, 0)
- dayEndTextView.setPadding(0, 30, 0, 30)
+ dayEndTextView.setPadding(0, 25, 0, 25)
dayEndTextView.textAlignment = View.TEXT_ALIGNMENT_CENTER
dayEndTextView.gravity = Gravity.CENTER
dayEndTextView.setTextColor(
@@ -670,6 +670,25 @@ class Subject {
return s
}
+
+ fun empty(): Subject {
+ val s = Subject()
+
+ s.name = "err"
+ s.place = "error"
+ s.teacher = "error"
+ s.substitute = "0"
+ s.number = "0"
+ s.start = "00:00"
+ s.end = "00:00"
+ s.free = false
+
+ return s
+ }
+ }
+
+ override fun toString(): String {
+ return "subject ${this.name} at ${this.place} from ${this.start} to ${this.end}; free? ${this.free}"
}
}
diff --git a/mobile/app/src/main/java/com/odweta/solon/Network.kt b/mobile/app/src/main/java/com/odweta/solon/Network.kt
index 2f6e24c..aa89cd9 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Network.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Network.kt
@@ -144,7 +144,10 @@ class Network {
try {
val resp = Vars.client.newCall(request).execute()
- resp.body?.string().toString()
+ val s = resp.body?.string().toString()
+ val s2 = JSONObject(s).getJSONArray("days").getString(1)
+ Log.d("TIMETABLE", s2)
+ s
} catch (e: IOException) {
"""{"error": "network"}"""
}
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 5352f1d..019ca40 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Parsing.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Parsing.kt
@@ -7,6 +7,42 @@ import java.time.format.DateTimeFormatter
class Parsing {
companion object {
+ private fun eventLecture(subject: Subject, subj: JSONObject, subjects: MutableList) {
+ subject.name = subj.get("title").toString()
+ subject.place = ""
+ subject.teacher = ""
+ subject.substitute = "2" // 2 means school event
+
+ val hourspan = subj.getJSONArray("detailHours").length()
+ if (hourspan == 1) {
+ val detailHours = subj.getJSONArray("detailHours")
+ subject.number = detailHours.getJSONObject(0).get("id").toString()
+ subject.start = detailHours.getJSONObject(0).get("timeFrom").toString()
+ subject.start = subject.start.slice(0..subject.start.length - 4)
+ subject.end = detailHours.getJSONObject(0).get("timeto").toString()
+ subject.end = subject.end.slice(0..subject.end.length - 4)
+ subjects.add(subject)
+ } else {
+ for (i in 0.. {
- subject.name = subj.get("title").toString()
- subject.place = ""
- subject.teacher = ""
- subject.substitute = "2" // 2 means school event
-
- val hourspan = subj.getJSONArray("detailHours").length()
- if (hourspan == 1) {
- val detailHours = subj.getJSONArray("detailHours")
- subject.number = detailHours.getJSONObject(0).get("id").toString()
- subject.start = detailHours.getJSONObject(0).get("timeFrom").toString()
- subject.start = subject.start.slice(0..subject.start.length - 4)
- subject.end = detailHours.getJSONObject(0).get("timeto").toString()
- subject.end = subject.end.slice(0..subject.end.length - 4)
- subjects.add(subject)
- } else {
- for (i in 0.. eventLecture(subject, subj, subjects)
+ "S_NAHRADOU_VYUKA" -> eventLecture(subject, subj, subjects)
}
} else {
subject.name = subj.getJSONObject("subject").get("abbrev").toString()
subject.place =
subj.getJSONArray("rooms").getJSONObject(0).get("abbrev").toString()
subject.teacher = "" +
- "${subj.getJSONArray("teachers").getJSONObject(0).get("name")} " +
- "${subj.getJSONArray("teachers").getJSONObject(0).get("surname")}"
- if (type == "ROZVRH") {
- subject.substitute = "0"
- } else if (type == "SUPLOVANI") {
- subject.substitute = "1"
+ "${
+ subj.getJSONArray("teachers").getJSONObject(0).get("name")
+ } " +
+ "${
+ subj.getJSONArray("teachers").getJSONObject(0)
+ .get("surname")
+ }"
+ subject.substitute = when (type) {
+ "ROZVRH" -> "0"
+ "SUPLOVANI" -> "1"
+ else -> "2"
}
val hourspan = subj.getJSONArray("detailHours").length()
if (hourspan == 1) {
val detailHours = subj.getJSONArray("detailHours")
subject.number = detailHours.getJSONObject(0).get("id").toString()
- subject.start = detailHours.getJSONObject(0).get("timeFrom").toString()
+ subject.start =
+ detailHours.getJSONObject(0).get("timeFrom").toString()
subject.start = subject.start.slice(0..subject.start.length - 4)
subject.end = detailHours.getJSONObject(0).get("timeto").toString()
subject.end = subject.end.slice(0..subject.end.length - 4)
subjects.add(subject)
} else {
- for (i in 0.. 0) {
auxSubjects.add(subjects[0])
+ } else {
+ auxSubjects.add(Subject.empty())
}
for ((i, s) in auxSubjects.withIndex()) {
@@ -234,6 +263,21 @@ class Parsing {
day.date = date
day.subjects = auxSubjects
+ val nextSubjects: MutableList = mutableListOf()
+ var prevSubject: Subject = Subject.empty()
+
+ for (s in day.subjects) {
+ if (prevSubject.name != s.name) {
+ nextSubjects.add(s)
+ }
+ prevSubject = s
+ }
+
+ nextSubjects[nextSubjects.size-1].start = day.subjects[day.subjects.size-1].start
+ nextSubjects[nextSubjects.size-1].end = day.subjects[day.subjects.size-1].end
+
+ day.subjects = nextSubjects
+
week.add(day)
}
diff --git a/release/solon.apk b/release/solon.apk
index 625df4a..2959ee1 100644
Binary files a/release/solon.apk and b/release/solon.apk differ