Compare commits

..

2 Commits

Author SHA1 Message Date
96da698551 [4.14.2] Update build.gradle, signing and changelog 2025-02-25 17:57:46 +01:00
ee30232530 [API/Librus] Fix TeacherFreeDays API problems (#215)
* [Librus] Fix TeacherFreeDays API problems

* [Librus] Small Teacher Free Days Bug fix & improvement

* [Librus] Implementation fix

* Apply suggestions from code review

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2025-02-23 22:19:19 +01:00
9 changed files with 18 additions and 6 deletions

View File

@ -1,4 +1,4 @@
<h3>Wersja 4.14.1, 2025-02-05</h3>
<h3>Wersja 4.14.2, 2025-02-25</h3>
<ul>
<li>USOS: <b>dodano obsługę ocen</b>.</li>
<li>USOS: obliczanie średniej za studia oraz punktów ECTS.</li>
@ -6,6 +6,7 @@
<li>Wyłączono archiwizator profili.</li>
<li>Naprawiono zatrzymanie aplikacji na Androidzie 14.</li>
<li>Udostępniono opcję wyłączania śniegu również w lutym.</li>
<li>Poprawiono błędy synchronizacji. @KrystianQur</li>
</ul>
<br>
<br>

View File

@ -9,7 +9,7 @@
/*secret password - removed for source code publication*/
static toys AES_IV[16] = {
0x58, 0x51, 0x7b, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
0x3e, 0x4b, 0xe4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);

View File

@ -148,6 +148,7 @@ const val ERROR_LIBRUS_MESSAGES_NOT_FOUND = 186
const val ERROR_LOGIN_LIBRUS_API_INVALID_REQUEST = 187
const val ERROR_LIBRUS_MESSAGES_ATTACHMENT_NOT_FOUND = 188
const val ERROR_LOGIN_LIBRUS_MESSAGES_TIMEOUT = 189
const val ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC = 190
const val ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN = 201
const val ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD = 202

View File

@ -29,6 +29,9 @@ import pl.szczodrzynski.edziennik.data.db.enums.LoginMethod
import pl.szczodrzynski.edziennik.data.db.full.AnnouncementFull
import pl.szczodrzynski.edziennik.data.db.full.EventFull
import pl.szczodrzynski.edziennik.data.db.full.MessageFull
import pl.szczodrzynski.edziennik.ext.DAY
import pl.szczodrzynski.edziennik.ext.HOUR
import pl.szczodrzynski.edziennik.ext.WEEK
import pl.szczodrzynski.edziennik.utils.Utils.d
class Librus(val app: App, val profile: Profile?, val loginStore: LoginStore, val callback: EdziennikCallback) : EdziennikInterface {
@ -235,6 +238,11 @@ class Librus(val app: App, val profile: Profile?, val loginStore: LoginStore, va
data.app.config.sync.tokenLibrusList + data.profileId
data()
}
ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC -> {
d(TAG, "Student not have access to Teacher Free Days resource")
data.setSyncNext(ENDPOINT_LIBRUS_API_TEACHER_FREE_DAYS, 1 * WEEK, FeatureType.AGENDA)
data()
}
else -> callback.onError(apiError)
}
}

View File

@ -69,6 +69,7 @@ open class LibrusApi(open val data: DataLibrus, open val lastSync: Long?) {
"NoticeboardProblem" -> ERROR_LIBRUS_API_NOTICEBOARD_PROBLEM
"DeviceRegistered" -> ERROR_LIBRUS_API_DEVICE_REGISTERED
"Maintenance" -> ERROR_LIBRUS_API_MAINTENANCE
"TeacherFreeDaysIsNotActive" -> ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC
else -> ERROR_LIBRUS_API_OTHER
}.let { errorCode ->
if (errorCode !in ignoreErrors) {

View File

@ -29,7 +29,7 @@ class LibrusApiTeacherFreeDays(override val data: DataLibrus,
data.db.teacherAbsenceTypeDao().getAllNow(profileId).toSparseArray(data.teacherAbsenceTypes) { it.id }
}
apiGet(TAG, "TeacherFreeDays") { json ->
apiGet(TAG, "Calendars/TeacherFreeDays") { json ->
val teacherAbsences = json.getJsonArray("TeacherFreeDays")?.asJsonObjectList()
teacherAbsences?.forEach { teacherAbsence ->

View File

@ -46,6 +46,6 @@ object Signing {
/*fun provideKey(param1: String, param2: Long): ByteArray {*/
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
return "$param1.MTIzNDU2Nzg5MD4QLcHOGI===.$param2".sha256()
return "$param1.MTIzNDU2Nzg5MDn0HBlu/h===.$param2".sha256()
}
}

View File

@ -120,6 +120,7 @@
<string name="error_187" translatable="false">ERROR_LOGIN_LIBRUS_API_INVALID_REQUEST</string>
<string name="error_188" translatable="false">ERROR_LIBRUS_MESSAGES_ATTACHMENT_NOT_FOUND</string>
<string name="error_189" translatable="false">ERROR_LOGIN_LIBRUS_MESSAGES_TIMEOUT</string>
<string name="error_190" translatable="false">ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC</string>
<string name="error_201" translatable="false">ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN</string>
<string name="error_202" translatable="false">ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD</string>

View File

@ -5,8 +5,8 @@ buildscript {
kotlin_version = '1.6.10'
release = [
versionName: "4.14.1",
versionCode: 4140199
versionName: "4.14.2",
versionCode: 4140299
]
setup = [