Cleanup GalleryDetailWidgets codestyle
This commit is contained in:
1 parent
e8ad2f2185
commit
4b1adab0eb
1 file changed
+79
-113
@@ -15,6 +15,7 @@ import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.ElevatedCard
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ProvideTextStyle
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
@@ -22,8 +23,6 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.res.pluralStringResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.intl.Locale
|
||||
import androidx.compose.ui.text.toUpperCase
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.constraintlayout.compose.ConstraintLayout
|
||||
import com.hippo.ehviewer.R
|
||||
@@ -32,24 +31,21 @@ import com.hippo.ehviewer.client.data.GalleryDetail
|
||||
import com.hippo.ehviewer.client.data.GalleryInfo
|
||||
|
||||
@Composable
|
||||
private fun GalleryDetailHeaderInfoCard(
|
||||
galleryDetail: GalleryDetail,
|
||||
fun GalleryDetailHeaderInfoCard(
|
||||
detail: GalleryDetail,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
galleryDetail.run {
|
||||
Card(
|
||||
onClick = onClick,
|
||||
modifier = modifier,
|
||||
) {
|
||||
ConstraintLayout(
|
||||
modifier = Modifier.padding(8.dp),
|
||||
) {
|
||||
val (langRef, sizeRef, favRef, pagesRef, postRef) = createRefs()
|
||||
modifier: Modifier = Modifier,
|
||||
) = detail.run {
|
||||
Card(
|
||||
onClick = onClick,
|
||||
modifier = modifier,
|
||||
) {
|
||||
ConstraintLayout(modifier = Modifier.padding(8.dp)) {
|
||||
val (langRef, sizeRef, favRef, pagesRef, postRef) = createRefs()
|
||||
|
||||
ProvideTextStyle(MaterialTheme.typography.labelMedium) {
|
||||
Text(
|
||||
text = language.orEmpty(),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
modifier = Modifier.constrainAs(langRef) {
|
||||
top.linkTo(parent.top)
|
||||
start.linkTo(parent.start)
|
||||
@@ -57,55 +53,36 @@ private fun GalleryDetailHeaderInfoCard(
|
||||
)
|
||||
Text(
|
||||
text = size.orEmpty(),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
modifier = Modifier
|
||||
.constrainAs(sizeRef) {
|
||||
baseline.linkTo(langRef.baseline)
|
||||
end.linkTo(parent.end)
|
||||
horizontalBias = 1.0f
|
||||
start.linkTo(langRef.end)
|
||||
}
|
||||
.padding(start = 16.dp),
|
||||
modifier = Modifier.constrainAs(sizeRef) {
|
||||
baseline.linkTo(langRef.baseline)
|
||||
end.linkTo(parent.end)
|
||||
horizontalBias = 1.0f
|
||||
start.linkTo(langRef.end)
|
||||
}.padding(start = 16.dp),
|
||||
)
|
||||
Text(
|
||||
text = stringResource(
|
||||
id = R.string.favored_times,
|
||||
favoriteCount,
|
||||
),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
modifier = Modifier
|
||||
.constrainAs(favRef) {
|
||||
start.linkTo(parent.start)
|
||||
top.linkTo(langRef.bottom)
|
||||
}
|
||||
.padding(top = 8.dp),
|
||||
text = stringResource(id = R.string.favored_times, favoriteCount),
|
||||
modifier = Modifier.constrainAs(favRef) {
|
||||
start.linkTo(parent.start)
|
||||
top.linkTo(langRef.bottom)
|
||||
}.padding(top = 8.dp),
|
||||
)
|
||||
Text(
|
||||
text = pluralStringResource(
|
||||
id = R.plurals.page_count,
|
||||
pages,
|
||||
pages,
|
||||
),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
modifier = Modifier
|
||||
.constrainAs(pagesRef) {
|
||||
baseline.linkTo(favRef.baseline)
|
||||
end.linkTo(parent.end)
|
||||
horizontalBias = 1.0f
|
||||
start.linkTo(favRef.end)
|
||||
}
|
||||
.padding(start = 16.dp),
|
||||
text = pluralStringResource(id = R.plurals.page_count, pages, pages),
|
||||
modifier = Modifier.constrainAs(pagesRef) {
|
||||
baseline.linkTo(favRef.baseline)
|
||||
end.linkTo(parent.end)
|
||||
horizontalBias = 1.0f
|
||||
start.linkTo(favRef.end)
|
||||
}.padding(start = 16.dp),
|
||||
)
|
||||
Text(
|
||||
text = posted.orEmpty(),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
modifier = Modifier
|
||||
.constrainAs(postRef) {
|
||||
end.linkTo(parent.end)
|
||||
start.linkTo(parent.start)
|
||||
top.linkTo(favRef.bottom)
|
||||
}
|
||||
.padding(top = 8.dp),
|
||||
modifier = Modifier.constrainAs(postRef) {
|
||||
end.linkTo(parent.end)
|
||||
start.linkTo(parent.start)
|
||||
top.linkTo(favRef.bottom)
|
||||
}.padding(top = 8.dp),
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -120,64 +97,53 @@ fun GalleryDetailHeaderCard(
|
||||
onUploaderChipClick: () -> Unit,
|
||||
onBlockUploaderIconClick: () -> Unit,
|
||||
onCategoryChipClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
ElevatedCard(
|
||||
modifier = modifier,
|
||||
) {
|
||||
Row {
|
||||
Card {
|
||||
EhAsyncCropThumb(
|
||||
model = galleryInfo.thumb,
|
||||
modifier = Modifier
|
||||
.height(dimensionResource(id = R.dimen.gallery_detail_thumb_height))
|
||||
.width(dimensionResource(id = R.dimen.gallery_detail_thumb_width)),
|
||||
modifier: Modifier = Modifier,
|
||||
) = ElevatedCard(modifier = modifier) {
|
||||
Row {
|
||||
Card {
|
||||
EhAsyncCropThumb(
|
||||
model = galleryInfo.thumb,
|
||||
modifier = Modifier.height(dimensionResource(id = R.dimen.gallery_detail_thumb_height)).width(dimensionResource(id = R.dimen.gallery_detail_thumb_width)),
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.weight(0.5F))
|
||||
Column(
|
||||
modifier = Modifier.height(dimensionResource(id = R.dimen.gallery_detail_thumb_height)),
|
||||
horizontalAlignment = Alignment.End,
|
||||
) {
|
||||
galleryDetail?.let {
|
||||
GalleryDetailHeaderInfoCard(
|
||||
detail = it,
|
||||
onClick = onInfoCardClick,
|
||||
modifier = Modifier.padding(top = 8.dp, end = dimensionResource(id = R.dimen.keyline_margin)),
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.weight(0.5F))
|
||||
Column(
|
||||
modifier = Modifier.height(dimensionResource(id = R.dimen.gallery_detail_thumb_height)),
|
||||
horizontalAlignment = Alignment.End,
|
||||
) {
|
||||
galleryDetail?.let {
|
||||
GalleryDetailHeaderInfoCard(
|
||||
galleryDetail = it,
|
||||
onClick = onInfoCardClick,
|
||||
modifier = Modifier.padding(
|
||||
top = 8.dp,
|
||||
end = dimensionResource(id = R.dimen.keyline_margin),
|
||||
),
|
||||
Spacer(modifier = Modifier.weight(1F))
|
||||
val categoryText = EhUtils.getCategory(galleryInfo.category).uppercase()
|
||||
AssistChip(
|
||||
onClick = onCategoryChipClick,
|
||||
label = { Text(text = categoryText, maxLines = 1) },
|
||||
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
|
||||
leadingIcon = {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Label,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.weight(1F))
|
||||
val categoryText =
|
||||
EhUtils.getCategory(galleryInfo.category).toUpperCase(Locale.current)
|
||||
AssistChip(
|
||||
onClick = onCategoryChipClick,
|
||||
label = { Text(text = categoryText, maxLines = 1) },
|
||||
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
|
||||
leadingIcon = {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Label,
|
||||
contentDescription = null,
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
val uploaderText = galleryInfo.uploader.orEmpty().toUpperCase(Locale.current)
|
||||
AssistChip(
|
||||
onClick = onUploaderChipClick,
|
||||
label = { Text(text = uploaderText, maxLines = 1) },
|
||||
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
|
||||
leadingIcon = {
|
||||
Icon(
|
||||
imageVector = Icons.Default.GroupOff,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.clickable(onClick = onBlockUploaderIconClick),
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
val uploaderText = galleryInfo.uploader.orEmpty().uppercase()
|
||||
AssistChip(
|
||||
onClick = onUploaderChipClick,
|
||||
label = { Text(text = uploaderText, maxLines = 1) },
|
||||
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
|
||||
leadingIcon = {
|
||||
Icon(
|
||||
imageVector = Icons.Default.GroupOff,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.clickable(onClick = onBlockUploaderIconClick),
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user