From 6628b97faf4e27bb9ef924a93247c7a5074b3f0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sun, 23 Oct 2022 23:11:49 +0200 Subject: [PATCH] [API/Usos] Fix detecting term start and end date. --- .../edziennik/usos/data/api/UsosApiTerms.kt | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/usos/data/api/UsosApiTerms.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/usos/data/api/UsosApiTerms.kt index 1bf47288..b1b2fd88 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/usos/data/api/UsosApiTerms.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/usos/data/api/UsosApiTerms.kt @@ -41,24 +41,18 @@ class UsosApiTerms( } private fun processResponse(json: JsonArray): Boolean { - val dates = mutableSetOf() + val today = Date.getToday() for (term in json.asJsonObjectList()) { if (!term.getBoolean("is_active", false)) continue - val startDate = term.getString("start_date")?.let { Date.fromY_m_d(it) } - val finishDate = term.getString("finish_date")?.let { Date.fromY_m_d(it) } - if (startDate != null) - dates += startDate - if (finishDate != null) - dates += finishDate + val startDate = term.getString("start_date")?.let { Date.fromY_m_d(it) } ?: continue + val finishDate = term.getString("finish_date")?.let { Date.fromY_m_d(it) } ?: continue + if (today in startDate..finishDate) { + profile?.studentSchoolYearStart = startDate.year + profile?.dateSemester1Start = startDate + profile?.dateSemester2Start = finishDate + } } - val datesSorted = dates.sorted() - if (datesSorted.size != 3) - return false - profile?.studentSchoolYearStart = datesSorted[0].year - profile?.dateSemester1Start = datesSorted[0] - profile?.dateSemester2Start = datesSorted[1] - profile?.dateYearEnd = datesSorted[2] return true } }