summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-22 10:52:32 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-22 15:16:54 +0000
commit56f060babfb5f4336e20f41b7966638f132e5e14 (patch)
tree2a4abda6b7d856ef5b6e455ba7c3356fccadbcd3
parent61042d2f0d78da43cc6acbdd82c51e0db75b7443 (diff)
downloadmullvadvpn-56f060babfb5f4336e20f41b7966638f132e5e14.tar.xz
mullvadvpn-56f060babfb5f4336e20f41b7966638f132e5e14.zip
Derive `IntoJava` for `PublicKey`
-rw-r--r--mullvad-jni/src/into_java.rs23
-rw-r--r--mullvad-types/src/wireguard.rs6
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", &parameters)
- .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>,
}