From eebd5342aea2cac7b41e8b95e43f2ec24fec7281 Mon Sep 17 00:00:00 2001 From: Owen LeJeune Date: Mon, 28 Feb 2022 21:23:35 -0500 Subject: [PATCH] basis for showing people on homepage --- .../com/owenlejeune/tvtime/api/tmdb/PeopleApi.kt | 5 +++++ .../com/owenlejeune/tvtime/api/tmdb/PeopleService.kt | 5 +++++ .../tvtime/api/tmdb/model/HomePageMoviesResponse.kt | 5 +++-- .../tvtime/api/tmdb/model/HomePagePeopleResponse.kt | 10 ++++++++++ .../tvtime/api/tmdb/model/HomePagePerson.kt | 12 ++++++++++++ .../tvtime/api/tmdb/model/HomePageResponse.kt | 3 ++- .../tvtime/api/tmdb/model/HomePageTvResponse.kt | 5 +++-- .../tvtime/ui/navigation/BottomNavItem.kt | 1 + app/src/main/res/values/strings.xml | 1 + 9 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePeopleResponse.kt create mode 100644 app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePerson.kt diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleApi.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleApi.kt index c1cb652..5cfa189 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleApi.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleApi.kt @@ -1,11 +1,13 @@ package com.owenlejeune.tvtime.api.tmdb import com.owenlejeune.tvtime.api.tmdb.model.DetailPerson +import com.owenlejeune.tvtime.api.tmdb.model.HomePagePeopleResponse import com.owenlejeune.tvtime.api.tmdb.model.PersonCreditsResponse import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Path +import retrofit2.http.Query interface PeopleApi { @@ -24,6 +26,9 @@ interface PeopleApi { @GET("person/{id}/images") suspend fun getImages(@Path("id") id: Int): Response + @GET("person/popular") + suspend fun getPopular(@Query("page") page: Int = 1): Response + // @GET("persons/{id}/tagged_images") // suspend fun getTaggedImages(@Path("id") id: Int, @Query("page") page: Int = 1): Response diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleService.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleService.kt index 3e73b0c..0983594 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleService.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/PeopleService.kt @@ -1,6 +1,7 @@ package com.owenlejeune.tvtime.api.tmdb import com.owenlejeune.tvtime.api.tmdb.model.DetailPerson +import com.owenlejeune.tvtime.api.tmdb.model.HomePagePeopleResponse import com.owenlejeune.tvtime.api.tmdb.model.PersonCreditsResponse import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection import org.koin.core.component.KoinComponent @@ -22,4 +23,8 @@ class PeopleService: KoinComponent { return service.getImages(id) } + suspend fun getPopular(page: Int = 1): Response { + return service.getPopular(page) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageMoviesResponse.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageMoviesResponse.kt index 21bc8ec..356ad02 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageMoviesResponse.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageMoviesResponse.kt @@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model import com.google.gson.annotations.SerializedName class HomePageMoviesResponse( - count: Int, + totalResults: Int, + totalPages: Int, page: Int, @SerializedName("results") override val results: List -): HomePageResponse(count, page, results) \ No newline at end of file +): HomePageResponse(totalResults, totalPages, page, results) \ No newline at end of file diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePeopleResponse.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePeopleResponse.kt new file mode 100644 index 0000000..599e368 --- /dev/null +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePeopleResponse.kt @@ -0,0 +1,10 @@ +package com.owenlejeune.tvtime.api.tmdb.model + +import com.google.gson.annotations.SerializedName + +class HomePagePeopleResponse( + @SerializedName("total_results") val totalResults: Int, + @SerializedName("total_pages") val totalPages: Int, + @SerializedName("page") val page: Int, + @SerializedName("results") val results: List +) diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePerson.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePerson.kt new file mode 100644 index 0000000..f0aaf80 --- /dev/null +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePagePerson.kt @@ -0,0 +1,12 @@ +package com.owenlejeune.tvtime.api.tmdb.model + +import com.google.gson.annotations.SerializedName + +class HomePagePerson( + @SerializedName("profile_path") val profilePath: String, + @SerializedName("adult") val isAdult: Boolean, + @SerializedName("id") val id: Int, + @SerializedName("name") val name: String, + @SerializedName("popularity") val popularity: Float +// @SerializedName("known_for") +) \ No newline at end of file diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageResponse.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageResponse.kt index ea3358d..4e0c50f 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageResponse.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageResponse.kt @@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model import com.google.gson.annotations.SerializedName abstract class HomePageResponse( - @SerializedName("total_results") val count: Int, + @SerializedName("total_results") val totalResults: Int, + @SerializedName("total_pages") val totalPages: Int, @SerializedName("page") val page: Int, @Transient open val results: List ) \ No newline at end of file diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageTvResponse.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageTvResponse.kt index 4b71474..488dd1b 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageTvResponse.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/HomePageTvResponse.kt @@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model import com.google.gson.annotations.SerializedName class HomePageTvResponse( - count: Int, + totalResults: Int, + totalPages: Int, page: Int, @SerializedName("results") override val results: List -): HomePageResponse(count, page, results) \ No newline at end of file +): HomePageResponse(totalResults, totalPages, page, results) \ No newline at end of file diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/navigation/BottomNavItem.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/navigation/BottomNavItem.kt index 729e805..1a54db6 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/navigation/BottomNavItem.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/navigation/BottomNavItem.kt @@ -31,5 +31,6 @@ sealed class BottomNavItem(stringRes: Int, val icon: Int, val route: String): Ko object Account: BottomNavItem(R.string.nav_account_title, R.drawable.ic_person, "account_route") object Favourites: BottomNavItem(R.string.nav_favourites_title, R.drawable.ic_favorite, "favourites_route") object Settings: BottomNavItem(R.string.nav_settings_title, R.drawable.ic_settings, "settings_route") + object People: BottomNavItem(R.string.nav_people_title, R.drawable.ic_person, "people_route") } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d6bdb44..5c4ef46 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,4 +57,5 @@ Rated Movies Rated TV Shows Rated TV Episodes + People \ No newline at end of file