diff options
Diffstat (limited to 'mullvad-jni/src/into_java.rs')
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 20 |
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", ¶meters) + .expect("Failed to create AccountData Java object") + } +} |
