diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-27 00:08:09 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-01 15:01:27 +0000 |
| commit | c7e7b7a399aec8a04f262a76306d49d14ba13a57 (patch) | |
| tree | 35e0f9910deb266567fc39998b6af7110572f278 | |
| parent | 6261362f90a9b62c890acce8f4db4fed1a69db58 (diff) | |
| download | mullvadvpn-c7e7b7a399aec8a04f262a76306d49d14ba13a57.tar.xz mullvadvpn-c7e7b7a399aec8a04f262a76306d49d14ba13a57.zip | |
Include relay location in `TunnelState` data class
3 files changed, 20 insertions, 11 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt index 8922344de5..8782493b4c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -36,7 +36,7 @@ class ConnectionProxy(val parentActivity: MainActivity) { var onUiStateChange: ((TunnelState) -> Unit)? = null fun connect() { - uiState = TunnelState.Connecting() + uiState = TunnelState.Connecting(null) cancelActiveAction() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt index 006de053c8..2551cfe978 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt @@ -2,8 +2,8 @@ package net.mullvad.mullvadvpn.model sealed class TunnelState() { class Disconnected() : TunnelState() - class Connecting() : TunnelState() - class Connected() : TunnelState() + class Connecting(val location: GeoIpLocation?) : TunnelState() + class Connected(val location: GeoIpLocation) : TunnelState() class Disconnecting() : TunnelState() class Blocked() : TunnelState() } diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 204f023ec0..bb29c20bc9 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -465,12 +465,12 @@ impl<'env> IntoJava<'env> for TunnelState { type JavaType = JObject<'env>; fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType { - let variant = match self { - TunnelState::Disconnected => "Disconnected", - TunnelState::Connecting { .. } => "Connecting", - TunnelState::Connected { .. } => "Connected", - TunnelState::Disconnecting(_) => "Disconnecting", - TunnelState::Blocked(_) => "Blocked", + let (variant, location) = match self { + TunnelState::Disconnected => ("Disconnected", None), + TunnelState::Connecting { location, .. } => ("Connecting", Some(location)), + TunnelState::Connected { location, .. } => ("Connected", Some(location)), + TunnelState::Disconnecting(_) => ("Disconnecting", None), + TunnelState::Blocked(_) => ("Blocked", None), }; let class = get_class(&format!( @@ -478,7 +478,16 @@ impl<'env> IntoJava<'env> for TunnelState { variant )); - env.new_object(&class, "()V", &[]) - .expect("Failed to create TunnelState sub-class variant Java object") + match location { + Some(location) => { + let location = env.auto_local(location.into_java(env)); + let parameters = [JValue::Object(location.as_obj())]; + let signature = "(Lnet/mullvad/mullvadvpn/model/GeoIpLocation;)V"; + + env.new_object(&class, signature, ¶meters) + } + None => env.new_object(&class, "()V", &[]), + } + .expect("Failed to create TunnelState sub-class variant Java object") } } |
