diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-18 20:52:25 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-22 21:32:38 +0000 |
| commit | c6e26842beebe57fc2ab68b96066f9b77e3bbf95 (patch) | |
| tree | 6de20c2e26a8643cf181553652c5e0a120e0a9e6 | |
| parent | b989096dc22ae64d0cf2d96db7d73c2c4438acee (diff) | |
| download | mullvadvpn-c6e26842beebe57fc2ab68b96066f9b77e3bbf95.tar.xz mullvadvpn-c6e26842beebe57fc2ab68b96066f9b77e3bbf95.zip | |
Implement `IntoJava` for `KeygenEvent`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 34 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 3 |
2 files changed, 37 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index bb29c20bc9..fc899bf12e 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -13,6 +13,7 @@ use mullvad_types::{ relay_list::{Relay, RelayList, RelayListCity, RelayListCountry}, settings::Settings, states::TunnelState, + wireguard::KeygenEvent, CustomTunnelEndpoint, }; use std::{fmt::Debug, net::IpAddr}; @@ -423,6 +424,39 @@ impl<'env> IntoJava<'env> for CustomTunnelEndpoint { } } +impl<'env> IntoJava<'env> for KeygenEvent { + type JavaType = JObject<'env>; + + fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType { + match self { + KeygenEvent::NewKey(public_key) => { + let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$NewKey"); + let java_public_key = env.auto_local(public_key.into_java(env)); + let parameters = [JValue::Object(java_public_key.as_obj())]; + + env.new_object( + &class, + "(Lnet/mullvad/mullvadvpn/model/PublicKey;)V", + ¶meters, + ) + .expect("Failed to create KeygenEvent.NewKey Java object") + } + KeygenEvent::TooManyKeys => { + let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$TooManyKeys"); + + env.new_object(&class, "()V", &[]) + .expect("Failed to create KeygenEvent.TooManyKeys Java object") + } + KeygenEvent::GenerationFailure => { + let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$GenerationFailure"); + + env.new_object(&class, "()V", &[]) + .expect("Failed to create KeygenEvent.GenerationFailure Java object") + } + } + } +} + impl<'env> IntoJava<'env> for RelayConstraints { type JavaType = JObject<'env>; diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 2ec4cac08a..dfc55010ac 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -39,6 +39,9 @@ const CLASSES_TO_LOAD: &[&str] = &[ "net/mullvad/mullvadvpn/model/Constraint$Only", "net/mullvad/mullvadvpn/model/GeoIpLocation", "net/mullvad/mullvadvpn/model/InetNetwork", + "net/mullvad/mullvadvpn/model/KeygenEvent$NewKey", + "net/mullvad/mullvadvpn/model/KeygenEvent$TooManyKeys", + "net/mullvad/mullvadvpn/model/KeygenEvent$GenerationFailure", "net/mullvad/mullvadvpn/model/LocationConstraint$City", "net/mullvad/mullvadvpn/model/LocationConstraint$Country", "net/mullvad/mullvadvpn/model/LocationConstraint$Hostname", |
