summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-21 22:51:43 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-22 15:16:55 +0000
commit5ca4374ac2ac6d9a721427494296dc5afcb825e1 (patch)
tree62ec7e80a722a093898ed426cb1ddaef73c8f5a2
parent04100cd3a5d51e10c2cf40a8abb3bb8a9f23b626 (diff)
downloadmullvadvpn-5ca4374ac2ac6d9a721427494296dc5afcb825e1.tar.xz
mullvadvpn-5ca4374ac2ac6d9a721427494296dc5afcb825e1.zip
Derive `IntoJava` for `RelayList`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt4
-rw-r--r--mullvad-jni/src/into_java.rs23
-rw-r--r--mullvad-types/src/relay_list.rs2
3 files changed, 7 insertions, 22 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt
index 57a4a0e6c5..bc9ec3327a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt
@@ -1,3 +1,5 @@
package net.mullvad.mullvadvpn.model
-data class RelayList(val countries: List<RelayListCountry>)
+import java.util.ArrayList
+
+data class RelayList(val countries: ArrayList<RelayListCountry>)
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index 2e83593fff..f2ac2fe75e 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::{RelayList, RelayListCountry},
+ relay_list::RelayList,
settings::Settings,
states::TunnelState,
version::AppVersionInfo,
@@ -110,26 +110,7 @@ wrap_jnix_into_java!(AccountData);
wrap_jnix_into_java!(TunConfig);
wrap_jnix_into_java!(TunnelEndpoint);
wrap_jnix_into_java!(GeoIpLocation);
-
-impl<'borrow, 'env> IntoJava<'borrow, 'env> for RelayList
-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/RelayList");
- let relay_countries = self.countries.into_java(env);
- let parameters = [JValue::Object(relay_countries.as_obj())];
-
- env.auto_local(
- env.new_object(&class, "(Ljava/util/List;)V", &parameters)
- .expect("Failed to create RelayList Java object"),
- )
- }
-}
-
-wrap_jnix_into_java!(RelayListCountry);
+wrap_jnix_into_java!(RelayList);
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 6dd4bcc31d..a086dd108c 100644
--- a/mullvad-types/src/relay_list.rs
+++ b/mullvad-types/src/relay_list.rs
@@ -16,6 +16,8 @@ use talpid_types::net::{
#[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 RelayList {
pub countries: Vec<RelayListCountry>,
}