diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 09:45:02 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:56 +0000 |
| commit | 7b2af16441cf28c534c42474ffcffec2d25d5601 (patch) | |
| tree | 1d8b7b8d0e626148ae75cacb5f6bf894b5ed212e /mullvad-jni/src/into_java.rs | |
| parent | c6f6e2951b70e12adc97b6bd46bef74b30bfe318 (diff) | |
| download | mullvadvpn-7b2af16441cf28c534c42474ffcffec2d25d5601.tar.xz mullvadvpn-7b2af16441cf28c534c42474ffcffec2d25d5601.zip | |
Create `GetAccountDataResult` helper type
Diffstat (limited to 'mullvad-jni/src/into_java.rs')
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 54 |
1 files changed, 3 insertions, 51 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 20ad7dfcbb..048643b160 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -1,11 +1,7 @@ -use crate::daemon_interface; -use jnix::{ - jni::objects::{AutoLocal, JValue}, - JnixEnv, -}; +use jnix::{jni::objects::AutoLocal, JnixEnv}; use mullvad_types::{ - account::AccountData, relay_constraints::Constraint, relay_list::RelayList, settings::Settings, - states::TunnelState, version::AppVersionInfo, wireguard::KeygenEvent, + 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; @@ -54,7 +50,6 @@ where } wrap_jnix_into_java!(AppVersionInfo); -wrap_jnix_into_java!(AccountData); wrap_jnix_into_java!(TunConfig); wrap_jnix_into_java!(RelayList); @@ -66,46 +61,3 @@ wrap_jnix_into_java!(Constraint<T> wrap_jnix_into_java!(KeygenEvent); wrap_jnix_into_java!(Settings); wrap_jnix_into_java!(TunnelState); - -impl<'borrow, 'env> IntoJava<'borrow, 'env> for Result<AccountData, daemon_interface::Error> -where - 'env: 'borrow, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - env.auto_local(match self { - Ok(data) => { - let class = env.get_class("net/mullvad/mullvadvpn/model/GetAccountDataResult$Ok"); - let java_account_data = data.into_java(&env); - let parameters = [JValue::Object(java_account_data.as_obj())]; - - env.new_object( - &class, - "(Lnet/mullvad/mullvadvpn/model/AccountData;)V", - ¶meters, - ) - .expect("Failed to create GetAccountDataResult.Ok Java object") - } - Err(error) => { - let class_name = match error { - daemon_interface::Error::RpcError(jsonrpc_client_core::Error( - jsonrpc_client_core::ErrorKind::JsonRpcError(jsonrpc_core::Error { - code: jsonrpc_core::ErrorCode::ServerError(-200), - .. - }), - _, - )) => "net/mullvad/mullvadvpn/model/GetAccountDataResult$InvalidAccount", - daemon_interface::Error::RpcError(_) => { - "net/mullvad/mullvadvpn/model/GetAccountDataResult$RpcError" - } - _ => "net/mullvad/mullvadvpn/model/GetAccountDataResult$OtherError", - }; - let class = env.get_class(class_name); - - env.new_object(&class, "()V", &[]) - .expect("Failed to create a GetAccountDataResult error sub-class Java object") - } - }) - } -} |
