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] [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,