summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-06-22 11:02:29 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-07-07 14:36:21 +0200
commit94d892604fdce1f4832c7a5aef9e6ec2f6d15a7e (patch)
tree54612cbe3ba56a4131a066a0182de369075ed759
parentde1ff27bb08ee88c384f86d9692fc700435138e6 (diff)
downloadmullvadvpn-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.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayEndpointData.kt17
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt8
-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.kt2
-rw-r--r--mullvad-jni/src/classes.rs6
-rw-r--r--mullvad-types/src/relay_list.rs4
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,