5bb1133f0f
Issue cause the non nullables to become nullable has been fixed since 1.2.0-rc01
53 lines
1.7 KiB
Kotlin
53 lines
1.7 KiB
Kotlin
package eu.kanade.presentation.components
|
|
|
|
import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.layout.aspectRatio
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.draw.clip
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.Shape
|
|
import androidx.compose.ui.graphics.painter.ColorPainter
|
|
import androidx.compose.ui.layout.ContentScale
|
|
import androidx.compose.ui.semantics.Role
|
|
import androidx.compose.ui.unit.dp
|
|
import coil.compose.AsyncImage
|
|
import eu.kanade.presentation.util.rememberResourceBitmapPainter
|
|
import eu.kanade.tachiyomi.R
|
|
|
|
enum class MangaCover(val ratio: Float) {
|
|
Square(1f / 1f),
|
|
Book(2f / 3f);
|
|
|
|
@Composable
|
|
operator fun invoke(
|
|
modifier: Modifier = Modifier,
|
|
data: Any?,
|
|
contentDescription: String = "",
|
|
shape: Shape = RoundedCornerShape(4.dp),
|
|
onClick: (() -> Unit)? = null,
|
|
) {
|
|
AsyncImage(
|
|
model = data,
|
|
placeholder = ColorPainter(CoverPlaceholderColor),
|
|
error = rememberResourceBitmapPainter(id = R.drawable.cover_error),
|
|
contentDescription = contentDescription,
|
|
modifier = modifier
|
|
.aspectRatio(ratio)
|
|
.clip(shape)
|
|
.then(
|
|
if (onClick != null) {
|
|
Modifier.clickable(
|
|
role = Role.Button,
|
|
onClick = onClick,
|
|
)
|
|
} else Modifier,
|
|
),
|
|
contentScale = ContentScale.Crop,
|
|
)
|
|
}
|
|
}
|
|
|
|
private val CoverPlaceholderColor = Color(0x1F888888)
|