Skip to content

Instantly share code, notes, and snippets.

@enginebai
Created January 9, 2022 10:10
Show Gist options
  • Save enginebai/d36ddb81bc76ff6a56a767514d91029f to your computer and use it in GitHub Desktop.
Save enginebai/d36ddb81bc76ff6a56a767514d91029f to your computer and use it in GitHub Desktop.
@Composable
fun MovieInfoWidget(
posterUrl: String? = null,
movieName: String? = null,
isBookmark: Boolean = false,
rating: Float = 0.0f,
ratingTotalCountText: String? = null,
genres: String? = null,
releaseDateText: String? = null,
runtimeText: String? = null,
overview: String? = null,
onBackButtonClicked: () -> Unit = {}
) {
Column {
Box {
Image(
painter = rememberImagePainter(data = posterUrl),
contentDescription = null,
modifier = Modifier
.fillMaxWidth()
.aspectRatio(ratio = 3.0f.div(4.0f)),
contentScale = ContentScale.Crop
)
IconButton(onClick = onBackButtonClicked, modifier = Modifier.padding(start = 8.dp, top = 8.dp)) {
Icon(
imageVector = Icons.Filled.ArrowBack,
contentDescription = null,
modifier = Modifier
.size(48.dp)
.padding(12.dp)
,
tint = Color.White
)
}
}
Column(modifier = Modifier.padding(start = MHDimensions.pagePadding, end = 8.dp)) {
Row(
modifier = Modifier
.padding(top = 12.dp)
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(
movieName ?: "",
style = MHStyle.headline5,
modifier = Modifier
.align(alignment = Alignment.CenterVertically)
)
BookmarkButton(isBookmark = isBookmark, onCheckedChange = {
// TODO: bookmark feature
})
}
MovieRatingWidget(
rating = rating,
textRating = stringResource(R.string.reviews_total_count, ratingTotalCountText ?: "")
)
Text(
genres ?: "",
style = MHStyle.caption.copy(color = ColorsPalette.grey),
modifier = Modifier.padding(top = 8.dp)
)
Text(
releaseDateText ?: "",
style = MHStyle.caption.copy(color = ColorsPalette.grey),
modifier = Modifier.padding(top = 8.dp)
)
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(top = 8.dp)
) {
Image(painter = painterResource(id = R.drawable.clock), contentDescription = null)
Spacer(modifier = Modifier.width(4.dp))
Text(
runtimeText ?: ",",
style = MHStyle.caption.copy(color = ColorsPalette.colorAccent),
)
}
if (!overview.isNullOrBlank()) {
Spacer(modifier = Modifier.height(20.dp))
Text(stringResource(id = R.string.title_overview), style = MHStyle.headline6)
Spacer(modifier = Modifier.height(4.dp))
Text(
overview, style = MHStyle.body2,
modifier = Modifier.padding(vertical = 8.dp)
)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment