summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt8
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt2
-rw-r--r--mullvad-jni/src/classes.rs2
-rw-r--r--mullvad-jni/src/into_java.rs33
-rw-r--r--mullvad-types/src/relay_constraints.rs2
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),