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