mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-21 19:20:57 -05:00
basis for showing people on homepage
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
package com.owenlejeune.tvtime.api.tmdb
|
package com.owenlejeune.tvtime.api.tmdb
|
||||||
|
|
||||||
import com.owenlejeune.tvtime.api.tmdb.model.DetailPerson
|
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.PersonCreditsResponse
|
||||||
import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection
|
import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import retrofit2.http.GET
|
import retrofit2.http.GET
|
||||||
import retrofit2.http.Path
|
import retrofit2.http.Path
|
||||||
|
import retrofit2.http.Query
|
||||||
|
|
||||||
interface PeopleApi {
|
interface PeopleApi {
|
||||||
|
|
||||||
@@ -24,6 +26,9 @@ interface PeopleApi {
|
|||||||
@GET("person/{id}/images")
|
@GET("person/{id}/images")
|
||||||
suspend fun getImages(@Path("id") id: Int): Response<PersonImageCollection>
|
suspend fun getImages(@Path("id") id: Int): Response<PersonImageCollection>
|
||||||
|
|
||||||
|
@GET("person/popular")
|
||||||
|
suspend fun getPopular(@Query("page") page: Int = 1): Response<HomePagePeopleResponse>
|
||||||
|
|
||||||
// @GET("persons/{id}/tagged_images")
|
// @GET("persons/{id}/tagged_images")
|
||||||
// suspend fun getTaggedImages(@Path("id") id: Int, @Query("page") page: Int = 1): Response<PersonImageCollection>
|
// suspend fun getTaggedImages(@Path("id") id: Int, @Query("page") page: Int = 1): Response<PersonImageCollection>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.owenlejeune.tvtime.api.tmdb
|
package com.owenlejeune.tvtime.api.tmdb
|
||||||
|
|
||||||
import com.owenlejeune.tvtime.api.tmdb.model.DetailPerson
|
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.PersonCreditsResponse
|
||||||
import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection
|
import com.owenlejeune.tvtime.api.tmdb.model.PersonImageCollection
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
@@ -22,4 +23,8 @@ class PeopleService: KoinComponent {
|
|||||||
return service.getImages(id)
|
return service.getImages(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun getPopular(page: Int = 1): Response<HomePagePeopleResponse> {
|
||||||
|
return service.getPopular(page)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model
|
|||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
|
|
||||||
class HomePageMoviesResponse(
|
class HomePageMoviesResponse(
|
||||||
count: Int,
|
totalResults: Int,
|
||||||
|
totalPages: Int,
|
||||||
page: Int,
|
page: Int,
|
||||||
@SerializedName("results") override val results: List<HomePageMovie>
|
@SerializedName("results") override val results: List<HomePageMovie>
|
||||||
): HomePageResponse(count, page, results)
|
): HomePageResponse(totalResults, totalPages, page, results)
|
||||||
@@ -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<HomePagePerson>
|
||||||
|
)
|
||||||
@@ -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")
|
||||||
|
)
|
||||||
@@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model
|
|||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
|
|
||||||
abstract class HomePageResponse(
|
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,
|
@SerializedName("page") val page: Int,
|
||||||
@Transient open val results: List<TmdbItem>
|
@Transient open val results: List<TmdbItem>
|
||||||
)
|
)
|
||||||
@@ -3,7 +3,8 @@ package com.owenlejeune.tvtime.api.tmdb.model
|
|||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
|
|
||||||
class HomePageTvResponse(
|
class HomePageTvResponse(
|
||||||
count: Int,
|
totalResults: Int,
|
||||||
|
totalPages: Int,
|
||||||
page: Int,
|
page: Int,
|
||||||
@SerializedName("results") override val results: List<HomePageTv>
|
@SerializedName("results") override val results: List<HomePageTv>
|
||||||
): HomePageResponse(count, page, results)
|
): HomePageResponse(totalResults, totalPages, page, results)
|
||||||
@@ -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 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 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 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")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,4 +57,5 @@
|
|||||||
<string name="nav_rated_movies_title">Rated Movies</string>
|
<string name="nav_rated_movies_title">Rated Movies</string>
|
||||||
<string name="nav_rated_shows_title">Rated TV Shows</string>
|
<string name="nav_rated_shows_title">Rated TV Shows</string>
|
||||||
<string name="nav_rated_episodes_title">Rated TV Episodes</string>
|
<string name="nav_rated_episodes_title">Rated TV Episodes</string>
|
||||||
|
<string name="nav_people_title">People</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user