diff options
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 24 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index fd5dbc8427..52aa9e2f7c 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -13,6 +13,7 @@ use mullvad_types::{ relay_list::{Relay, RelayList, RelayListCity, RelayListCountry}, settings::Settings, states::TunnelState, + version::AppVersionInfo, wireguard::KeygenEvent, CustomTunnelEndpoint, }; @@ -187,6 +188,29 @@ impl<'env> IntoJava<'env> for PublicKey { } } +impl<'env> IntoJava<'env> for AppVersionInfo { + type JavaType = JObject<'env>; + + fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType { + let class = get_class("net/mullvad/mullvadvpn/model/AppVersionInfo"); + let current_is_supported = self.current_is_supported as jboolean; + let latest_stable = env.auto_local(*self.latest_stable.into_java(env)); + let latest = env.auto_local(*self.latest.into_java(env)); + let parameters = [ + JValue::Bool(current_is_supported), + JValue::Object(latest_stable.as_obj()), + JValue::Object(latest.as_obj()), + ]; + + env.new_object( + &class, + "(ZLjava/lang/String;Ljava/lang/String;)V", + ¶meters, + ) + .expect("Failed to create AppVersionInfo Java object") + } +} + impl<'env> IntoJava<'env> for AccountData { type JavaType = JObject<'env>; diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 7b56831ee7..e200f4c462 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -37,6 +37,7 @@ const CLASSES_TO_LOAD: &[&str] = &[ "net/mullvad/mullvadvpn/model/ActionAfterDisconnect$Block", "net/mullvad/mullvadvpn/model/ActionAfterDisconnect$Nothing", "net/mullvad/mullvadvpn/model/ActionAfterDisconnect$Reconnect", + "net/mullvad/mullvadvpn/model/AppVersionInfo", "net/mullvad/mullvadvpn/model/Constraint$Any", "net/mullvad/mullvadvpn/model/Constraint$Only", "net/mullvad/mullvadvpn/model/GeoIpLocation", |
