Performance Improvements to PreviewCards

This commit is contained in:
Vitor Pamplona
2023-09-25 11:04:53 -04:00
parent 045699ecd9
commit 35f0b1291f
2 changed files with 13 additions and 11 deletions
@@ -3,8 +3,8 @@ package com.vitorpamplona.amethyst.ui.components
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@@ -15,13 +15,15 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage import coil.compose.AsyncImage
import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.ConnectivityType
import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus
import com.vitorpamplona.amethyst.service.previews.UrlInfoItem import com.vitorpamplona.amethyst.service.previews.UrlInfoItem
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer
import com.vitorpamplona.amethyst.ui.theme.MaxWidthWithHorzPadding
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
import com.vitorpamplona.amethyst.ui.theme.innerPostModifier import com.vitorpamplona.amethyst.ui.theme.innerPostModifier
@Composable @Composable
@@ -57,12 +59,12 @@ fun UrlPreviewCard(
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) )
Spacer(modifier = StdVertSpacer)
Text( Text(
text = previewInfo.verifiedUrl?.host ?: previewInfo.url, text = previewInfo.verifiedUrl?.host ?: previewInfo.url,
style = MaterialTheme.typography.caption, style = MaterialTheme.typography.caption,
modifier = Modifier modifier = MaxWidthWithHorzPadding,
.fillMaxWidth()
.padding(start = 10.dp, end = 10.dp, top = 5.dp),
color = Color.Gray, color = Color.Gray,
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
@@ -71,9 +73,7 @@ fun UrlPreviewCard(
Text( Text(
text = previewInfo.title, text = previewInfo.title,
style = MaterialTheme.typography.body2, style = MaterialTheme.typography.body2,
modifier = Modifier modifier = MaxWidthWithHorzPadding,
.fillMaxWidth()
.padding(start = 10.dp, end = 10.dp),
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
@@ -81,13 +81,13 @@ fun UrlPreviewCard(
Text( Text(
text = previewInfo.description, text = previewInfo.description,
style = MaterialTheme.typography.caption, style = MaterialTheme.typography.caption,
modifier = Modifier modifier = MaxWidthWithHorzPadding,
.fillMaxWidth()
.padding(start = 10.dp, end = 10.dp, bottom = 10.dp),
color = Color.Gray, color = Color.Gray,
maxLines = 3, maxLines = 3,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
Spacer(modifier = DoubleVertSpacer)
} }
} }
} }
@@ -79,6 +79,8 @@ val HalfVertPadding = Modifier.padding(vertical = 5.dp)
val HorzPadding = Modifier.padding(horizontal = 10.dp) val HorzPadding = Modifier.padding(horizontal = 10.dp)
val VertPadding = Modifier.padding(vertical = 10.dp) val VertPadding = Modifier.padding(vertical = 10.dp)
val MaxWidthWithHorzPadding = Modifier.fillMaxWidth().padding(horizontal = 10.dp)
val Size6Modifier = Modifier.size(6.dp) val Size6Modifier = Modifier.size(6.dp)
val Size10Modifier = Modifier.size(10.dp) val Size10Modifier = Modifier.size(10.dp)
val Size15Modifier = Modifier.size(15.dp) val Size15Modifier = Modifier.size(15.dp)