Fixes Relay Icon rendering.

pull/430/head
Vitor Pamplona 2023-05-27 16:04:20 -04:00
rodzic 69be28ec98
commit 545643d165
2 zmienionych plików z 10 dodań i 45 usunięć

Wyświetl plik

@ -539,25 +539,25 @@ private fun RelayBadges(baseNote: Note) {
@Composable
fun RenderRelay(dirtyUrl: String) {
val uri = LocalUriHandler.current
val website = remember {
val cleanUrl = dirtyUrl.removePrefix("wss://").removePrefix("ws://")
val website = remember(dirtyUrl) {
val cleanUrl = dirtyUrl.removePrefix("wss://").removePrefix("ws://").removeSuffix("/")
"https://$cleanUrl"
}
val iconUrl = remember {
val cleanUrl = dirtyUrl.removePrefix("wss://").removePrefix("ws://")
val iconUrl = remember(dirtyUrl) {
val cleanUrl = dirtyUrl.removePrefix("wss://").removePrefix("ws://").removeSuffix("/")
"https://$cleanUrl/favicon.ico"
}
val clickableModifier = remember {
val clickableModifier = remember(dirtyUrl) {
Modifier
.size(15.dp)
.padding(1.dp)
.size(15.dp)
.clickable(onClick = { uri.openUri(website) })
}
val iconModifier = remember {
val iconModifier = remember(dirtyUrl) {
Modifier
.size(15.dp)
.size(13.dp)
.clip(shape = CircleShape)
}
@ -566,7 +566,7 @@ fun RenderRelay(dirtyUrl: String) {
) {
RobohashFallbackAsyncImage(
robot = iconUrl,
robotSize = 15.dp,
robotSize = 13.dp,
model = iconUrl,
contentDescription = stringResource(id = R.string.relay_icon),
colorFilter = RelayIconFilter,

Wyświetl plik

@ -62,7 +62,6 @@ import androidx.compose.ui.graphics.luminance
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
@ -113,7 +112,6 @@ import com.vitorpamplona.amethyst.ui.components.ObserveDisplayNip05Status
import com.vitorpamplona.amethyst.ui.components.ResizeImage
import com.vitorpamplona.amethyst.ui.components.RobohashAsyncImage
import com.vitorpamplona.amethyst.ui.components.RobohashAsyncImageProxy
import com.vitorpamplona.amethyst.ui.components.RobohashFallbackAsyncImage
import com.vitorpamplona.amethyst.ui.components.SensitivityWarning
import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer
import com.vitorpamplona.amethyst.ui.components.VideoView
@ -129,7 +127,6 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.ChannelHeader
import com.vitorpamplona.amethyst.ui.screen.loggedIn.ReportNoteDialog
import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange
import com.vitorpamplona.amethyst.ui.theme.Following
import com.vitorpamplona.amethyst.ui.theme.RelayIconFilter
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@ -1911,43 +1908,11 @@ private fun VerticalRelayPanelWithFlow(
// FlowRow Seems to be a lot faster than LazyVerticalGrid
FlowRow() {
relays.forEach { url ->
RelayIconCompose(url)
RenderRelay(url)
}
}
}
@Composable
@Stable
private fun RelayIconCompose(url: String) {
val uri = LocalUriHandler.current
val model = remember(url) { "https://$url/favicon.ico" }
val boxModifier = remember {
Modifier
.padding(1.dp)
.size(15.dp)
}
val iconModifier = remember(url) {
Modifier
.width(13.dp)
.height(13.dp)
.clip(shape = CircleShape)
.clickable(onClick = { uri.openUri("https://$url") })
}
Box(boxModifier) {
RobohashFallbackAsyncImage(
robot = model,
robotSize = 15.dp,
model = model,
contentDescription = stringResource(R.string.relay_icon),
colorFilter = RelayIconFilter,
modifier = iconModifier.background(MaterialTheme.colors.background)
)
}
}
@Composable
private fun ShowMoreRelaysButton(onClick: () -> Unit) {
val boxModifier = remember {