mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-08 12:42:44 -05:00
TVT-39: Add Additional Detail Movie Items
This commit is contained in:
@@ -146,6 +146,8 @@ fun MediaDetailView(
|
||||
|
||||
VideosCard(itemId = itemId, service = service)
|
||||
|
||||
AdditionalDetailsCard(itemId = itemId, mediaItem = mediaItem, service = service, type = type)
|
||||
|
||||
ReviewsCard(itemId = itemId, service = service)
|
||||
}
|
||||
}
|
||||
@@ -688,6 +690,98 @@ private fun OverviewCard(itemId: Int?, mediaItem: MutableState<DetailedItem?>, s
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun AdditionalDetailsCard(
|
||||
modifier: Modifier = Modifier,
|
||||
itemId: Int?,
|
||||
mediaItem: MutableState<DetailedItem?>,
|
||||
service: DetailService,
|
||||
type: MediaViewType
|
||||
) {
|
||||
mediaItem.value?.let { mi ->
|
||||
ContentCard(
|
||||
modifier = modifier,
|
||||
title = stringResource(R.string.additional_details_title)
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.wrapContentHeight()
|
||||
.padding(vertical = 12.dp, horizontal = 16.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.spoken_languages_title),
|
||||
subtext = mi.spokenLanguages.map { it.name }.filter { it.isNotEmpty() }.joinToString(separator = ", ")//joinToString(separator = ", ") { it.name }
|
||||
)
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.original_title_title),
|
||||
subtext = mi.originalTitle
|
||||
)
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.production_companies_title),
|
||||
subtext = mi.productionCompanies.joinToString(separator = ", ") { it.name }
|
||||
)
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.production_countries_title),
|
||||
subtext = mi.productionCountries.joinToString(separator = ", ") { it.name },
|
||||
)
|
||||
if (type == MediaViewType.MOVIE) {
|
||||
AdditionalMovieItems(movie = mi as DetailedMovie)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun AdditionalMovieItems(
|
||||
movie: DetailedMovie
|
||||
) {
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.movie_budget_title),
|
||||
subtext = "$${movie.budget}"
|
||||
)
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.movie_revenue_title),
|
||||
subtext = "$${movie.revenue}",
|
||||
includeDivider = movie.collection != null
|
||||
)
|
||||
movie.collection?.let {
|
||||
AdditionalDetailItem(
|
||||
title = stringResource(R.string.movie_collection_title),
|
||||
subtext = movie.collection.name,
|
||||
includeDivider = false
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun AdditionalDetailItem(
|
||||
title: String,
|
||||
subtext: String,
|
||||
includeDivider: Boolean = true
|
||||
) {
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
Text(
|
||||
text = title,
|
||||
fontSize = 16.sp,
|
||||
color = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
Text(
|
||||
text = subtext,
|
||||
fontSize = 14.sp,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
if (includeDivider) {
|
||||
Divider()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
private fun CastCard(itemId: Int?, service: DetailService, appNavController: NavController, modifier: Modifier = Modifier) {
|
||||
val castAndCrew = remember { mutableStateOf<CastAndCrew?>(null) }
|
||||
@@ -902,7 +996,9 @@ private fun ReviewsCard(
|
||||
.align(Alignment.CenterVertically)
|
||||
.clickable(
|
||||
onClick = {
|
||||
Toast.makeText(context, "TODO", Toast.LENGTH_SHORT).show()
|
||||
Toast
|
||||
.makeText(context, "TODO", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
),
|
||||
size = 40.dp,
|
||||
|
||||
@@ -155,4 +155,12 @@
|
||||
<string name="preference_show_poster_titles_subtitle">Show titles on home screen posters</string>
|
||||
<string name="reviews_title">Reviews</string>
|
||||
<string name="add_a_review_hint">Add a review</string>
|
||||
<string name="additional_details_title">Additional Details</string>
|
||||
<string name="original_title_title">Original Title</string>
|
||||
<string name="spoken_languages_title">Spoken Languages</string>
|
||||
<string name="production_companies_title">Production Companies</string>
|
||||
<string name="production_countries_title">Production Countries</string>
|
||||
<string name="movie_budget_title">Budget</string>
|
||||
<string name="movie_revenue_title">Revenue</string>
|
||||
<string name="movie_collection_title">Collection</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user