chore: add FilterQuality to images

This commit is contained in:
Diego Beraldin 2023-09-23 06:53:13 +02:00
parent b92a658382
commit c37e282d35
12 changed files with 76 additions and 17 deletions

View File

@ -38,6 +38,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalDensity
@ -82,7 +83,10 @@ class InboxChatScreen(
val iconSize = 23.dp
val avatar = uiState.otherUserAvatar.orEmpty()
if (avatar.isNotEmpty()) {
val painterResource = asyncPainterResource(data = avatar)
val painterResource = asyncPainterResource(
data = avatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier.padding(Spacing.xxxs).size(iconSize)
.clip(RoundedCornerShape(iconSize / 2)),

View File

@ -25,6 +25,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInParent
@ -52,7 +53,10 @@ fun CommunityHeader(
// banner
val banner = community.banner.orEmpty()
if (banner.isNotEmpty()) {
val painterResource = asyncPainterResource(banner)
val painterResource = asyncPainterResource(
data = banner,
filterQuality = FilterQuality.Medium,
)
KamelImage(
modifier = Modifier.fillMaxSize(),
resource = painterResource,
@ -114,7 +118,10 @@ fun CommunityHeader(
val communityIcon = community.icon.orEmpty()
val avatarSize = 60.dp
if (communityIcon.isNotEmpty()) {
val painterResource = asyncPainterResource(data = communityIcon)
val painterResource = asyncPainterResource(
data = communityIcon,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier.padding(Spacing.xxxs).size(avatarSize)
.clip(RoundedCornerShape(avatarSize / 2)),

View File

@ -14,6 +14,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
@ -40,7 +41,10 @@ fun CommunityItem(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (communityIcon.isNotEmpty()) {
val painterResource = asyncPainterResource(data = communityIcon)
val painterResource = asyncPainterResource(
data = communityIcon,
filterQuality = FilterQuality.Medium,
)
KamelImage(
modifier = Modifier.padding(Spacing.xxxs).size(iconSize)
.clip(RoundedCornerShape(iconSize / 2)),

View File

@ -23,6 +23,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.racconforlemmy.core.utils.DateTime
@ -79,7 +80,10 @@ fun InboxReplySubtitle(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (creatorAvatar.isNotEmpty()) {
val painterResource = asyncPainterResource(data = creatorAvatar)
val painterResource = asyncPainterResource(
data = creatorAvatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)
@ -125,7 +129,10 @@ fun InboxReplySubtitle(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (communityIcon.isNotEmpty()) {
val painterResource = asyncPainterResource(data = communityIcon)
val painterResource =asyncPainterResource(
data = communityIcon,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)

View File

@ -8,6 +8,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.blur
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@ -25,7 +26,10 @@ fun PostCardImage(
onImageClick: ((String) -> Unit)? = null,
) {
if (imageUrl.isNotEmpty()) {
val painterResource = asyncPainterResource(data = imageUrl)
val painterResource = asyncPainterResource(
data = imageUrl,
filterQuality = FilterQuality.Medium,
)
KamelImage(
modifier = modifier.fillMaxWidth()
.heightIn(min = 200.dp)

View File

@ -13,6 +13,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.racconforlemmy.core.utils.onClick
@ -58,7 +59,10 @@ fun PostCardSubtitle(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (communityIcon.isNotEmpty()) {
val painterResource = asyncPainterResource(data = communityIcon)
val painterResource = asyncPainterResource(
data = communityIcon,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)
@ -105,7 +109,10 @@ fun PostCardSubtitle(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (creatorAvatar.isNotEmpty()) {
val painterResource = asyncPainterResource(data = creatorAvatar)
val painterResource = asyncPainterResource(
data = creatorAvatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)

View File

@ -26,6 +26,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
@ -53,7 +54,10 @@ fun UserHeader(
// banner
val banner = user.banner.orEmpty()
if (banner.isNotEmpty()) {
val painterResource = asyncPainterResource(banner)
val painterResource = asyncPainterResource(
data = banner,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier.fillMaxSize(),
resource = painterResource,
@ -86,8 +90,10 @@ fun UserHeader(
val userAvatar = user.avatar.orEmpty()
val avatarSize = 60.dp
if (userAvatar.isNotEmpty()) {
val painterResource =
asyncPainterResource(data = userAvatar)
val painterResource = asyncPainterResource(
data = userAvatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)

View File

@ -13,6 +13,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
@ -38,7 +39,10 @@ fun UserItem(
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
if (avatar.isNotEmpty()) {
val painterResource = asyncPainterResource(data = avatar)
val painterResource = asyncPainterResource(
data = avatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier.padding(Spacing.xxxs).size(iconSize)
.clip(RoundedCornerShape(iconSize / 2)),

View File

@ -17,6 +17,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.input.pointer.pointerInput
@ -47,7 +48,10 @@ fun ZoomableImage(
}
}
) {
val painterResource = asyncPainterResource(url)
val painterResource = asyncPainterResource(
data = url,
filterQuality = FilterQuality.Medium,
)
KamelImage(
modifier = Modifier
.align(Alignment.Center)

View File

@ -6,6 +6,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextAlign
import com.github.diegoberaldin.raccoonforlemmy.core.markdown.utils.findChildOfTypeRecursive
@ -23,7 +24,10 @@ internal fun MarkdownImage(content: String, node: ASTNode) {
node.findChildOfTypeRecursive(MarkdownElementTypes.LINK_DESTINATION)?.getTextInNode(content)
?.toString() ?: return
val painterResource = asyncPainterResource(data = link)
val painterResource = asyncPainterResource(
data = link,
filterQuality = FilterQuality.Medium,
)
KamelImage(
resource = painterResource,
contentDescription = null,

View File

@ -10,6 +10,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.AnnotatedString
@ -80,7 +81,10 @@ internal fun MarkdownText(
PlaceholderVerticalAlign.Bottom,
), // TODO, identify flexible scaling!
) { link ->
val painterResource = asyncPainterResource(data = link)
val painterResource = asyncPainterResource(
data = link,
filterQuality = FilterQuality.Low,
)
KamelImage(
resource = painterResource,
contentDescription = null,

View File

@ -17,6 +17,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@ -53,7 +54,10 @@ internal fun ChatCard(
val iconSize = 46.dp
if (creatorAvatar.isNotEmpty()) {
val painterResource = asyncPainterResource(data = creatorAvatar)
val painterResource = asyncPainterResource(
data = creatorAvatar,
filterQuality = FilterQuality.Low,
)
KamelImage(
modifier = Modifier
.padding(Spacing.xxxs)