summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt1
-rw-r--r--mullvad-jni/src/lib.rs17
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>,