diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 10:52:32 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:54 +0000 |
| commit | 56f060babfb5f4336e20f41b7966638f132e5e14 (patch) | |
| tree | 2a4abda6b7d856ef5b6e455ba7c3356fccadbcd3 | |
| parent | 61042d2f0d78da43cc6acbdd82c51e0db75b7443 (diff) | |
| download | mullvadvpn-56f060babfb5f4336e20f41b7966638f132e5e14.tar.xz mullvadvpn-56f060babfb5f4336e20f41b7966638f132e5e14.zip | |
Derive `IntoJava` for `PublicKey`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 23 | ||||
| -rw-r--r-- | mullvad-types/src/wireguard.rs | 6 |
2 files changed, 7 insertions, 22 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 14008e078a..be5ea9c1cd 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -104,28 +104,7 @@ where } } - -impl<'borrow, 'env> IntoJava<'borrow, 'env> for PublicKey -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/PublicKey"); - let key = self.key.as_bytes().into_java(env); - let date_created = self.created.to_string().into_java(env); - let parameters = [ - JValue::Object(key.as_obj()), - JValue::Object(date_created.as_obj()), - ]; - - env.auto_local( - env.new_object(&class, "([BLjava/lang/String;)V", ¶meters) - .expect("Failed to create PublicKey Java object"), - ) - } -} +wrap_jnix_into_java!(PublicKey); impl<'borrow, 'env> IntoJava<'borrow, 'env> for AppVersionInfo where diff --git a/mullvad-types/src/wireguard.rs b/mullvad-types/src/wireguard.rs index 8675a6e845..c0064b4589 100644 --- a/mullvad-types/src/wireguard.rs +++ b/mullvad-types/src/wireguard.rs @@ -1,4 +1,6 @@ use chrono::{offset::Utc, DateTime}; +#[cfg(target_os = "android")] +use jnix::IntoJava; use serde::{Deserialize, Serialize}; use std::fmt; use talpid_types::net::wireguard; @@ -24,8 +26,12 @@ impl WireguardData { /// Represents a published public key #[derive(Serialize, Deserialize, Clone, Debug)] +#[cfg_attr(target_os = "android", derive(IntoJava))] +#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))] pub struct PublicKey { + #[cfg_attr(target_os = "android", jnix(map = "|key| *key.as_bytes()"))] pub key: wireguard::PublicKey, + #[cfg_attr(target_os = "android", jnix(map = "|date_time| date_time.to_string()"))] pub created: DateTime<Utc>, } |
