summaryrefslogtreecommitdiffhomepage
path: root/mullvad-jni/src/into_java.rs
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-08-01 13:10:59 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-08-02 13:46:52 +0000
commit97a24d124c56ddd440a7eb4e0ddefe868bcdf0d4 (patch)
tree9e40aaed63b458cf7bb42aad81c6ac7bee8dc863 /mullvad-jni/src/into_java.rs
parenta6d05bee9f2a49e328e434180295bd9653e61cfc (diff)
downloadmullvadvpn-97a24d124c56ddd440a7eb4e0ddefe868bcdf0d4.tar.xz
mullvadvpn-97a24d124c56ddd440a7eb4e0ddefe868bcdf0d4.zip
Implement `IntoJava` for `TransportProtocol`
Diffstat (limited to 'mullvad-jni/src/into_java.rs')
-rw-r--r--mullvad-jni/src/into_java.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index fe668f1580..e51e9e036e 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -20,7 +20,7 @@ use mullvad_types::{
use std::{fmt::Debug, net::IpAddr};
use talpid_core::tunnel::tun_provider::TunConfig;
use talpid_types::{
- net::wireguard::PublicKey,
+ net::{wireguard::PublicKey, TransportProtocol},
tunnel::{ActionAfterDisconnect, BlockReason},
};
@@ -252,6 +252,21 @@ impl<'env> IntoJava<'env> for TunConfig {
}
}
+impl<'env> IntoJava<'env> for TransportProtocol {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class_name = match self {
+ TransportProtocol::Tcp => "net/mullvad/mullvadvpn/model/TransportProtocol$Tcp",
+ TransportProtocol::Udp => "net/mullvad/mullvadvpn/model/TransportProtocol$Udp",
+ };
+ let class = get_class(class_name);
+
+ env.new_object(&class, "()V", &[])
+ .expect("Failed to create TransportProtocol sub-class variant Java object")
+ }
+}
+
impl<'env> IntoJava<'env> for GeoIpLocation {
type JavaType = JObject<'env>;