From dada671f972354aa414a803298cc91443678b431 Mon Sep 17 00:00:00 2001 From: tarsin Date: Thu, 9 Mar 2023 19:04:25 +0800 Subject: [PATCH] Cleanup GalleryCard --- .../hippo/ehviewer/ui/scene/HistoryScene.kt | 15 ++++++++++-- .../ehviewer/ui/widget/GalleryInfoCard.kt | 23 ++++--------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt index f7476e4d1..8211cdf25 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt @@ -24,7 +24,10 @@ import android.view.LayoutInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup +import androidx.compose.foundation.layout.height +import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat import androidx.lifecycle.lifecycleScope @@ -39,7 +42,11 @@ import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.google.accompanist.themeadapter.material3.Mdc3Theme import com.hippo.app.BaseDialogBuilder import com.hippo.easyrecyclerview.HandlerDrawable -import com.hippo.ehviewer.* +import com.hippo.ehviewer.EhApplication +import com.hippo.ehviewer.EhDB +import com.hippo.ehviewer.FavouriteStatusRouter +import com.hippo.ehviewer.R +import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.dao.DownloadInfo @@ -55,6 +62,7 @@ import com.hippo.widget.recyclerview.AutoStaggeredGridLayoutManager import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext +import eu.kanade.tachiyomi.util.system.pxToDp import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import rikka.core.res.resolveColor @@ -360,6 +368,8 @@ class HistoryScene : BaseToolbarScene() { } } + private val height = (Settings.listThumbSize * 3).pxToDp.dp + private inner class HistoryAdapter(diffCallback: DiffUtil.ItemCallback) : PagingDataAdapter(diffCallback) { @@ -375,7 +385,8 @@ class HistoryScene : BaseToolbarScene() { ListInfoCard( onClick = { onItemClick(gi) }, onLongClick = { onItemLongClick(gi) }, - info = gi + info = gi, + modifier = Modifier.height(height) ) } } 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 03aac1b5b..83acfbc0d 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 @@ -6,17 +6,15 @@ import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.material3.Card import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedCard import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -26,15 +24,11 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.hippo.ehviewer.R -import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.download.DownloadManager -import eu.kanade.tachiyomi.util.system.pxToDp import java.util.Locale -private val downloadManager = DownloadManager - @Composable fun ListInfoCard( onClick: () -> Unit, @@ -43,15 +37,11 @@ fun ListInfoCard( modifier: Modifier = Modifier ) { OutlinedCard( - modifier = modifier.padding(6.dp), + modifier = Modifier.padding(6.dp), border = BorderStroke(1.dp, Color.Transparent) ) { - val listCardSize = remember { Settings.listThumbSize.pxToDp } - val height = (listCardSize * 3).dp - val width = (listCardSize * 2).dp Row( - modifier = Modifier - .height(height) + modifier = modifier .combinedClickable( onClick = onClick, onLongClick = onLongClick @@ -61,9 +51,7 @@ fun ListInfoCard( EhAsyncThumb( model = info.thumb, contentScale = ContentScale.Crop, - modifier = Modifier - .width(width) - .height(height) + modifier = modifier.aspectRatio(0.6666667F) ) } Column(Modifier.padding(8.dp, 4.dp)) { @@ -99,8 +87,7 @@ fun ListInfoCard( Spacer(modifier = Modifier.weight(1f)) Column(horizontalAlignment = Alignment.End) { Row(verticalAlignment = Alignment.CenterVertically) { - // TODO: put this calculation in coroutines - if (downloadManager.containDownloadInfo(info.gid)) { + if (DownloadManager.containDownloadInfo(info.gid)) { Icon( painterResource(id = R.drawable.v_download_x16), contentDescription = null