From a2b0103e988d20d3a8680cd6ed9e7efd85ba7ff1 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Tue, 25 Jun 2024 00:43:22 +0700 Subject: [PATCH] feat(ui): better cover_error size --- .../history/components/HistoryItem.kt | 1 + .../library/components/CommonMangaItem.kt | 1 + .../manga/components/BaseMangaListItem.kt | 3 +++ .../presentation/manga/components/MangaCover.kt | 16 ++++++++++++++-- .../kanade/presentation/updates/UpdatesUiItem.kt | 1 + app/src/main/res/drawable/cover_error.xml | 14 +++----------- app/src/main/res/drawable/cover_error_big.xml | 16 ++++++++++++++++ app/src/main/res/drawable/cover_error_medium.xml | 16 ++++++++++++++++ app/src/main/res/drawable/cover_error_vector.xml | 10 ++++++++++ 9 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 app/src/main/res/drawable/cover_error_big.xml create mode 100644 app/src/main/res/drawable/cover_error_medium.xml create mode 100644 app/src/main/res/drawable/cover_error_vector.xml diff --git a/app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt b/app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt index 6e16eff31..21eb2bf45 100644 --- a/app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt +++ b/app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt @@ -61,6 +61,7 @@ fun HistoryItem( // KMK --> bgColor = bgColor, tint = onBgColor, + size = MangaCover.Size.Medium, // KMK <-- ) Column( diff --git a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt index 48d2a93b3..dd5e8b0c0 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt @@ -382,6 +382,7 @@ fun MangaListItem( alpha = coverAlpha, bgColor = bgColor, tint = onBgColor, + size = MangaCover.Size.Big, // KMK <-- ) Text( diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/BaseMangaListItem.kt b/app/src/main/java/eu/kanade/presentation/manga/components/BaseMangaListItem.kt index 48952d8a8..652fb87d3 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/BaseMangaListItem.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/BaseMangaListItem.kt @@ -47,6 +47,9 @@ private val defaultCover: @Composable RowScope.(Manga, () -> Unit) -> Unit = { m .fillMaxHeight(), data = manga, onClick = onClick, + // KMK --> + size = MangaCover.Size.Big, + // KMK <-- ) } diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt index 3ab7458a8..974c45944 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt @@ -34,6 +34,12 @@ enum class MangaCover(val ratio: Float) { Book(2f / 3f), ; + enum class Size { + Normal, + Medium, + Big, + } + @Composable operator fun invoke( data: Any?, @@ -46,9 +52,15 @@ enum class MangaCover(val ratio: Float) { bgColor: Color? = null, @ColorInt tint: Int? = null, onCoverLoaded: ((DomainMangaCover) -> Unit)? = null, + size: Size = Size.Normal, // KMK <-- ) { // KMK --> + val coverErrorPainter = when (size) { + Size.Big -> rememberResourceBitmapPainter(id = R.drawable.cover_error_big, tint) + Size.Medium -> rememberResourceBitmapPainter(id = R.drawable.cover_error_medium, tint) + else -> rememberResourceBitmapPainter(id = R.drawable.cover_error, tint) + } val animatedImageVector = AnimatedImageVector.animatedVectorResource(R.drawable.anim_waiting) var atEnd by remember { mutableStateOf(false) } @@ -71,8 +83,8 @@ enum class MangaCover(val ratio: Float) { // KMK --> // placeholder = ColorPainter(CoverPlaceholderColor), placeholder = rememberAnimatedVectorPainter(animatedImageVector = animatedImageVector, atEnd = atEnd), - error = rememberResourceBitmapPainter(id = R.drawable.cover_error, tint), - fallback = rememberResourceBitmapPainter(id = R.drawable.cover_error, tint), + error = coverErrorPainter, + fallback = coverErrorPainter, onSuccess = { succeed = true if (onCoverLoaded != null) { diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt index 384821b8b..21de18912 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt @@ -183,6 +183,7 @@ private fun UpdatesUiItem( // KMK --> bgColor = bgColor, tint = onBgColor, + size = MangaCover.Size.Big, // KMK <-- ) diff --git a/app/src/main/res/drawable/cover_error.xml b/app/src/main/res/drawable/cover_error.xml index 547a23425..54b2631b6 100644 --- a/app/src/main/res/drawable/cover_error.xml +++ b/app/src/main/res/drawable/cover_error.xml @@ -9,16 +9,8 @@ android:top="48dp" android:bottom="48dp" android:left="48dp" - android:right="48dp"> - - - - + android:right="48dp" + android:drawable="@drawable/cover_error_vector" + /> diff --git a/app/src/main/res/drawable/cover_error_big.xml b/app/src/main/res/drawable/cover_error_big.xml new file mode 100644 index 000000000..9b0c7f863 --- /dev/null +++ b/app/src/main/res/drawable/cover_error_big.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/cover_error_medium.xml b/app/src/main/res/drawable/cover_error_medium.xml new file mode 100644 index 000000000..58bcb2143 --- /dev/null +++ b/app/src/main/res/drawable/cover_error_medium.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/cover_error_vector.xml b/app/src/main/res/drawable/cover_error_vector.xml new file mode 100644 index 000000000..e2f181662 --- /dev/null +++ b/app/src/main/res/drawable/cover_error_vector.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file