diff options
Diffstat (limited to 'android/src')
5 files changed, 13 insertions, 2 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/Relay.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/Relay.kt index 8620a64963..db8afade98 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/Relay.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/Relay.kt @@ -2,7 +2,11 @@ package net.mullvad.mullvadvpn.relaylist import net.mullvad.mullvadvpn.model.LocationConstraint -data class Relay(val city: RelayCity, override val name: String) : RelayItem { +data class Relay( + val city: RelayCity, + override val name: String, + override val active: Boolean +) : RelayItem { override val code = name override val type = RelayItemType.Relay override val location = LocationConstraint.Hostname(city.country.code, city.code, name) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt index 9d4ba65ccf..70b2ca2d0a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt @@ -12,6 +12,9 @@ class RelayCity( override val type = RelayItemType.City override val location = LocationConstraint.City(country.code, code) + override val active + get() = relays.any { relay -> relay.active } + override val hasChildren get() = relays.size > 1 diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt index fb2aacab33..f5d5a867c3 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt @@ -11,6 +11,9 @@ class RelayCountry( override val type = RelayItemType.Country override val location = LocationConstraint.Country(code) + override val active + get() = cities.any { city -> city.active } + override val hasChildren get() = getRelayCount() > 1 diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItem.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItem.kt index d55378fbd4..e5f28acee6 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItem.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItem.kt @@ -7,6 +7,7 @@ interface RelayItem { val name: String val code: String val location: LocationConstraint + val active: Boolean val hasChildren: Boolean val visibleChildCount: Int diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt index 26cd7ffa58..7d09e421db 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt @@ -19,7 +19,7 @@ class RelayList { val validCityRelays = city.relays.filter { relay -> relay.hasWireguardTunnels } for (relay in validCityRelays) { - relays.add(Relay(relayCity, relay.hostname)) + relays.add(Relay(relayCity, relay.hostname, relay.active)) } if (relays.isNotEmpty()) { |
