summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 14:07:52 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 17:38:56 +0000
commit01206472d7af02de6308ec1bf6315e1b0e5c9f39 (patch)
tree95ba2f82d63b842876a2d3f498b013e913d0bc42
parenta924b2eb687f801f402aa1b6797fe5e2bf02d5ba (diff)
downloadmullvadvpn-01206472d7af02de6308ec1bf6315e1b0e5c9f39.tar.xz
mullvadvpn-01206472d7af02de6308ec1bf6315e1b0e5c9f39.zip
Implement `IntoJava` for `TunnelStateTransition`
-rw-r--r--mullvad-jni/src/into_java.rs23
-rw-r--r--mullvad-jni/src/lib.rs5
2 files changed, 28 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index 1c6733252b..743328dbff 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -12,6 +12,7 @@ use mullvad_types::{
CustomTunnelEndpoint,
};
use std::fmt::Debug;
+use talpid_types::tunnel::TunnelStateTransition;
pub trait IntoJava<'env> {
type JavaType;
@@ -294,3 +295,25 @@ impl<'env> IntoJava<'env> for Settings {
.expect("Failed to create Settings Java object")
}
}
+
+impl<'env> IntoJava<'env> for TunnelStateTransition {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let variant = match self {
+ TunnelStateTransition::Disconnected => "Disconnected",
+ TunnelStateTransition::Connecting(_) => "Connecting",
+ TunnelStateTransition::Connected(_) => "Connected",
+ TunnelStateTransition::Disconnecting(_) => "Disconnecting",
+ TunnelStateTransition::Blocked(_) => "Blocked",
+ };
+
+ let class = get_class(&format!(
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition${}",
+ variant
+ ));
+
+ env.new_object(&class, "()V", &[])
+ .expect("Failed to create TunnelStateTransition sub-class variant Java object")
+ }
+}
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index d5708c9a0a..45351e2563 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -36,6 +36,11 @@ const CLASSES_TO_LOAD: &[&str] = &[
"net/mullvad/mullvadvpn/model/RelaySettingsUpdate$CustomTunnelEndpoint",
"net/mullvad/mullvadvpn/model/RelaySettingsUpdate$RelayConstraintsUpdate",
"net/mullvad/mullvadvpn/model/Settings",
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition$Blocked",
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition$Connected",
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition$Connecting",
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition$Disconnected",
+ "net/mullvad/mullvadvpn/model/TunnelStateTransition$Disconnecting",
];
lazy_static! {