hotfix app crash and some ui updates, release 1.0.3

This commit is contained in:
Odweta
2024-02-29 12:19:34 +01:00
parent b648a3b150
commit 94da62ffab
9 changed files with 211 additions and 62 deletions
@@ -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}"
}
}
@@ -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"}"""
}
@@ -7,6 +7,42 @@ import java.time.format.DateTimeFormatter
class Parsing {
companion object {
private fun eventLecture(subject: Subject, subj: JSONObject, subjects: MutableList<Subject>) {
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..<hourspan) {
val newSubject = Subject()
newSubject.name = subject.name
newSubject.place = subject.place
newSubject.teacher = subject.teacher
newSubject.substitute = subject.substitute
val detailHours = subj.getJSONArray("detailHours")
newSubject.number = detailHours.getJSONObject(i).get("id").toString()
newSubject.start =
detailHours.getJSONObject(i).get("timeFrom").toString()
newSubject.start =
newSubject.start.slice(0..newSubject.start.length - 4)
newSubject.end = detailHours.getJSONObject(i).get("timeto").toString()
newSubject.end = newSubject.end.slice(0..newSubject.end.length - 4)
subjects.add(newSubject)
}
}
}
fun userIsParent(): Boolean {
return if (Vars.userData != "") {
JSONObject(Vars.userData).getString("userType") == "parent"
@@ -94,86 +130,77 @@ class Parsing {
val hourspan = subj.getJSONArray("detailHours").length()
subject.number = "1 - $hourspan"
subject.start = subj.get("beginTime").toString()
subject.start = subject.start.slice(0..subject.start.length-4)
subject.start = subject.start.slice(0..subject.start.length - 4)
subject.end = subj.get("endTime").toString()
subject.end = subject.end.slice(0..subject.end.length-4)
subject.end = subject.end.slice(0..subject.end.length - 4)
subjects.add(subject)
}
"S_NAHRADOU_SKOL_AKCE" -> {
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..<hourspan) {
val newSubject = Subject()
newSubject.name = subject.name
newSubject.place = subject.place
newSubject.teacher = subject.teacher
newSubject.substitute = subject.substitute
val detailHours = subj.getJSONArray("detailHours")
newSubject.number = detailHours.getJSONObject(i).get("id").toString()
newSubject.start =
detailHours.getJSONObject(i).get("timeFrom").toString()
newSubject.start =
newSubject.start.slice(0..newSubject.start.length - 4)
newSubject.end = detailHours.getJSONObject(i).get("timeto").toString()
newSubject.end = newSubject.end.slice(0..newSubject.end.length - 4)
subjects.add(newSubject)
}
}
}
"S_NAHRADOU_SKOL_AKCE" -> 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..<hourspan) {
val newSubject = Subject()
newSubject.name = subject.name
newSubject.place = subject.place
newSubject.teacher = subject.teacher
newSubject.substitute = subject.substitute
if (subject.substitute == "2") {
val detailHours = subj.getJSONArray("detailHours")
newSubject.number = detailHours.getJSONObject(i).get("id").toString()
newSubject.start =
detailHours.getJSONObject(i).get("timeFrom").toString()
newSubject.start =
newSubject.start.slice(0..newSubject.start.length - 4)
newSubject.end = detailHours.getJSONObject(i).get("timeto").toString()
newSubject.end = newSubject.end.slice(0..newSubject.end.length - 4)
subjects.add(newSubject)
val latestTime =
detailHours.getJSONObject(detailHours.length() - 1)
subject.number = latestTime.get("id").toString()
subject.start = latestTime.get("timeFrom").toString()
subject.start =
subject.start.slice(0..subject.start.length - 4)
subject.end = latestTime.get("timeto").toString()
subject.end = subject.end.slice(0..subject.end.length - 4)
subjects.add(subject)
} else {
for (i in 0..<hourspan) {
val newSubject = Subject()
newSubject.name = subject.name
newSubject.place = subject.place
newSubject.teacher = subject.teacher
newSubject.substitute = subject.substitute
val detailHours = subj.getJSONArray("detailHours")
newSubject.number =
detailHours.getJSONObject(i).get("id").toString()
newSubject.start =
detailHours.getJSONObject(i).get("timeFrom")
.toString()
newSubject.start =
newSubject.start.slice(0..newSubject.start.length - 4)
newSubject.end =
detailHours.getJSONObject(i).get("timeto")
.toString()
newSubject.end =
newSubject.end.slice(0..newSubject.end.length - 4)
subjects.add(newSubject)
}
}
}
}
@@ -218,8 +245,10 @@ class Parsing {
}
}
auxSubjects.add(subjects[subjects.size - 1])
} else {
} else if (subjects.size > 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<Subject> = 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)
}