diff --git a/app/src/main/java/com/hippo/ehviewer/ui/widget/Card.kt b/app/src/main/java/com/hippo/ehviewer/ui/widget/Card.kt index de67afc06..59ae5d132 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/widget/Card.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/widget/Card.kt @@ -16,6 +16,20 @@ private fun crystalCardBorder(): BorderStroke { return remember { originBorder.copy(brush = SolidColor(Color.Transparent)) } } +@Composable +fun CrystalCard( + onClick: () -> Unit, + onLongClick: () -> Unit, + modifier: Modifier = Modifier, + content: @Composable ColumnScope.() -> Unit, +) = OutlinedCard( + onClick = onClick, + onLongClick = onLongClick, + modifier = modifier, + border = crystalCardBorder(), + content = content, +) + @Composable fun CrystalCard( onClick: () -> Unit, @@ -27,13 +41,3 @@ fun CrystalCard( border = crystalCardBorder(), content = content, ) - -@Composable -fun CrystalCard( - modifier: Modifier = Modifier, - content: @Composable ColumnScope.() -> Unit, -) = OutlinedCard( - modifier = modifier, - border = crystalCardBorder(), - content = content, -) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/widget/Dummy.kt b/app/src/main/java/com/hippo/ehviewer/ui/widget/Dummy.kt new file mode 100644 index 000000000..03a604f4d --- /dev/null +++ b/app/src/main/java/com/hippo/ehviewer/ui/widget/Dummy.kt @@ -0,0 +1,66 @@ +package com.hippo.ehviewer.ui.widget + +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.material3.Card +import androidx.compose.material3.CardColors +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CardElevation +import androidx.compose.material3.ElevatedCard +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Shape + +// This file holds widgets ** Compose Material 3 ** library SHOULD but NOT implemented yet. + +@Composable +fun OutlinedCard( + onClick: () -> Unit, + onLongClick: () -> Unit, + modifier: Modifier = Modifier, + shape: Shape = CardDefaults.outlinedShape, + colors: CardColors = CardDefaults.outlinedCardColors(), + elevation: CardElevation = CardDefaults.outlinedCardElevation(), + border: BorderStroke = CardDefaults.outlinedCardBorder(), + content: @Composable ColumnScope.() -> Unit, +) = Card( + modifier = modifier, + shape = shape, + colors = colors, + elevation = elevation, + border = border, +) { + Column( + modifier = Modifier.combinedClickable( + onClick = onClick, + onLongClick = onLongClick, + ), + content = content, + ) +} + +@Composable +fun ElevatedCard( + onClick: () -> Unit, + onLongClick: () -> Unit, + modifier: Modifier = Modifier, + shape: Shape = CardDefaults.elevatedShape, + colors: CardColors = CardDefaults.elevatedCardColors(), + elevation: CardElevation = CardDefaults.elevatedCardElevation(), + content: @Composable ColumnScope.() -> Unit, +) = ElevatedCard( + modifier = modifier, + shape = shape, + colors = colors, + elevation = elevation, +) { + Column( + modifier = Modifier.combinedClickable( + onClick = onClick, + onLongClick = onLongClick, + ), + content = content, + ) +} diff --git a/app/src/main/java/com/hippo/ehviewer/ui/widget/GalleryInfoCard.kt b/app/src/main/java/com/hippo/ehviewer/ui/widget/GalleryInfoCard.kt index 46e4f06ef..fd4387250 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/widget/GalleryInfoCard.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/widget/GalleryInfoCard.kt @@ -1,7 +1,6 @@ package com.hippo.ehviewer.ui.widget import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -19,7 +18,6 @@ import androidx.compose.material.icons.filled.Download import androidx.compose.material.icons.filled.Favorite import androidx.compose.material3.Badge 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 @@ -46,13 +44,12 @@ fun GalleryInfoListItem( isInFavScene: Boolean = false, showPages: Boolean = false, ) { - CrystalCard(modifier = modifier) { - Row( - modifier = Modifier.combinedClickable( - onClick = onClick, - onLongClick = onLongClick, - ), - ) { + CrystalCard( + modifier = modifier, + onClick = onClick, + onLongClick = onLongClick, + ) { + Row { Card { EhAsyncCropThumb( model = info.thumb, @@ -132,14 +129,15 @@ fun GalleryInfoGridItem( val aspect = (info.thumbWidth.toFloat() / info.thumbHeight).coerceIn(0.33F, 1.5F) val color = EhUtils.getCategoryColor(info.category) val simpleLang = info.simpleLanguage - ElevatedCard(modifier = modifier) { + ElevatedCard( + modifier = modifier, + onClick = onClick, + onLongClick = onLongClick, + ) { Box { EhAsyncThumb( model = info.thumb, - modifier = Modifier.aspectRatio(aspect).fillMaxWidth().combinedClickable( - onClick = onClick, - onLongClick = onLongClick, - ), + modifier = Modifier.aspectRatio(aspect).fillMaxWidth(), contentScale = ContentScale.Crop, ) val container = Color(color)