diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfo.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfo.kt index c176d9750..3fac4efd4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfo.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfo.kt @@ -30,10 +30,15 @@ data class BasicRelaySetupInfo( val relay: NormalizedRelayUrl, val relayStat: RelayStat, val paidRelay: Boolean = false, + val forcesTor: Boolean = false, ) -fun relaySetupInfoBuilder(normalized: NormalizedRelayUrl): BasicRelaySetupInfo = +fun relaySetupInfoBuilder( + normalized: NormalizedRelayUrl, + forcesTor: Boolean = false, +): BasicRelaySetupInfo = BasicRelaySetupInfo( - normalized, - RelayStats.get(normalized), + relay = normalized, + relayStat = RelayStats.get(normalized), + forcesTor = forcesTor, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoClickableRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoClickableRow.kt index 6e54462ba..596b9562a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoClickableRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoClickableRow.kt @@ -72,8 +72,8 @@ fun BasicRelaySetupInfoClickableRow( val iconUrlFromRelayInfoDoc by loadRelayInfo(item.relay, accountViewModel) RenderRelayIcon( - item.relay.displayUrl(), - iconUrlFromRelayInfoDoc?.icon, + iconUrlFromRelayInfoDoc.id ?: item.relay.displayUrl(), + iconUrlFromRelayInfoDoc.icon, loadProfilePicture, loadRobohash, item.relayStat.pingInMs, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoModel.kt index d53a68e26..5ae211596 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/BasicRelaySetupInfoModel.kt @@ -78,13 +78,18 @@ abstract class BasicRelaySetupInfoModel : ViewModel() { } fun clear() { - var hasModified = false _relays.update { val relayList = getRelayList() ?: emptyList() relayList - .map { relaySetupInfoBuilder(it) } - .distinctBy { it.relay } + .map { + relaySetupInfoBuilder( + normalized = it, + forcesTor = + account.torRelayState.flow.value + .useTor(it), + ) + }.distinctBy { it.relay } .sortedBy { it.relayStat.receivedBytes } .reversed() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt index 183751a32..773a8877e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt @@ -36,6 +36,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -72,10 +73,22 @@ fun RelayNameAndRemoveButton( if (item.paidRelay) { Icon( imageVector = Icons.Default.Paid, - null, + contentDescription = stringRes(id = R.string.paid_relay), modifier = Modifier - .padding(start = 5.dp, top = 1.dp) + .padding(start = 5.dp) + .size(14.dp), + tint = MaterialTheme.colorScheme.allGoodColor, + ) + } + + if (item.forcesTor) { + Icon( + painter = painterResource(R.drawable.ic_tor), + contentDescription = stringRes(id = R.string.tor_relay), + modifier = + Modifier + .padding(start = 5.dp) .size(14.dp), tint = MaterialTheme.colorScheme.allGoodColor, ) diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 5e407892b..bac3065b0 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -244,6 +244,9 @@ Insert between 1–3 relays that host this group. Nostr clients use this setting to know where to download messages from and send your messages to. + Paid relay + Forces Tor when connecting + posts received Remove sats