From 4ae23c4380cf9a390601b3afac3d7fa76b0737f0 Mon Sep 17 00:00:00 2001 From: Jannik Date: Thu, 15 Oct 2020 16:23:52 +0200 Subject: [PATCH] fix crash in episode count extraction --- .../java/org/mosad/teapod/parser/AoDParser.kt | 31 +++++++++++++------ .../teapod/ui/library/LibraryFragment.kt | 2 +- .../mosad/teapod/ui/search/SearchFragment.kt | 2 +- .../{ => decoration}/MediaItemDecoration.kt | 2 +- app/src/main/res/layout/fragment_search.xml | 2 ++ app/src/main/res/layout/item_media.xml | 1 + 6 files changed, 27 insertions(+), 13 deletions(-) rename app/src/main/java/org/mosad/teapod/util/{ => decoration}/MediaItemDecoration.kt (91%) diff --git a/app/src/main/java/org/mosad/teapod/parser/AoDParser.kt b/app/src/main/java/org/mosad/teapod/parser/AoDParser.kt index 3f46b39..bd2dc0a 100644 --- a/app/src/main/java/org/mosad/teapod/parser/AoDParser.kt +++ b/app/src/main/java/org/mosad/teapod/parser/AoDParser.kt @@ -9,6 +9,7 @@ import org.mosad.teapod.preferences.EncryptedPreferences import org.mosad.teapod.util.DataTypes.MediaType import org.mosad.teapod.util.Episode import org.mosad.teapod.util.Media +import java.io.IOException import java.util.* import kotlin.collections.ArrayList @@ -128,11 +129,16 @@ class AoDParser { //println(res) // parse additional info from the media page - res.select("table.vertical-table").select("tr").forEach { - when (it.select("th").text().toLowerCase(Locale.ROOT)) { - "produktionsjahr" -> media.info.year = it.select("td").text().toInt() - "fsk" -> media.info.age = it.select("td").text().toInt() - "episodenanzahl" -> media.info.episodesCount = it.select("td").text().toInt() + res.select("table.vertical-table").select("tr").forEach { row -> + when (row.select("th").text().toLowerCase(Locale.ROOT)) { + "produktionsjahr" -> media.info.year = row.select("td").text().toInt() + "fsk" -> media.info.age = row.select("td").text().toInt() + "episodenanzahl" -> { + media.info.episodesCount = row.select("td").text() + .substringBefore("/") + .filter{ it.isDigit() } + .toInt() + } } } @@ -251,11 +257,16 @@ class AoDParser { Pair("X-Requested-With", "XMLHttpRequest"), ) - Jsoup.connect(baseUrl + callbackPath) - .ignoreContentType(true) - .cookies(sessionCookies) - .headers(headers) - .execute() + try { + Jsoup.connect(baseUrl + callbackPath) + .ignoreContentType(true) + .cookies(sessionCookies) + .headers(headers) + .execute() + } catch (ex: IOException) { + Log.e(javaClass.name, "Callback for $callbackPath failed.") + } + } } diff --git a/app/src/main/java/org/mosad/teapod/ui/library/LibraryFragment.kt b/app/src/main/java/org/mosad/teapod/ui/library/LibraryFragment.kt index 1b3c185..27c281f 100644 --- a/app/src/main/java/org/mosad/teapod/ui/library/LibraryFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/library/LibraryFragment.kt @@ -11,7 +11,7 @@ import kotlinx.coroutines.* import org.mosad.teapod.MainActivity import org.mosad.teapod.R import org.mosad.teapod.parser.AoDParser -import org.mosad.teapod.util.MediaItemDecoration +import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.adapter.MediaItemAdapter class LibraryFragment : Fragment() { diff --git a/app/src/main/java/org/mosad/teapod/ui/search/SearchFragment.kt b/app/src/main/java/org/mosad/teapod/ui/search/SearchFragment.kt index 7757e2f..2c38b37 100644 --- a/app/src/main/java/org/mosad/teapod/ui/search/SearchFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/search/SearchFragment.kt @@ -12,7 +12,7 @@ import kotlinx.coroutines.* import org.mosad.teapod.MainActivity import org.mosad.teapod.R import org.mosad.teapod.parser.AoDParser -import org.mosad.teapod.util.MediaItemDecoration +import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.adapter.MediaItemAdapter class SearchFragment : Fragment() { diff --git a/app/src/main/java/org/mosad/teapod/util/MediaItemDecoration.kt b/app/src/main/java/org/mosad/teapod/util/decoration/MediaItemDecoration.kt similarity index 91% rename from app/src/main/java/org/mosad/teapod/util/MediaItemDecoration.kt rename to app/src/main/java/org/mosad/teapod/util/decoration/MediaItemDecoration.kt index 0643a62..cb4999f 100644 --- a/app/src/main/java/org/mosad/teapod/util/MediaItemDecoration.kt +++ b/app/src/main/java/org/mosad/teapod/util/decoration/MediaItemDecoration.kt @@ -1,4 +1,4 @@ -package org.mosad.teapod.util +package org.mosad.teapod.util.decoration import android.graphics.Rect import android.view.View diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index bd6944b..d3948a6 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -11,6 +11,8 @@ android:id="@+id/search_text" android:layout_width="match_parent" android:layout_height="0dp" + android:background="#FFFFFF" + android:elevation="8dp" android:iconifiedByDefault="false" android:paddingBottom="5dp" android:queryHint="@string/search_hint" diff --git a/app/src/main/res/layout/item_media.xml b/app/src/main/res/layout/item_media.xml index 4d4c08d..8b1ab8c 100644 --- a/app/src/main/res/layout/item_media.xml +++ b/app/src/main/res/layout/item_media.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:backgroundTint="#FFFFFF" + android:visibility="visible" app:cardCornerRadius="7dp" app:cardElevation="4dp">