Skip to content

Commit 67e09ad

Browse files
committed
android: make ping peer relay aware
Updates tailscale/tailscale#17743 Signed-off-by: Jordan Whited <[email protected]>
1 parent d62efaa commit 67e09ad

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

android/src/main/java/com/tailscale/ipn/ui/model/IpnState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class IpnState {
2626
val Addrs: List<String>? = null,
2727
val CurAddr: String? = null,
2828
val Relay: String? = null,
29+
val PeerRelay: String? = null,
2930
val Online: Boolean,
3031
val ExitNode: Boolean,
3132
val ExitNodeOption: Boolean,

android/src/main/java/com/tailscale/ipn/ui/util/ConnectionMode.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ sealed class ConnectionMode {
1717

1818
class Direct : ConnectionMode()
1919

20+
class PeerRelay : ConnectionMode()
21+
2022
@Composable
2123
fun titleString(): String {
2224
return when (this) {
2325
is NotConnected -> stringResource(id = R.string.not_connected)
2426
is Derp -> stringResource(R.string.relayed_connection, relayName)
2527
is Direct -> stringResource(R.string.direct_connection)
28+
is PeerRelay -> stringResource(R.string.peer_relayed_connection)
2629
}
2730
}
2831

@@ -31,6 +34,7 @@ sealed class ConnectionMode {
3134
is NotConnected -> "NotConnected"
3235
is Derp -> "Derp($relayName)"
3336
is Direct -> "Direct"
37+
is PeerRelay -> "PeerRelay"
3438
}
3539
}
3640

@@ -39,6 +43,7 @@ sealed class ConnectionMode {
3943
is NotConnected -> R.drawable.xmark_circle
4044
is Derp -> R.drawable.link_off
4145
is Direct -> R.drawable.link
46+
is PeerRelay -> R.drawable.link_off
4247
}
4348
}
4449

@@ -48,6 +53,7 @@ sealed class ConnectionMode {
4853
is NotConnected -> MaterialTheme.colorScheme.onPrimary
4954
is Derp -> MaterialTheme.colorScheme.error
5055
is Direct -> MaterialTheme.colorScheme.on
56+
is PeerRelay -> MaterialTheme.colorScheme.on
5157
}
5258
}
5359
}

android/src/main/java/com/tailscale/ipn/ui/viewModel/PingViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,12 @@ class PingViewModel : ViewModel() {
116116
result.Peer?.let { map ->
117117
map[peer.value?.Key]?.let { peerStatus ->
118118
val curAddr = peerStatus.CurAddr.orEmpty()
119+
val peerRelay = peerStatus.PeerRelay.orEmpty()
119120
val relay = peerStatus.Relay.orEmpty()
120121
if (curAddr.isNotEmpty()) {
121122
this.connectionMode.set(ConnectionMode.Direct())
123+
} else if (peerRelay.isNotEmpty()) {
124+
this.connectionMode.set(ConnectionMode.PeerRelay())
122125
} else if (relay.isNotEmpty()) {
123126
this.connectionMode.set(ConnectionMode.Derp(relayName = relay.uppercase()))
124127
}

android/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@
303303
<string name="ping">Ping</string>
304304
<string name="relayed_connection">Relayed connection (%1$s)</string>
305305
<string name="direct_connection">Direct connection</string>
306+
<string name="peer_relayed_connection">Peer relayed connection</string>
306307
<string name="pinging_node_name">Pinging %1$s</string>
307308
<string name="pingFailed">Ping failed</string>
308309
<string name="an_unknown_error_occurred_please_try_again">An unknown error occurred. Please try again.</string>

0 commit comments

Comments
 (0)