diff options
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 20 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 2 |
2 files changed, 20 insertions, 2 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") + } +} diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index bcf39a5ba1..5d3800fe3a 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -18,7 +18,7 @@ use talpid_types::{tunnel::TunnelStateTransition, ErrorExt}; const LOG_FILENAME: &str = "daemon.log"; -const CLASSES_TO_LOAD: &[&str] = &[]; +const CLASSES_TO_LOAD: &[&str] = &["net/mullvad/mullvadvpn/model/AccountData"]; lazy_static! { static ref DAEMON_INTERFACE: Mutex<DaemonInterface> = Mutex::new(DaemonInterface::new()); |
