diff options
| author | Albin <albin@mullvad.net> | 2022-06-22 11:02:29 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-07-07 14:36:21 +0200 |
| commit | 94d892604fdce1f4832c7a5aef9e6ec2f6d15a7e (patch) | |
| tree | 54612cbe3ba56a4131a066a0182de369075ed759 | |
| parent | de1ff27bb08ee88c384f86d9692fc700435138e6 (diff) | |
| download | mullvadvpn-94d892604fdce1f4832c7a5aef9e6ec2f6d15a7e.tar.xz mullvadvpn-94d892604fdce1f4832c7a5aef9e6ec2f6d15a7e.zip | |
Adapt Android to new relay structure
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt | 6 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayEndpointData.kt | 17 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt | 8 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardRelayEndpointData.kt (renamed from android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt) | 2 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt | 2 | ||||
| -rw-r--r-- | mullvad-jni/src/classes.rs | 6 | ||||
| -rw-r--r-- | mullvad-types/src/relay_list.rs | 4 |
7 files changed, 29 insertions, 16 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt index 23f9d87f77..dbb74b129a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt @@ -7,8 +7,8 @@ import kotlinx.parcelize.Parcelize data class Relay( val hostname: String, val active: Boolean, - val tunnels: RelayTunnels + val endpointData: RelayEndpointData ) : Parcelable { - val hasWireguardTunnels - get() = !tunnels.wireguard.isEmpty() + val isWireguardRelay + get() = endpointData is RelayEndpointData.Wireguard } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayEndpointData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayEndpointData.kt new file mode 100644 index 0000000000..ecc2d4d002 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayEndpointData.kt @@ -0,0 +1,17 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +sealed class RelayEndpointData : Parcelable { + @Parcelize + object Openvpn : RelayEndpointData() + + @Parcelize + object Bridge : RelayEndpointData() + + @Parcelize + data class Wireguard( + val wireguardRelayEndpointData: WireguardRelayEndpointData + ) : RelayEndpointData() +} diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt deleted file mode 100644 index aee9b56082..0000000000 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt +++ /dev/null @@ -1,8 +0,0 @@ -package net.mullvad.mullvadvpn.model - -import android.os.Parcelable -import kotlinx.parcelize.Parcelize - -@Suppress("PARCELABLE_PRIMARY_CONSTRUCTOR_IS_EMPTY") -@Parcelize -class WireguardEndpointData() : Parcelable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardRelayEndpointData.kt index 8856f6b4bd..b3ef17f98a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardRelayEndpointData.kt @@ -4,4 +4,4 @@ import android.os.Parcelable import kotlinx.parcelize.Parcelize @Parcelize -data class RelayTunnels(val wireguard: ArrayList<WireguardEndpointData>) : Parcelable +object WireguardRelayEndpointData : Parcelable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt index aed15f9508..915e6ca181 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt @@ -16,7 +16,7 @@ class RelayList { val relays = mutableListOf<Relay>() val relayCity = RelayCity(relayCountry, city.name, city.code, false, relays) - val validCityRelays = city.relays.filter { relay -> relay.hasWireguardTunnels } + val validCityRelays = city.relays.filter { relay -> relay.isWireguardRelay } for (relay in validCityRelays) { relays.add(Relay(relayCity, relay.hostname, relay.active)) diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs index 026d7462c5..9a124f2a12 100644 --- a/mullvad-jni/src/classes.rs +++ b/mullvad-jni/src/classes.rs @@ -28,6 +28,9 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/mullvadvpn/model/PublicKey", "net/mullvad/mullvadvpn/model/Relay", "net/mullvad/mullvadvpn/model/RelayConstraints", + "net/mullvad/mullvadvpn/model/RelayEndpointData$Bridge", + "net/mullvad/mullvadvpn/model/RelayEndpointData$Openvpn", + "net/mullvad/mullvadvpn/model/RelayEndpointData$Wireguard", "net/mullvad/mullvadvpn/model/RelayList", "net/mullvad/mullvadvpn/model/RelayListCity", "net/mullvad/mullvadvpn/model/RelayListCountry", @@ -36,7 +39,6 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/mullvadvpn/model/RelaySettingsUpdate$CustomTunnelEndpoint", "net/mullvad/mullvadvpn/model/RelaySettingsUpdate$Normal", "net/mullvad/mullvadvpn/model/RelayConstraintsUpdate", - "net/mullvad/mullvadvpn/model/RelayTunnels", "net/mullvad/mullvadvpn/model/Settings", "net/mullvad/mullvadvpn/model/TunnelState$Error", "net/mullvad/mullvadvpn/model/TunnelState$Connected", @@ -46,7 +48,7 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/mullvadvpn/model/VoucherSubmission", "net/mullvad/mullvadvpn/model/VoucherSubmissionResult", "net/mullvad/mullvadvpn/model/LoginResult", - "net/mullvad/mullvadvpn/model/WireguardEndpointData", + "net/mullvad/mullvadvpn/model/WireguardRelayEndpointData", "net/mullvad/mullvadvpn/service/MullvadDaemon", "net/mullvad/mullvadvpn/service/MullvadVpnService", "net/mullvad/talpid/net/Endpoint", diff --git a/mullvad-types/src/relay_list.rs b/mullvad-types/src/relay_list.rs index 5507fb62fb..643bcbd798 100644 --- a/mullvad-types/src/relay_list.rs +++ b/mullvad-types/src/relay_list.rs @@ -22,6 +22,7 @@ pub struct RelayList { pub openvpn: OpenVpnEndpointData, #[cfg_attr(target_os = "android", jnix(skip))] pub bridge: BridgeEndpointData, + #[cfg_attr(target_os = "android", jnix(skip))] pub wireguard: WireguardEndpointData, } @@ -75,7 +76,6 @@ pub struct Relay { pub provider: String, #[cfg_attr(target_os = "android", jnix(skip))] pub weight: u64, - #[cfg_attr(target_os = "android", jnix(skip))] pub endpoint_data: RelayEndpointData, #[cfg_attr(target_os = "android", jnix(skip))] pub location: Option<Location>, @@ -84,6 +84,8 @@ pub struct Relay { /// Specifies the type of a relay or relay-specific endpoint data. #[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] +#[cfg_attr(target_os = "android", derive(IntoJava))] +#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))] pub enum RelayEndpointData { Openvpn, Bridge, |
