diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt index 8df8e958..1d86abf6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt @@ -142,6 +142,7 @@ const val ERROR_MOBIDZIENNIK_WEB_INVALID_RESPONSE = 214 const val ERROR_LOGIN_MOBIDZIENNIK_WEB_NO_SESSION_ID = 215 const val ERROR_LOGIN_MOBIDZIENNIK_API2_INVALID_LOGIN = 216 const val ERROR_LOGIN_MOBIDZIENNIK_API2_OTHER = 217 +const val ERROR_MOBIDZIENNIK_WEB_SERVER_PROBLEM = 218 const val ERROR_LOGIN_VULCAN_INVALID_SYMBOL = 301 const val ERROR_LOGIN_VULCAN_INVALID_TOKEN = 302 diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/MobidziennikWeb.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/MobidziennikWeb.kt index c549cee3..be0dad0f 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/MobidziennikWeb.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/MobidziennikWeb.kt @@ -26,6 +26,23 @@ open class MobidziennikWeb(open val data: DataMobidziennik, open val lastSync: L val profile get() = data.profile + /* TODO + add error handling: + + +
+ +

Ważna informacja!

+ +
+ Korzystasz z hasła, które zostało wygenerowane automatycznie.
+ Pamiętaj, aby je zmienić oraz uzupełnić dane w swoim profilu.

+ Obie te operacje można wykonać uruchamiając opcję + Moje konto->Edycja profilu. +
+ + */ + fun webGet( tag: String, endpoint: String, @@ -65,6 +82,12 @@ open class MobidziennikWeb(open val data: DataMobidziennik, open val lastSync: L return } + if (text.contains("

Problemy z wydajnością

")) { + data.error(ApiError(TAG, ERROR_MOBIDZIENNIK_WEB_SERVER_PROBLEM) + .withResponse(response)) + return + } + try { onSuccess(text) } catch (e: Exception) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesAll.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesAll.kt index af9dc5f2..61c9222e 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesAll.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesAll.kt @@ -32,15 +32,15 @@ class MobidziennikWebMessagesAll(override val data: DataMobidziennik, val doc = Jsoup.parse(text) - val listElement = doc.getElementsByClass("spis").first() + val listElement = doc.getElementsByClass("spis")?.first() if (listElement == null) { data.setSyncNext(ENDPOINT_MOBIDZIENNIK_WEB_MESSAGES_ALL, 7*DAY) onSuccess(ENDPOINT_MOBIDZIENNIK_WEB_MESSAGES_ALL) return@webGet } val list = listElement.getElementsByClass("podswietl") - for (item in list) { - val id = item.attr("rel").replace("[^\\d]".toRegex(), "").toLongOrNull() ?: continue + list?.forEach { item -> + val id = item.attr("rel").replace("[^\\d]".toRegex(), "").toLongOrNull() ?: return@forEach val subjectEl = item.select("td:eq(0) div").first() val subject = subjectEl.text() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesInbox.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesInbox.kt index f87fdfbb..ee5cbd24 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesInbox.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesInbox.kt @@ -36,9 +36,9 @@ class MobidziennikWebMessagesInbox(override val data: DataMobidziennik, val doc = Jsoup.parse(text) - val list = doc.getElementsByClass("spis").first().getElementsByClass("podswietl") - for (item in list) { - val id = item.attr("rel").toLongOrNull() ?: continue + val list = doc.getElementsByClass("spis")?.first()?.getElementsByClass("podswietl") + list?.forEach { item -> + val id = item.attr("rel").toLongOrNull() ?: return@forEach val subjectEl = item.select("td:eq(0)").first() var hasAttachments = false diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesSent.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesSent.kt index 1875fad2..8e7123c3 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesSent.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebMessagesSent.kt @@ -40,9 +40,9 @@ class MobidziennikWebMessagesSent(override val data: DataMobidziennik, val doc = Jsoup.parse(text) - val list = doc.getElementsByClass("spis").first().getElementsByClass("podswietl") - for (item in list) { - val id = item.attr("rel").toLongOrNull() ?: continue + val list = doc.getElementsByClass("spis")?.first()?.getElementsByClass("podswietl") + list?.forEach { item -> + val id = item.attr("rel").toLongOrNull() ?: return@forEach val subjectEl = item.select("td:eq(0)").first() var hasAttachments = false diff --git a/app/src/main/res/values/errors.xml b/app/src/main/res/values/errors.xml index da95b45c..3561f609 100644 --- a/app/src/main/res/values/errors.xml +++ b/app/src/main/res/values/errors.xml @@ -112,6 +112,7 @@ ERROR_MOBIDZIENNIK_WEB_NO_SERVER_ID ERROR_MOBIDZIENNIK_WEB_INVALID_RESPONSE ERROR_LOGIN_MOBIDZIENNIK_WEB_NO_SESSION_ID + ERROR_MOBIDZIENNIK_WEB_SERVER_PROBLEM ERROR_LOGIN_VULCAN_INVALID_SYMBOL ERROR_LOGIN_VULCAN_INVALID_TOKEN @@ -286,6 +287,7 @@ MobiDziennik: brak identyfikatora serwera MobiDziennik: błąd odpowiedzi serwera Brak identyfikatora sesji przy logowaniu + MobiDziennik: problemy z wydajnością serwerów. Spróbuj ponownie później. Nieprawidłowy symbol Nieprawidłowy token