From c35222cdfd4159912ef95cdf95242eef2dea2d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 31 Jan 2025 19:03:31 +0100 Subject: [PATCH] [API/Usos] Fix year end date on new school year --- .../edziennik/usos/data/api/UsosApiTerms.kt | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 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 b1b2fd88..3733be98 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 @@ -35,24 +35,38 @@ class UsosApiTerms( return@apiRequest } - data.setSyncNext(ENDPOINT_USOS_API_TERMS, 7 * DAY) + data.setSyncNext(ENDPOINT_USOS_API_TERMS, 2 * DAY) onSuccess(ENDPOINT_USOS_API_TERMS) } } private fun processResponse(json: JsonArray): Boolean { + val profile = profile ?: return false 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) } ?: 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 - } + if (today !in startDate..finishDate) + continue + + if (startDate.month >= 8) + profile.dateSemester1Start = startDate + else + profile.dateSemester2Start = startDate + + if (finishDate.month >= 8) + profile.dateYearEnd = finishDate + else + profile.dateSemester2Start = finishDate } + // update school year start + profile.studentSchoolYearStart = profile.dateSemester1Start.year + // update year end date if there is a new year + if (profile.dateYearEnd <= profile.dateSemester1Start) + profile.dateYearEnd = + profile.dateSemester1Start.clone().setYear(profile.dateSemester1Start.year + 1) return true } }