From 3d5d3847ccc6d3de58695154e7553bf35e2b050e Mon Sep 17 00:00:00 2001 From: "B.O.S.S" Date: Sun, 30 Oct 2022 12:44:59 +0100 Subject: [PATCH 01/16] [API/Librus] Fix getting teacher name in notices. (#151) --- .../data/api/edziennik/librus/data/api/LibrusApiNotices.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiNotices.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiNotices.kt index 754bbc03..83536977 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiNotices.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiNotices.kt @@ -36,7 +36,7 @@ class LibrusApiNotices(override val data: DataLibrus, val id = note.getLong("Id") ?: return@forEach val text = note.getString("Text") ?: "" val categoryId = note.getJsonObject("Category")?.getLong("Id") ?: -1 - val teacherId = note.getJsonObject("AddedBy")?.getLong("Id") ?: -1 + val teacherId = note.getJsonObject("Teacher")?.getLong("Id") ?: -1 val addedDate = note.getString("Date")?.let { Date.fromY_m_d(it) } ?: return@forEach val type = when (note.getInt("Positive")) { From 771dc437e6b9f3d838e46d672b37e72a6ba9e47a Mon Sep 17 00:00:00 2001 From: Oskar Date: Sun, 30 Oct 2022 12:45:27 +0100 Subject: [PATCH 02/16] [Strings] Translate home timetable card "all lessons" to English. (#152) --- app/src/main/res/values-en/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index c1197150..50043dac 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1433,4 +1433,5 @@ Details Agenda settings Share notes + All lessons: From d65c6db95410002feb63edb12bc3c388ec352eff Mon Sep 17 00:00:00 2001 From: "B.O.S.S" Date: Thu, 3 Nov 2022 21:53:01 +0100 Subject: [PATCH 03/16] [API/Librus] Fix getting read date in messages for multiple receivers. (#154) --- .../edziennik/librus/data/messages/LibrusMessagesGetMessage.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt index 0e50467c..e8a1e1a6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt @@ -125,7 +125,7 @@ class LibrusMessagesGetMessage(override val data: DataLibrus, val receiverId = teacher?.id ?: -1 teacher?.loginId = receiverLoginId - val readDateText = message.select("readed").text() + val readDateText = receiver.select("readed").text() val readDate = when (readDateText.isNotNullNorEmpty()) { true -> Date.fromIso(readDateText) else -> 0 From 05c7c0012cfe86b491cf2182e8b2b33c8144517c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Thu, 3 Nov 2022 22:28:59 +0100 Subject: [PATCH 04/16] [UI] Fix home cards order not saving. --- .../pl/szczodrzynski/edziennik/config/DelegateConfig.kt | 4 ++-- .../pl/szczodrzynski/edziennik/ext/JsonExtensions.kt | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/config/DelegateConfig.kt b/app/src/main/java/pl/szczodrzynski/edziennik/config/DelegateConfig.kt index 00ede071..91dac668 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/config/DelegateConfig.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/config/DelegateConfig.kt @@ -115,9 +115,9 @@ class ConfigDelegate( is Boolean -> value // enums, maps & collections is Enum<*> -> value.toInt() - is Collection<*> -> JsonArray(value.map { + is Collection<*> -> value.map { if (it is Number || it is Boolean) it else serialize(it, serializeObjects = false) - }) + }.toJsonElement() is Map<*, *> -> gson.toJson(value.mapValues { (_, it) -> if (it is Number || it is Boolean) it else serialize(it, serializeObjects = false) }) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt index 5342b330..b91399a6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt @@ -5,6 +5,7 @@ package pl.szczodrzynski.edziennik.ext import android.os.Bundle +import com.google.gson.Gson import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject @@ -48,6 +49,11 @@ fun JsonObject.putEnum(key: String, value: Enum<*>) = addProperty(key, value.toI fun String.toJsonObject(): JsonObject? = try { JsonParser.parseString(this).asJsonObject } catch (ignore: Exception) { null } fun String.toJsonArray(): JsonArray? = try { JsonParser.parseString(this).asJsonArray } catch (ignore: Exception) { null } +fun Any?.toJsonElement(): JsonElement = when (this) { + is Collection<*> -> JsonArray(this) + else -> Gson().toJsonTree(this) +} + operator fun JsonObject.set(key: String, value: JsonElement) = this.add(key, value) operator fun JsonObject.set(key: String, value: Boolean) = this.addProperty(key, value) operator fun JsonObject.set(key: String, value: String?) = this.addProperty(key, value) @@ -67,6 +73,7 @@ fun JsonObject(vararg properties: Pair): JsonObject { is Number -> addProperty(key, value) is Boolean -> addProperty(key, value) is Enum<*> -> addProperty(key, value.toInt()) + else -> add(key, property.toJsonElement()) } } } @@ -98,6 +105,8 @@ fun JsonArray(properties: Collection): JsonArray { is Char -> add(property as Char?) is Number -> add(property as Number?) is Boolean -> add(property as Boolean?) + is Enum<*> -> add(property.toInt()) + else -> add(property.toJsonElement()) } } } From ec7577f99966c1c3c5725fcbaafe1b767e206d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Thu, 3 Nov 2022 22:29:22 +0100 Subject: [PATCH 05/16] [App] Revert to use old devMode config key. --- app/src/main/java/pl/szczodrzynski/edziennik/config/Config.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/config/Config.kt b/app/src/main/java/pl/szczodrzynski/edziennik/config/Config.kt index 54530a4e..2042e8b2 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/config/Config.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/config/Config.kt @@ -33,7 +33,7 @@ class Config(db: AppDb) : BaseConfig(db) { var update by config(null) var updatesChannel by config("release") - var devMode by config(null) + var devMode by config("debugMode", null) var devModePassword by config(null) var enableChucker by config(null) From a9a0630226fd31e561e6209f39d0b6bcb85fbaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Thu, 3 Nov 2022 22:59:40 +0100 Subject: [PATCH 06/16] [4.13.1] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 15 +++++---------- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 5104732c..7bd20572 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,14 +1,9 @@ -

Wersja 4.13, 2022-10-26

+

Wersja 4.13.1, 2022-11-03

    -
  • Poprawione powiadomienia na Androidzie 13. @santoni0
  • -
  • Opcja kolorowania bloków w planie lekcji.
  • -
  • USOS - pierwsza wersja obsługi systemu. Osobne rodzaje wydarzeń (oraz wygląd niektórych części aplikacji) lepiej dostosowany do nauki na studiach.
  • -
  • Możliwość dostosowania wyświetlania planu lekcji.
  • -
  • Opcja ustawienia nowych wydarzeń domyślnie jako udostępnione.
  • -
  • Poprawione udostępnianie notatek dotyczących danej lekcji
  • -
  • Bardziej czytelna legenda rodzaju udostępnionego wydarzenia.
  • -
  • Poprawione opcje filtrowania powiadomień i wyboru przycisków menu bocznego.
  • -
  • Ulepszony system pobierania aktualizacji aplikacji.
  • +
  • Edycja kart na stronie głównej znowu działa.
  • +
  • Poprawiono pobieranie nauczyciela w zakładce Uwagi. @BxOxSxS
  • +
  • Poprawiono oznaczanie daty przeczytania wiadomości wysłanych. @BxOxSxS
  • +
  • Dodano tłumaczenie karty planu lekcji. @MedzikUser


diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index 40fa2337..d8c4a9a9 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0xce, 0x63, 0xdd, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0xe8, 0x2b, 0x2c, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index 7ea5b661..807a2096 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDHSZrnOj0===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDsJslqno5===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index b8eec4e3..74fdf577 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13", - versionCode: 4130099 + versionName: "4.13.1", + versionCode: 4130199 ] setup = [ From 6d3eb6544547678f15776cf7546ac2efeed2e599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Tue, 15 Nov 2022 22:19:47 +0100 Subject: [PATCH 07/16] [API/Mobidziennik] Do not clear email field if not set. --- .../mobidziennik/data/web/MobidziennikWebAccountEmail.kt | 4 +++- .../edziennik/mobidziennik/login/MobidziennikLoginApi2.kt | 5 ++++- .../pl/szczodrzynski/edziennik/data/db/enums/LoginMethod.kt | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAccountEmail.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAccountEmail.kt index 9dc3878c..6c252678 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAccountEmail.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAccountEmail.kt @@ -10,6 +10,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.mobidziennik.ENDPOINT_MOBID import pl.szczodrzynski.edziennik.data.api.edziennik.mobidziennik.data.MobidziennikWeb import pl.szczodrzynski.edziennik.ext.DAY import pl.szczodrzynski.edziennik.ext.get +import pl.szczodrzynski.edziennik.ext.isNotNullNorBlank class MobidziennikWebAccountEmail(override val data: DataMobidziennik, override val lastSync: Long?, @@ -24,7 +25,8 @@ class MobidziennikWebAccountEmail(override val data: DataMobidziennik, MobidziennikLuckyNumberExtractor(data, text) val email = Regexes.MOBIDZIENNIK_ACCOUNT_EMAIL.find(text)?.let { it[1] } - data.loginEmail = email + if (email.isNotNullNorBlank()) + data.loginEmail = email data.setSyncNext(ENDPOINT_MOBIDZIENNIK_WEB_ACCOUNT_EMAIL, if (email == null) 3* DAY else 7* DAY) onSuccess(ENDPOINT_MOBIDZIENNIK_WEB_ACCOUNT_EMAIL) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/login/MobidziennikLoginApi2.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/login/MobidziennikLoginApi2.kt index 9258886b..01d7b9b7 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/login/MobidziennikLoginApi2.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/login/MobidziennikLoginApi2.kt @@ -16,6 +16,7 @@ import pl.szczodrzynski.edziennik.data.api.models.ApiError import pl.szczodrzynski.edziennik.ext.JsonObject import pl.szczodrzynski.edziennik.ext.getJsonObject import pl.szczodrzynski.edziennik.ext.getString +import pl.szczodrzynski.edziennik.ext.isNotNullNorBlank import pl.szczodrzynski.edziennik.ext.isNotNullNorEmpty import pl.szczodrzynski.edziennik.utils.Utils @@ -77,7 +78,9 @@ class MobidziennikLoginApi2(val data: DataMobidziennik, val onSuccess: () -> Uni } } - data.loginEmail = json.getString("email") + val email = json.getString("email") + if (email.isNotNullNorBlank()) + data.loginEmail = email data.globalId = json.getString("id_global") data.loginId = json.getString("login") onSuccess() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/enums/LoginMethod.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/enums/LoginMethod.kt index be298b9a..64b0b7ca 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/enums/LoginMethod.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/enums/LoginMethod.kt @@ -6,6 +6,8 @@ package pl.szczodrzynski.edziennik.data.db.enums import pl.szczodrzynski.edziennik.data.db.entity.LoginStore import pl.szczodrzynski.edziennik.data.db.entity.Profile +import pl.szczodrzynski.edziennik.ext.getString +import pl.szczodrzynski.edziennik.ext.isNotNullNorBlank enum class LoginMethod( val loginType: LoginType, @@ -26,7 +28,7 @@ enum class LoginMethod( MOBIDZIENNIK_API2( loginType = LoginType.MOBIDZIENNIK, id = 1300, - isPossible = { profile, _ -> profile?.studentData?.has("email") ?: false }, + isPossible = { profile, _ -> profile?.studentData?.getString("email").isNotNullNorBlank() }, ), LIBRUS_PORTAL( loginType = LoginType.LIBRUS, @@ -57,7 +59,7 @@ enum class LoginMethod( VULCAN_WEB_MAIN( loginType = LoginType.VULCAN, id = 4100, - isPossible = { _, loginStore -> loginStore.hasLoginData("webHost") }, + isPossible = { _, loginStore -> loginStore.getLoginData("webHost", null).isNotNullNorBlank() }, ), VULCAN_HEBE( loginType = LoginType.VULCAN, From 0123f50810defc542c12e7f101c6d82446f4a71b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 14:20:22 +0100 Subject: [PATCH 08/16] [API/Vulcan] Ignore 404 response on Addressbook. --- .../api/edziennik/vulcan/data/VulcanHebe.kt | 21 ++++++++++++++++++- .../vulcan/data/hebe/VulcanHebeAddressbook.kt | 12 +++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt index a99ac7a4..85736e1f 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt @@ -26,6 +26,7 @@ import pl.szczodrzynski.edziennik.utils.Utils.d import pl.szczodrzynski.edziennik.utils.models.Date import pl.szczodrzynski.edziennik.utils.models.Time import java.net.HttpURLConnection +import java.net.HttpURLConnection.HTTP_NOT_FOUND import java.net.URLEncoder import java.time.Instant import java.time.LocalDateTime @@ -183,6 +184,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { payload: JsonElement? = null, baseUrl: Boolean = false, firebaseToken: String? = null, + allow404: Boolean = false, crossinline onSuccess: (json: T, response: Response?) -> Unit ) { val url = "${if (baseUrl) data.apiUrl else data.fullApiUrl}$endpoint" @@ -226,6 +228,20 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { val callback = object : JsonCallbackHandler() { override fun onSuccess(json: JsonObject?, response: Response?) { + if (allow404 && response?.code() == HTTP_NOT_FOUND) { + try { + onSuccess(null as T, response) + } catch (e: Exception) { + data.error( + ApiError(tag, EXCEPTION_VULCAN_HEBE_REQUEST) + .withResponse(response) + .withThrowable(e) + .withApiResponse(json) + ) + } + return + } + if (json == null) { data.error( ApiError(TAG, ERROR_RESPONSE_EMPTY) @@ -338,6 +354,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { query: Map = mapOf(), baseUrl: Boolean = false, firebaseToken: String? = null, + allow404: Boolean = false, crossinline onSuccess: (json: T, response: Response?) -> Unit ) { val queryPath = query.map { @@ -348,6 +365,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { if (query.isNotEmpty()) "$endpoint?$queryPath" else endpoint, baseUrl = baseUrl, firebaseToken = firebaseToken, + allow404 = allow404, onSuccess = onSuccess ) } @@ -382,6 +400,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { messageBox: String? = null, params: Map = mapOf(), includeFilterType: Boolean = true, + allow404: Boolean = false, onSuccess: (data: List, response: Response?) -> Unit ) { val url = if (includeFilterType && filterType != null) @@ -427,7 +446,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { ) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) - apiGet(tag, url, query) { json: JsonArray, response -> + apiGet(tag, url, query, allow404) { json: JsonArray, response -> onSuccess(json.map { it.asJsonObject }, response) } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeAddressbook.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeAddressbook.kt index d7bec22b..5893486b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeAddressbook.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeAddressbook.kt @@ -19,6 +19,7 @@ import pl.szczodrzynski.edziennik.data.db.entity.Teacher.Companion.TYPE_PARENTS_ import pl.szczodrzynski.edziennik.data.db.entity.Teacher.Companion.TYPE_STUDENT import pl.szczodrzynski.edziennik.data.db.entity.Teacher.Companion.TYPE_TEACHER import pl.szczodrzynski.edziennik.ext.* +import java.net.HttpURLConnection.HTTP_NOT_FOUND class VulcanHebeAddressbook( override val data: DataVulcan, @@ -41,8 +42,15 @@ class VulcanHebeAddressbook( VULCAN_HEBE_ENDPOINT_ADDRESSBOOK, HebeFilterType.BY_PERSON, lastSync = lastSync, - includeFilterType = false - ) { list, _ -> + includeFilterType = false, + allow404 = true, + ) { list, response -> + if (response?.code() == HTTP_NOT_FOUND) { + data.setSyncNext(ENDPOINT_VULCAN_HEBE_ADDRESSBOOK, 2 * DAY) + onSuccess(ENDPOINT_VULCAN_HEBE_ADDRESSBOOK) + return@apiGetList + } + list.forEach { person -> val id = person.getString("Id") ?: return@forEach From 710d82da27e5aa5fd5eb70a9de933c8e13fb9148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 14:40:39 +0100 Subject: [PATCH 09/16] [4.13.2-rc.1] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 8 +++----- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../edziennik/data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 7bd20572..85253c4d 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,9 +1,7 @@ -

Wersja 4.13.1, 2022-11-03

+

Wersja 4.13.2-rc.1, 2022-11-25

    -
  • Edycja kart na stronie głównej znowu działa.
  • -
  • Poprawiono pobieranie nauczyciela w zakładce Uwagi. @BxOxSxS
  • -
  • Poprawiono oznaczanie daty przeczytania wiadomości wysłanych. @BxOxSxS
  • -
  • Dodano tłumaczenie karty planu lekcji. @MedzikUser
  • +
  • Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
  • +
  • Poprawiono błąd synchronizacji w Vulcanie.


diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index d8c4a9a9..463b75c4 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0xe8, 0x2b, 0x2c, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0xe3, 0xa6, 0xa6, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index 807a2096..b059f17c 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDsJslqno5===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDC75xBm7l===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index 74fdf577..78846e4a 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13.1", - versionCode: 4130199 + versionName: "4.13.2-rc.1", + versionCode: 4130210 ] setup = [ From 86eb1a0f42a1864de410273acd4111076c22e2cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 14:54:05 +0100 Subject: [PATCH 10/16] [API/Vulcan] Actually ignore 404 response on Addressbook. --- .../edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt index 85736e1f..0d3abba3 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt @@ -338,6 +338,9 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { setTextBody(jsonString, MediaTypeUtils.APPLICATION_JSON) } } + + if (allow404) + allowErrorCode(HttpURLConnection.HTTP_NOT_FOUND) } .allowErrorCode(HttpURLConnection.HTTP_BAD_REQUEST) .allowErrorCode(HttpURLConnection.HTTP_FORBIDDEN) From ac53e267fca29e943fad744302297fd4f14ee207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 14:55:49 +0100 Subject: [PATCH 11/16] [4.13.2-rc.2] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 2 +- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../edziennik/data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 85253c4d..605ee6b7 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,4 +1,4 @@ -

Wersja 4.13.2-rc.1, 2022-11-25

+

Wersja 4.13.2-rc.2, 2022-11-25

  • Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
  • Poprawiono błąd synchronizacji w Vulcanie.
  • diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index 463b75c4..1a5bf529 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0xe3, 0xa6, 0xa6, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0x1c, 0x6e, 0x5f, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index b059f17c..e3cc532d 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDC75xBm7l===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDcenMiuYc===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index 78846e4a..dd4f8c0d 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13.2-rc.1", - versionCode: 4130210 + versionName: "4.13.2-rc.2", + versionCode: 4130220 ] setup = [ From 93dc2ac9ab1a880ae611184f6aed06bda15202fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 16:11:50 +0100 Subject: [PATCH 12/16] [API/Vulcan] Fix ignoring 404 response on Addressbook. --- .../api/edziennik/vulcan/data/VulcanHebe.kt | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt index 0d3abba3..7cb21253 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt @@ -228,20 +228,6 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { val callback = object : JsonCallbackHandler() { override fun onSuccess(json: JsonObject?, response: Response?) { - if (allow404 && response?.code() == HTTP_NOT_FOUND) { - try { - onSuccess(null as T, response) - } catch (e: Exception) { - data.error( - ApiError(tag, EXCEPTION_VULCAN_HEBE_REQUEST) - .withResponse(response) - .withThrowable(e) - .withApiResponse(json) - ) - } - return - } - if (json == null) { data.error( ApiError(TAG, ERROR_RESPONSE_EMPTY) @@ -311,6 +297,19 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { } override fun onFailure(response: Response?, throwable: Throwable?) { + if (allow404 && response?.code() == HTTP_NOT_FOUND) { + try { + onSuccess(null as T, response) + } catch (e: Exception) { + data.error( + ApiError(tag, EXCEPTION_VULCAN_HEBE_REQUEST) + .withResponse(response) + .withThrowable(e) + ) + } + return + } + data.error( ApiError(tag, ERROR_REQUEST_FAILURE) .withResponse(response) @@ -338,9 +337,6 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { setTextBody(jsonString, MediaTypeUtils.APPLICATION_JSON) } } - - if (allow404) - allowErrorCode(HttpURLConnection.HTTP_NOT_FOUND) } .allowErrorCode(HttpURLConnection.HTTP_BAD_REQUEST) .allowErrorCode(HttpURLConnection.HTTP_FORBIDDEN) @@ -449,8 +445,8 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { ) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) - apiGet(tag, url, query, allow404) { json: JsonArray, response -> - onSuccess(json.map { it.asJsonObject }, response) + apiGet(tag, url, query, allow404) { json: JsonArray?, response -> + onSuccess(json?.map { it.asJsonObject } ?: listOf(), response) } } } From 7fd2cad46b06a4e057a7f49ee0496a58f6270297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 16:13:58 +0100 Subject: [PATCH 13/16] [4.13.2-rc.3] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 2 +- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../edziennik/data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 605ee6b7..c0c15dc1 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,4 +1,4 @@ -

    Wersja 4.13.2-rc.2, 2022-11-25

    +

    Wersja 4.13.2-rc.3, 2022-11-25

    • Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
    • Poprawiono błąd synchronizacji w Vulcanie.
    • diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index 1a5bf529..c13f4152 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0x1c, 0x6e, 0x5f, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0xff, 0xc3, 0xe3, 0x82, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index e3cc532d..69270fde 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDcenMiuYc===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDKkgTGqLh===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index dd4f8c0d..62c11abe 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13.2-rc.2", - versionCode: 4130220 + versionName: "4.13.2-rc.3", + versionCode: 4130230 ] setup = [ From f085e17ef7f4434cc17fa2f58720fd7fc5c653fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 16:51:35 +0100 Subject: [PATCH 14/16] [API/Vulcan] Once again fix ignoring 404 response on Addressbook. --- .../edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt index 7cb21253..83963340 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt @@ -445,7 +445,7 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) { ) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) - apiGet(tag, url, query, allow404) { json: JsonArray?, response -> + apiGet(tag, url, query, allow404 = allow404) { json: JsonArray?, response -> onSuccess(json?.map { it.asJsonObject } ?: listOf(), response) } } From 4077fe448d93a1379ceb4bfde37c4993473b7a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 25 Nov 2022 16:52:16 +0100 Subject: [PATCH 15/16] [4.13.2-rc.4] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 2 +- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../edziennik/data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index c0c15dc1..00648711 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,4 +1,4 @@ -

      Wersja 4.13.2-rc.3, 2022-11-25

      +

      Wersja 4.13.2-rc.4, 2022-11-25

      • Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
      • Poprawiono błąd synchronizacji w Vulcanie.
      • diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index c13f4152..bbafe06e 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0xff, 0xc3, 0xe3, 0x82, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0xc5, 0x67, 0x62, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index 69270fde..e06a5d2b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDKkgTGqLh===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDLWJ/cfbN===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index 62c11abe..5a8ba98c 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13.2-rc.3", - versionCode: 4130230 + versionName: "4.13.2-rc.4", + versionCode: 4130240 ] setup = [ From 678baf46e5374ba3769dc1fbaac3fa6d48d4b738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Mon, 28 Nov 2022 20:30:11 +0100 Subject: [PATCH 16/16] [4.13.2] Update build.gradle, signing and changelog. --- app/src/main/assets/pl-changelog.html | 4 ++-- app/src/main/cpp/szkolny-signing.cpp | 2 +- .../edziennik/data/api/szkolny/interceptor/Signing.kt | 2 +- build.gradle | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 00648711..e49ccaa1 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,6 +1,6 @@ -

        Wersja 4.13.2-rc.4, 2022-11-25

        +

        Wersja 4.13.2, 2022-11-28

          -
        • Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
        • +
        • Poprawiono synchronizację w Mobidzienniku bez ustawionego adresu e-mail.
        • Poprawiono błąd synchronizacji w Vulcanie.

        diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index bbafe06e..582bc8b3 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0xc5, 0x67, 0x62, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0x8c, 0xad, 0x9c, 0x3e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index e06a5d2b..cea7a064 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDLWJ/cfbN===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDLUEjNGMN===.$param2".sha256() } } diff --git a/build.gradle b/build.gradle index 5a8ba98c..d51f1fec 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.6.10' release = [ - versionName: "4.13.2-rc.4", - versionCode: 4130240 + versionName: "4.13.2", + versionCode: 4130299 ] setup = [