summaryrefslogtreecommitdiffhomepage
path: root/mullvad-jni/src/into_java.rs
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 12:59:07 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 16:41:56 +0000
commit8a01f64c666fa0eb49a7737d14eed04ebb67e1df (patch)
tree30a1b125565d0ab1180771bc2adf080cf4a3bb15 /mullvad-jni/src/into_java.rs
parent590354fb3848798353c55f45a322f35eb27a42f4 (diff)
downloadmullvadvpn-8a01f64c666fa0eb49a7737d14eed04ebb67e1df.tar.xz
mullvadvpn-8a01f64c666fa0eb49a7737d14eed04ebb67e1df.zip
Implement `IntoJava` for `AccountData`
Diffstat (limited to 'mullvad-jni/src/into_java.rs')
-rw-r--r--mullvad-jni/src/into_java.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index a814ff79cf..952338ccb7 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -1,4 +1,9 @@
-use jni::{objects::JString, JNIEnv};
+use crate::get_class;
+use jni::{
+ objects::{JObject, JString, JValue},
+ JNIEnv,
+};
+use mullvad_types::account::AccountData;
pub trait IntoJava<'env> {
type JavaType;
@@ -13,3 +18,16 @@ impl<'env> IntoJava<'env> for String {
env.new_string(&self).expect("Failed to create Java String")
}
}
+
+impl<'env> IntoJava<'env> for AccountData {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class = get_class("net/mullvad/mullvadvpn/model/AccountData");
+ let account_expiry = env.auto_local(JObject::from(self.expiry.to_string().into_java(env)));
+ let parameters = [JValue::Object(account_expiry.as_obj())];
+
+ env.new_object(&class, "(Ljava/lang/String;)V", &parameters)
+ .expect("Failed to create AccountData Java object")
+ }
+}