diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 1 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt index ff3abeea80..5dd6401615 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt @@ -21,6 +21,7 @@ class MullvadDaemon(val vpnService: MullvadVpnService) { external fun getAccountData(accountToken: String): AccountData? external fun getRelayLocations(): RelayList external fun getSettings(): Settings + external fun getState(): TunnelStateTransition external fun getWireguardKey(): PublicKey? external fun setAccount(accountToken: String?) external fun updateRelaySettings(update: RelaySettingsUpdate) diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index e8c7e62f49..62a6dbe277 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -300,6 +300,23 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getSettings<'en #[no_mangle] #[allow(non_snake_case)] +pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getState<'env, 'this>( + env: JNIEnv<'env>, + _: JObject<'this>, +) -> JObject<'env> { + let daemon = DAEMON_INTERFACE.lock(); + + match daemon.get_state() { + Ok(state) => state.into_java(&env), + Err(error) => { + log::error!("{}", error.display_chain_with_msg("Failed to get state")); + JObject::null() + } + } +} + +#[no_mangle] +#[allow(non_snake_case)] pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getWireguardKey<'env, 'this>( env: JNIEnv<'env>, _: JObject<'this>, |
