From fa28eb35abff06d49625c1e732560a00372bf63b Mon Sep 17 00:00:00 2001 From: Jannik Date: Wed, 21 Sep 2022 21:06:52 +0200 Subject: [PATCH] fix crash in TMDBApiController when searchMovie() returns no title * make title/name optional * for movies use the movie search endpoint instead of multi fixes #65 --- .../org/mosad/teapod/util/tmdb/TMDBApiController.kt | 2 +- .../java/org/mosad/teapod/util/tmdb/TMDBDataTypes.kt | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBApiController.kt b/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBApiController.kt index 7084394..0c96901 100644 --- a/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBApiController.kt +++ b/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBApiController.kt @@ -90,7 +90,7 @@ class TMDBApiController { * NoneTMDBSearchMovie if nothing was found */ suspend fun searchMovie(query: String): TMDBSearch { - val searchEndpoint = "/search/multi" + val searchEndpoint = "/search/movie" val parameters = listOf("query" to query, "include_adult" to false) return try { diff --git a/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBDataTypes.kt b/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBDataTypes.kt index 10432d9..3475cf9 100644 --- a/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBDataTypes.kt +++ b/app/src/main/java/org/mosad/teapod/util/tmdb/TMDBDataTypes.kt @@ -32,7 +32,7 @@ import kotlinx.serialization.Serializable interface TMDBResult { val id: Int - val name: String + val name: String? // for movies tmdb return string or null val overview: String? // for movies tmdb return string or null val posterPath: String? val backdropPath: String? @@ -40,7 +40,7 @@ interface TMDBResult { data class TMDBBase( override val id: Int, - override val name: String, + override val name: String?, override val overview: String?, override val posterPath: String?, override val backdropPath: String? @@ -59,7 +59,7 @@ data class TMDBSearch( @Serializable data class TMDBSearchResultMovie( @SerialName("id") override val id: Int, - @SerialName("title") override val name: String, + @SerialName("title") override val name: String?, @SerialName("overview") override val overview: String?, @SerialName("poster_path") override val posterPath: String?, @SerialName("backdrop_path") override val backdropPath: String?, @@ -68,7 +68,7 @@ data class TMDBSearchResultMovie( @Serializable data class TMDBSearchResultTVShow( @SerialName("id") override val id: Int, - @SerialName("name") override val name: String, + @SerialName("name") override val name: String?, @SerialName("overview") override val overview: String?, @SerialName("poster_path") override val posterPath: String?, @SerialName("backdrop_path") override val backdropPath: String?, @@ -92,7 +92,7 @@ data class TMDBMovie( @SerialName("release_date") val releaseDate: String, @SerialName("runtime") val runtime: Int?, @SerialName("status") val status: String, - // TODO generes + // TODO genres ) : TMDBResult @Serializable @@ -105,7 +105,7 @@ data class TMDBTVShow( @SerialName("first_air_date") val firstAirDate: String, @SerialName("last_air_date") val lastAirDate: String, @SerialName("status") val status: String, - // TODO generes + // TODO genres ) : TMDBResult // use null for nullable types, the gui needs to handle/implement a fallback for null values