diff options
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 37 | ||||
| -rw-r--r-- | mullvad-types/src/settings/mod.rs | 11 |
2 files changed, 14 insertions, 34 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 21a193a8a7..fff9bdb191 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -4,13 +4,8 @@ use jnix::{ JnixEnv, }; use mullvad_types::{ - account::AccountData, - relay_constraints::{Constraint, RelaySettings}, - relay_list::RelayList, - settings::Settings, - states::TunnelState, - version::AppVersionInfo, - wireguard::KeygenEvent, + account::AccountData, relay_constraints::Constraint, relay_list::RelayList, settings::Settings, + states::TunnelState, version::AppVersionInfo, wireguard::KeygenEvent, }; use std::fmt::Debug; use talpid_core::tunnel::tun_provider::TunConfig; @@ -73,34 +68,8 @@ wrap_jnix_into_java!(Constraint<T> T: Clone + Eq + Debug + jnix::IntoJava<'borrow, 'env, JavaType = AutoLocal<'env, 'borrow>> ); -wrap_jnix_into_java!(RelaySettings); wrap_jnix_into_java!(KeygenEvent); - -impl<'borrow, 'env> IntoJava<'borrow, 'env> for Settings -where - 'env: 'borrow, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - let class = env.get_class("net/mullvad/mullvadvpn/model/Settings"); - let account_token = self.get_account_token().into_java(env); - let relay_settings = self.get_relay_settings().into_java(env); - let parameters = [ - JValue::Object(account_token.as_obj()), - JValue::Object(relay_settings.as_obj()), - ]; - - env.auto_local( - env.new_object( - &class, - "(Ljava/lang/String;Lnet/mullvad/mullvadvpn/model/RelaySettings;)V", - ¶meters, - ) - .expect("Failed to create Settings Java object"), - ) - } -} +wrap_jnix_into_java!(Settings); impl<'borrow, 'env> IntoJava<'borrow, 'env> for ActionAfterDisconnect where diff --git a/mullvad-types/src/settings/mod.rs b/mullvad-types/src/settings/mod.rs index 80ea68c6ce..0c3aa2f6fe 100644 --- a/mullvad-types/src/settings/mod.rs +++ b/mullvad-types/src/settings/mod.rs @@ -2,6 +2,8 @@ use crate::relay_constraints::{ BridgeConstraints, BridgeSettings, BridgeState, Constraint, LocationConstraint, RelayConstraints, RelaySettings, RelaySettingsUpdate, }; +#[cfg(target_os = "android")] +use jnix::IntoJava; use log::{debug, info}; use serde::{Deserialize, Serialize}; use serde_json; @@ -53,22 +55,31 @@ static SETTINGS_FILE: &str = "settings.json"; /// Mullvad daemon settings. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] #[serde(default)] +#[cfg_attr(target_os = "android", derive(IntoJava))] +#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))] pub struct Settings { account_token: Option<String>, relay_settings: RelaySettings, + #[cfg_attr(target_os = "android", jnix(skip))] bridge_settings: BridgeSettings, + #[cfg_attr(target_os = "android", jnix(skip))] bridge_state: BridgeState, /// If the daemon should allow communication with private (LAN) networks. + #[cfg_attr(target_os = "android", jnix(skip))] allow_lan: bool, /// Extra level of kill switch. When this setting is on, the disconnected state will block /// the firewall to not allow any traffic in or out. + #[cfg_attr(target_os = "android", jnix(skip))] block_when_disconnected: bool, /// If the daemon should connect the VPN tunnel directly on start or not. + #[cfg_attr(target_os = "android", jnix(skip))] auto_connect: bool, /// Options that should be applied to tunnels of a specific type regardless of where the relays /// might be located. + #[cfg_attr(target_os = "android", jnix(skip))] tunnel_options: TunnelOptions, /// Specifies settings schema version + #[cfg_attr(target_os = "android", jnix(skip))] settings_version: migrations::SettingsVersion, } |
