Marks if it is using Tor in each relay of the list.
This commit is contained in:
+8
-3
@@ -30,10 +30,15 @@ data class BasicRelaySetupInfo(
|
|||||||
val relay: NormalizedRelayUrl,
|
val relay: NormalizedRelayUrl,
|
||||||
val relayStat: RelayStat,
|
val relayStat: RelayStat,
|
||||||
val paidRelay: Boolean = false,
|
val paidRelay: Boolean = false,
|
||||||
|
val forcesTor: Boolean = false,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun relaySetupInfoBuilder(normalized: NormalizedRelayUrl): BasicRelaySetupInfo =
|
fun relaySetupInfoBuilder(
|
||||||
|
normalized: NormalizedRelayUrl,
|
||||||
|
forcesTor: Boolean = false,
|
||||||
|
): BasicRelaySetupInfo =
|
||||||
BasicRelaySetupInfo(
|
BasicRelaySetupInfo(
|
||||||
normalized,
|
relay = normalized,
|
||||||
RelayStats.get(normalized),
|
relayStat = RelayStats.get(normalized),
|
||||||
|
forcesTor = forcesTor,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -72,8 +72,8 @@ fun BasicRelaySetupInfoClickableRow(
|
|||||||
val iconUrlFromRelayInfoDoc by loadRelayInfo(item.relay, accountViewModel)
|
val iconUrlFromRelayInfoDoc by loadRelayInfo(item.relay, accountViewModel)
|
||||||
|
|
||||||
RenderRelayIcon(
|
RenderRelayIcon(
|
||||||
item.relay.displayUrl(),
|
iconUrlFromRelayInfoDoc.id ?: item.relay.displayUrl(),
|
||||||
iconUrlFromRelayInfoDoc?.icon,
|
iconUrlFromRelayInfoDoc.icon,
|
||||||
loadProfilePicture,
|
loadProfilePicture,
|
||||||
loadRobohash,
|
loadRobohash,
|
||||||
item.relayStat.pingInMs,
|
item.relayStat.pingInMs,
|
||||||
|
|||||||
+8
-3
@@ -78,13 +78,18 @@ abstract class BasicRelaySetupInfoModel : ViewModel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun clear() {
|
fun clear() {
|
||||||
var hasModified = false
|
|
||||||
_relays.update {
|
_relays.update {
|
||||||
val relayList = getRelayList() ?: emptyList()
|
val relayList = getRelayList() ?: emptyList()
|
||||||
|
|
||||||
relayList
|
relayList
|
||||||
.map { relaySetupInfoBuilder(it) }
|
.map {
|
||||||
.distinctBy { it.relay }
|
relaySetupInfoBuilder(
|
||||||
|
normalized = it,
|
||||||
|
forcesTor =
|
||||||
|
account.torRelayState.flow.value
|
||||||
|
.useTor(it),
|
||||||
|
)
|
||||||
|
}.distinctBy { it.relay }
|
||||||
.sortedBy { it.relayStat.receivedBytes }
|
.sortedBy { it.relayStat.receivedBytes }
|
||||||
.reversed()
|
.reversed()
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-2
@@ -36,6 +36,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalClipboardManager
|
import androidx.compose.ui.platform.LocalClipboardManager
|
||||||
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.AnnotatedString
|
import androidx.compose.ui.text.AnnotatedString
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -72,10 +73,22 @@ fun RelayNameAndRemoveButton(
|
|||||||
if (item.paidRelay) {
|
if (item.paidRelay) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Paid,
|
imageVector = Icons.Default.Paid,
|
||||||
null,
|
contentDescription = stringRes(id = R.string.paid_relay),
|
||||||
modifier =
|
modifier =
|
||||||
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),
|
.size(14.dp),
|
||||||
tint = MaterialTheme.colorScheme.allGoodColor,
|
tint = MaterialTheme.colorScheme.allGoodColor,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -244,6 +244,9 @@
|
|||||||
<string name="public_chat_relays_explainer">Insert between 1–3 relays that host this group.
|
<string name="public_chat_relays_explainer">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.</string>
|
Nostr clients use this setting to know where to download messages from and send your messages to.</string>
|
||||||
|
|
||||||
|
<string name="paid_relay">Paid relay</string>
|
||||||
|
<string name="tor_relay">Forces Tor when connecting</string>
|
||||||
|
|
||||||
<string name="posts_received">posts received</string>
|
<string name="posts_received">posts received</string>
|
||||||
<string name="remove">Remove</string>
|
<string name="remove">Remove</string>
|
||||||
<string name="sats" translatable="false">sats</string>
|
<string name="sats" translatable="false">sats</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user