diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 01:47:22 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:55 +0000 |
| commit | 387e3ec710a8ef532b1a64f4707c1160bfe003b6 (patch) | |
| tree | 49e67bc0d281580dd4a574e0b8024f3837c56e52 | |
| parent | b250716fbec76057556efd69e827243a557bd897 (diff) | |
| download | mullvadvpn-387e3ec710a8ef532b1a64f4707c1160bfe003b6.tar.xz mullvadvpn-387e3ec710a8ef532b1a64f4707c1160bfe003b6.zip | |
Derive `IntoJava` for `ParameterGenerationError`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt | 8 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt | 7 | ||||
| -rw-r--r-- | mullvad-jni/src/classes.rs | 5 | ||||
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 27 | ||||
| -rw-r--r-- | talpid-types/src/tunnel.rs | 2 |
5 files changed, 10 insertions, 39 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt index b37cf81819..f6fd4c9e1e 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt @@ -179,12 +179,12 @@ class NotificationBanner( is BlockReason.TapAdapterProblem -> R.string.tap_adapter_problem is BlockReason.ParameterGeneration -> { when (reason.error) { - is ParameterGenerationError.NoMatchingRelay -> R.string.no_matching_relay - is ParameterGenerationError.NoMatchingBridgeRelay -> { + ParameterGenerationError.NoMatchingRelay -> R.string.no_matching_relay + ParameterGenerationError.NoMatchingBridgeRelay -> { R.string.no_matching_bridge_relay } - is ParameterGenerationError.NoWireguardKey -> R.string.no_wireguard_key - is ParameterGenerationError.CustomTunnelHostResultionError -> { + ParameterGenerationError.NoWireguardKey -> R.string.no_wireguard_key + ParameterGenerationError.CustomTunnelHostResultionError -> { R.string.custom_tunnel_host_resolution_error } } diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt index 92547a02b4..51fa8ac461 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt @@ -1,8 +1,5 @@ package net.mullvad.talpid.tunnel -sealed class ParameterGenerationError { - class NoMatchingRelay : ParameterGenerationError() - class NoMatchingBridgeRelay : ParameterGenerationError() - class NoWireguardKey : ParameterGenerationError() - class CustomTunnelHostResultionError : ParameterGenerationError() +enum class ParameterGenerationError { + NoMatchingRelay, NoMatchingBridgeRelay, NoWireguardKey, CustomTunnelHostResultionError } diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs index f4fe862c50..39b7713932 100644 --- a/mullvad-jni/src/classes.rs +++ b/mullvad-jni/src/classes.rs @@ -53,9 +53,6 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/talpid/tunnel/BlockReason$ParameterGeneration", "net/mullvad/talpid/tunnel/BlockReason$IsOffline", "net/mullvad/talpid/tunnel/BlockReason$TapAdapterProblem", - "net/mullvad/talpid/tunnel/ParameterGenerationError$NoMatchingRelay", - "net/mullvad/talpid/tunnel/ParameterGenerationError$NoMatchingBridgeRelay", - "net/mullvad/talpid/tunnel/ParameterGenerationError$NoWireguardKey", - "net/mullvad/talpid/tunnel/ParameterGenerationError$CustomTunnelHostResultionError", + "net/mullvad/talpid/tunnel/ParameterGenerationError", "net/mullvad/talpid/TalpidVpnService", ]; diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index f93a9bc4ae..54bc9fbf69 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -121,32 +121,7 @@ where } } -impl<'borrow, 'env> IntoJava<'borrow, 'env> for ParameterGenerationError -where - 'env: 'borrow, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - let class_variant = match self { - ParameterGenerationError::NoMatchingRelay => "NoMatchingRelay", - ParameterGenerationError::NoMatchingBridgeRelay => "NoMatchingBridgeRelay ", - ParameterGenerationError::NoWireguardKey => "NoWireguardKey", - ParameterGenerationError::CustomTunnelHostResultionError => { - "CustomTunnelHostResultionError" - } - }; - let class_name = format!( - "net/mullvad/talpid/tunnel/ParameterGenerationError${}", - class_variant - ); - let class = env.get_class(&class_name); - env.auto_local( - env.new_object(&class, "()V", &[]) - .expect("Failed to create ParameterGenerationError sub-class variant Java object"), - ) - } -} +wrap_jnix_into_java!(ParameterGenerationError); impl<'borrow, 'env> IntoJava<'borrow, 'env> for TunnelState where diff --git a/talpid-types/src/tunnel.rs b/talpid-types/src/tunnel.rs index 06b9e96d91..c241715dee 100644 --- a/talpid-types/src/tunnel.rs +++ b/talpid-types/src/tunnel.rs @@ -67,6 +67,8 @@ pub enum BlockReason { /// Errors that can occur when generating tunnel parameters. #[derive(err_derive::Error, Debug, Serialize, Clone, PartialEq, Deserialize)] #[serde(rename_all = "snake_case")] +#[cfg_attr(target_os = "android", derive(IntoJava))] +#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.talpid.tunnel"))] pub enum ParameterGenerationError { /// Failure to select a matching tunnel relay #[error(display = "Failure to select a matching tunnel relay")] |
