From 97966f5ad3b573c157c39d14622bd42aa1c50a25 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sat, 16 Jul 2022 14:13:08 +0200 Subject: [PATCH] fix a crash when url or vcodes are missing for a stream always initialize them, also initialize hardsub_locale since it might be optional too --- .../teapod/parser/crunchyroll/Crunchyroll.kt | 28 +++++++++---------- .../teapod/parser/crunchyroll/DataTypes.kt | 6 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt index 897122f..a319a67 100644 --- a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt +++ b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt @@ -331,7 +331,7 @@ object Crunchyroll { return try { requestGet(searchEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in search(), with query = \"$query\".", ex) NoneSearchResult } @@ -355,7 +355,7 @@ object Crunchyroll { return try { requestGet(episodesEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in objects().", ex) NoneCollection } @@ -371,7 +371,7 @@ object Crunchyroll { return try { requestGet(seasonListEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in seasonList().", ex) NoneDiscSeasonList } @@ -395,7 +395,7 @@ object Crunchyroll { return try { requestGet(seriesEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in series().", ex) NoneSeries } @@ -416,7 +416,7 @@ object Crunchyroll { return try { requestGet(upNextSeriesEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in upNextSeries().", ex) NoneUpNextSeriesItem } @@ -440,7 +440,7 @@ object Crunchyroll { return try { requestGet(seasonsEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in seasons().", ex) NoneSeasons } @@ -464,7 +464,7 @@ object Crunchyroll { return try { requestGet(episodesEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in episodes().", ex) NoneEpisodes } @@ -479,7 +479,7 @@ object Crunchyroll { suspend fun playback(url: String): Playback { return try { requestGet("", url = url) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in playback(), with url = $url.", ex) NonePlayback } @@ -502,7 +502,7 @@ object Crunchyroll { return try { (requestGet(watchlistSeriesEndpoint, parameters) as JsonObject) .containsKey(seriesId) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in isWatchlist() with seriesId = $seriesId", ex) false } @@ -598,7 +598,7 @@ object Crunchyroll { return try { requestGet(similarToEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in similarTo().", ex) NoneSimilarToResult } @@ -623,7 +623,7 @@ object Crunchyroll { val list: ContinueWatchingList = try { requestGet(watchlistEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in watchlist().", ex) NoneContinueWatchingList } @@ -647,7 +647,7 @@ object Crunchyroll { return try { requestGet(watchlistEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in upNextAccount().", ex) NoneContinueWatchingList } @@ -664,7 +664,7 @@ object Crunchyroll { return try { requestGet(recommendationsEndpoint, parameters) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in recommendations().", ex) NoneRecommendationsList } @@ -684,7 +684,7 @@ object Crunchyroll { return try { requestGet(profileEndpoint) - }catch (ex: SerializationException) { + } catch (ex: SerializationException) { Log.e(TAG, "SerializationException in profile().", ex) NoneProfile } diff --git a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/DataTypes.kt b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/DataTypes.kt index cc41aec..0aaf2ca 100644 --- a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/DataTypes.kt +++ b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/DataTypes.kt @@ -380,9 +380,9 @@ data class Streams( @Serializable data class Stream( - @SerialName("hardsub_locale") val hardsubLocale: String, - @SerialName("url") val url: String, - @SerialName("vcodec") val vcodec: String, + @SerialName("hardsub_locale") val hardsubLocale: String = "", // default/nullable value since might be optional + @SerialName("url") val url: String = "", // default/nullable value since optional + @SerialName("vcodec") val vcodec: String = "", // default/nullable value since optional ) val NonePlayback = Playback(