diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-21 21:35:03 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:54 +0000 |
| commit | 27b5765c43098b69d4ea2283788f1cd59fb37bf9 (patch) | |
| tree | aec75296c25151e0bc5357f5611243ee6e91cd0a | |
| parent | 4f1e40b8d09893a2c27455897256d7381d491e2b (diff) | |
| download | mullvadvpn-27b5765c43098b69d4ea2283788f1cd59fb37bf9.tar.xz mullvadvpn-27b5765c43098b69d4ea2283788f1cd59fb37bf9.zip | |
Derive `IntoJava` for `RelayListCity`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt | 4 | ||||
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 32 | ||||
| -rw-r--r-- | mullvad-types/src/relay_list.rs | 4 |
3 files changed, 9 insertions, 31 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt index 406d2b5ca5..329120350d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt @@ -1,3 +1,5 @@ package net.mullvad.mullvadvpn.model -data class RelayListCity(val name: String, val code: String, val relays: List<Relay>) +import java.util.ArrayList + +data class RelayListCity(val name: String, val code: String, val relays: ArrayList<Relay>) diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 0f1f33035c..9fcbc06104 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -10,7 +10,7 @@ use mullvad_types::{ account::AccountData, location::GeoIpLocation, relay_constraints::{Constraint, LocationConstraint, RelayConstraints, RelaySettings}, - relay_list::{Relay, RelayList, RelayListCity, RelayListCountry}, + relay_list::{RelayList, RelayListCity, RelayListCountry}, settings::Settings, states::TunnelState, version::AppVersionInfo, @@ -157,35 +157,7 @@ where } } -impl<'borrow, 'env> IntoJava<'borrow, 'env> for RelayListCity -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/RelayListCity"); - let name = self.name.into_java(env); - let code = self.code.into_java(env); - let relays = self.relays.into_java(env); - let parameters = [ - JValue::Object(name.as_obj()), - JValue::Object(code.as_obj()), - JValue::Object(relays.as_obj()), - ]; - - env.auto_local( - env.new_object( - &class, - "(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V", - ¶meters, - ) - .expect("Failed to create RelayListCity Java object"), - ) - } -} - -wrap_jnix_into_java!(Relay); +wrap_jnix_into_java!(RelayListCity); impl<'borrow, 'env, T> IntoJava<'borrow, 'env> for Constraint<T> where diff --git a/mullvad-types/src/relay_list.rs b/mullvad-types/src/relay_list.rs index 229c822002..ff5a0c3200 100644 --- a/mullvad-types/src/relay_list.rs +++ b/mullvad-types/src/relay_list.rs @@ -36,10 +36,14 @@ pub struct RelayListCountry { } #[derive(Debug, Clone, Deserialize, Serialize)] +#[cfg_attr(target_os = "android", derive(IntoJava))] +#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))] pub struct RelayListCity { pub name: String, pub code: CityCode, + #[cfg_attr(target_os = "android", jnix(skip))] pub latitude: f64, + #[cfg_attr(target_os = "android", jnix(skip))] pub longitude: f64, pub relays: Vec<Relay>, } |
