diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 1 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 16 |
2 files changed, 17 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 c7025ea644..54bc02795c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt @@ -9,6 +9,7 @@ class MullvadDaemon { } external fun getAccountData(accountToken: String): AccountData? + external fun setAccount(accountToken: String?) private external fun initialize() } diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 35d3825dcf..4c849b97ad 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -162,3 +162,19 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getAccountData< } } } + +#[no_mangle] +#[allow(non_snake_case)] +pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_setAccount( + env: JNIEnv, + _: JObject, + accountToken: JString, +) { + let daemon = DAEMON_INTERFACE.lock(); + + let account = <Option<String> as FromJava>::from_java(&env, accountToken); + + if let Err(error) = daemon.set_account(account) { + log::error!("{}", error.display_chain_with_msg("Failed to set account")); + } +} |
