diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCast.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCast.kt
index f89128f..2d14c8e 100644
--- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCast.kt
+++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCast.kt
@@ -7,12 +7,12 @@ class DetailCast(
@SerializedName("id") val id: Int,
@SerializedName("episode_count") val episodeCount: Int,
@SerializedName("overview") val overview: String,
- @SerializedName("name") val name: String,
+ @SerializedName("name") val name: String?,
@SerializedName("media_type") val mediaType: MediaViewType,
@SerializedName("poster_path") val posterPath: String?,
@SerializedName("first_air_date") val firstAirDate: String,
@SerializedName("character") val character: String,
- @SerializedName("title") val title: String,
+ @SerializedName("title") val title: String?,
@SerializedName("adult") val isAdult: Boolean,
@SerializedName("release_date") val releaseDate: String
)
diff --git a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCrew.kt b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCrew.kt
index 47814aa..f844307 100644
--- a/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCrew.kt
+++ b/app/src/main/java/com/owenlejeune/tvtime/api/tmdb/model/DetailCrew.kt
@@ -9,11 +9,11 @@ class DetailCrew(
@SerializedName("episode_count") val episodeCount: Int,
@SerializedName("job") val job: String,
@SerializedName("overview") val overview: String,
- @SerializedName("name") val name: String,
+ @SerializedName("name") val name: String?,
@SerializedName("media_type") val mediaType: MediaViewType,
@SerializedName("first_air_date") val firstAirDate: String,
@SerializedName("poster_path") val posterPath: String,
- @SerializedName("title") val title: String,
+ @SerializedName("title") val title: String?,
@SerializedName("adult") val isAdult: Boolean,
@SerializedName("release_date") val releaseDate: String
)
\ No newline at end of file
diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/DetailView.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/DetailView.kt
index ed73278..697d3f3 100644
--- a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/DetailView.kt
+++ b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/DetailView.kt
@@ -1,11 +1,8 @@
package com.owenlejeune.tvtime.ui.screens
-import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.background
+import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyRow
-import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material3.Icon
@@ -96,7 +93,7 @@ fun DetailView(
start.linkTo(posterImage.end, margin = 8.dp)
end.linkTo(parent.end, margin = 16.dp)
},
- title = mediaItem.value?.title ?: ""
+ title = mediaItem.value?.title ?: "",
)
BackButton(
@@ -226,8 +223,13 @@ fun PersonDetailView(
items(credits.value?.cast?.size ?: 0) { i ->
val content = credits.value!!.cast[i]
+ val title = if (content.mediaType == MediaViewType.MOVIE) {
+ content.title ?: ""
+ } else {
+ content.name ?: ""
+ }
TwoLineImageTextCard(
- title = content.title,
+ title = title,
subtitle = content.character,
modifier = Modifier
.width(124.dp)
@@ -244,6 +246,54 @@ fun PersonDetailView(
}
}
}
+
+ ContentCard(title = stringResource(R.string.also_known_for_label)) {
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .wrapContentHeight()
+ .padding(12.dp),
+ verticalArrangement = Arrangement.spacedBy(8.dp)
+ ) {
+ val departments = credits.value?.crew?.map { it.department }?.toSet() ?: emptySet()
+ if (departments.isNotEmpty()) {
+ departments.forEach { department ->
+ Text(text = department, color = MaterialTheme.colorScheme.onSurface)
+ LazyRow(
+ modifier = Modifier
+ .fillMaxWidth()
+ .wrapContentHeight(),
+ horizontalArrangement = Arrangement.spacedBy(4.dp)
+ ) {
+ val jobsInDepartment = credits.value!!.crew.filter { it.department == department }
+ items(jobsInDepartment.size) { i ->
+ val content = jobsInDepartment[i]
+ val title = if (content.mediaType == MediaViewType.MOVIE) {
+ content.title ?: ""
+ } else {
+ content.name ?: ""
+ }
+ TwoLineImageTextCard(
+ title = title,
+ subtitle = content.job,
+ modifier = Modifier
+ .width(124.dp)
+ .wrapContentHeight(),
+ imageUrl = TmdbUtils.getFullPosterPath(content.posterPath),
+ onItemClicked = {
+ personId?.let {
+ appNavController.navigate(
+ "${MainNavItem.DetailView.route}/${content.mediaType}/${content.id}"
+ )
+ }
+ }
+ )
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -275,17 +325,20 @@ private fun TitleText(modifier: Modifier, title: String) {
.fillMaxWidth(.6f),
style = MaterialTheme.typography.headlineMedium,
textAlign = TextAlign.Start,
- softWrap = true
+ softWrap = true,
+ maxLines = 3,
+ overflow = TextOverflow.Ellipsis
)
}
@Composable
private fun BackButton(modifier: Modifier, appNavController: NavController) {
+ val start = if (isSystemInDarkTheme()) Color.Black else Color.White
IconButton(
onClick = { appNavController.popBackStack() },
modifier = modifier
.background(
- brush = Brush.radialGradient(colors = listOf(Color.Black, Color.Transparent))
+ brush = Brush.radialGradient(colors = listOf(start, Color.Transparent))
)
.wrapContentSize()
) {
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
deleted file mode 100644
index 133937c..0000000
--- a/app/src/main/res/values-fr/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- TVTime
-
-
- Films
- Télé
- Favoris
- Réglages
- Lecture en cours
- Populaire
- Les mieux notés
- A venir
- Aujourd\'hui
- À l\'antenne
-
-
- Acteurs
-
-
- Rechercher
- Barre de recherche presistante
- Gardez la barre de recherche visible à tout moment
- Barre de recherche étendue
- Gardez la barre de recherche développée à tout moment
- Options de développeur
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9a743b0..526b897 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -18,6 +18,7 @@
Recommended
Videos
Known For
+ Also Known For
See more
See less