summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs15
-rw-r--r--mullvad-jni/src/lib.rs5
2 files changed, 18 insertions, 2 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index dce4d3e5ff..4f8fc3f287 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -3,7 +3,7 @@ use jni::{
objects::{JObject, JString, JValue},
JNIEnv,
};
-use mullvad_types::account::AccountData;
+use mullvad_types::{account::AccountData, settings::Settings};
pub trait IntoJava<'env> {
type JavaType;
@@ -46,3 +46,16 @@ impl<'env> IntoJava<'env> for AccountData {
.expect("Failed to create AccountData Java object")
}
}
+
+impl<'env> IntoJava<'env> for Settings {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class = get_class("net/mullvad/mullvadvpn/model/Settings");
+ let account_token = env.auto_local(JObject::from(self.get_account_token().into_java(env)));
+ let parameters = [JValue::Object(account_token.as_obj())];
+
+ env.new_object(&class, "(Ljava/lang/String;)V", &parameters)
+ .expect("Failed to create Settings Java object")
+ }
+}
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 4c849b97ad..f9ed5ccb90 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -18,7 +18,10 @@ use talpid_types::{tunnel::TunnelStateTransition, ErrorExt};
const LOG_FILENAME: &str = "daemon.log";
-const CLASSES_TO_LOAD: &[&str] = &["net/mullvad/mullvadvpn/model/AccountData"];
+const CLASSES_TO_LOAD: &[&str] = &[
+ "net/mullvad/mullvadvpn/model/AccountData",
+ "net/mullvad/mullvadvpn/model/Settings",
+];
lazy_static! {
static ref DAEMON_INTERFACE: Mutex<DaemonInterface> = Mutex::new(DaemonInterface::new());