diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt | 8 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt | 2 | ||||
| -rw-r--r-- | mullvad-jni/src/classes.rs | 2 | ||||
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 33 | ||||
| -rw-r--r-- | mullvad-types/src/relay_constraints.rs | 2 |
5 files changed, 10 insertions, 37 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt index 32b3c10ba7..7d016821a4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt @@ -7,6 +7,7 @@ import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.MainActivity import net.mullvad.mullvadvpn.MullvadDaemon import net.mullvad.mullvadvpn.model.Constraint +import net.mullvad.mullvadvpn.model.RelayConstraints import net.mullvad.mullvadvpn.model.RelaySettings import net.mullvad.mullvadvpn.relaylist.RelayItem import net.mullvad.mullvadvpn.relaylist.RelayList @@ -78,7 +79,8 @@ class RelayListListener(val parentActivity: MainActivity) { synchronized(this) { val relayList = this.relayList - relaySettings = newRelaySettings ?: RelaySettings.RelayConstraints(Constraint.Any()) + relaySettings = newRelaySettings + ?: RelaySettings.Normal(RelayConstraints(Constraint.Any())) if (relayList != null) { relayListChanged(relayList) @@ -100,8 +102,8 @@ class RelayListListener(val parentActivity: MainActivity) { when (relaySettings) { is RelaySettings.CustomTunnelEndpoint -> return null - is RelaySettings.RelayConstraints -> { - val location = relaySettings.location + is RelaySettings.Normal -> { + val location = relaySettings.relayConstraints.location return relayList?.findItemForLocation(location, true) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt index 6fded8f9c5..cb53911883 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt @@ -2,5 +2,5 @@ package net.mullvad.mullvadvpn.model sealed class RelaySettings { class CustomTunnelEndpoint() : RelaySettings() - class RelayConstraints(var location: Constraint<LocationConstraint>) : RelaySettings() + class Normal(var relayConstraints: RelayConstraints) : RelaySettings() } diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs index 30740dfa26..ae8f8c4de1 100644 --- a/mullvad-jni/src/classes.rs +++ b/mullvad-jni/src/classes.rs @@ -26,7 +26,7 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/mullvadvpn/model/RelayListCity", "net/mullvad/mullvadvpn/model/RelayListCountry", "net/mullvad/mullvadvpn/model/RelaySettings$CustomTunnelEndpoint", - "net/mullvad/mullvadvpn/model/RelaySettings$RelayConstraints", + "net/mullvad/mullvadvpn/model/RelaySettings$Normal", "net/mullvad/mullvadvpn/model/RelaySettingsUpdate$CustomTunnelEndpoint", "net/mullvad/mullvadvpn/model/RelaySettingsUpdate$RelayConstraintsUpdate", "net/mullvad/mullvadvpn/model/RelayTunnels", diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index e7f9605d18..5b7321ce68 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -11,7 +11,6 @@ use mullvad_types::{ states::TunnelState, version::AppVersionInfo, wireguard::{KeygenEvent, PublicKey}, - CustomTunnelEndpoint, }; use std::fmt::Debug; use talpid_core::tunnel::tun_provider::TunConfig; @@ -75,37 +74,7 @@ wrap_jnix_into_java!(Constraint<T> T: Clone + Eq + Debug + jnix::IntoJava<'borrow, 'env, JavaType = AutoLocal<'env, 'borrow>> ); - -impl<'borrow, 'env> IntoJava<'borrow, 'env> for RelaySettings -where - 'env: 'borrow, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - match self { - RelaySettings::CustomTunnelEndpoint(endpoint) => endpoint.into_java(env), - RelaySettings::Normal(relay_constraints) => relay_constraints.into_java(env), - } - } -} - -impl<'borrow, 'env> IntoJava<'borrow, 'env> for CustomTunnelEndpoint -where - 'env: 'borrow, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - let class = - env.get_class("net/mullvad/mullvadvpn/model/RelaySettings$CustomTunnelEndpoint"); - - env.auto_local( - env.new_object(&class, "()V", &[]) - .expect("Failed to create CustomTunnelEndpoint Java object"), - ) - } -} +wrap_jnix_into_java!(RelaySettings); impl<'borrow, 'env> IntoJava<'borrow, 'env> for KeygenEvent where diff --git a/mullvad-types/src/relay_constraints.rs b/mullvad-types/src/relay_constraints.rs index 941b5f8a39..63d8070a0e 100644 --- a/mullvad-types/src/relay_constraints.rs +++ b/mullvad-types/src/relay_constraints.rs @@ -65,6 +65,8 @@ impl<T: fmt::Debug + Clone + Eq + PartialEq> Match<T> for Constraint<T> { #[derive(Debug, Clone, Eq, PartialEq, 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 RelaySettings { CustomTunnelEndpoint(CustomTunnelEndpoint), Normal(RelayConstraints), |
