summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt8
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt6
-rw-r--r--mullvad-jni/src/classes.rs4
-rw-r--r--mullvad-jni/src/into_java.rs26
-rw-r--r--talpid-types/src/tunnel.rs4
11 files changed, 28 insertions, 52 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt
index ae731b4161..4789d27a2c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt
@@ -19,9 +19,9 @@ class ConnectActionButton(val parentView: View) {
is TunnelState.Disconnected -> disconnected()
is TunnelState.Disconnecting -> {
when (value.actionAfterDisconnect) {
- is ActionAfterDisconnect.Nothing -> disconnected()
- is ActionAfterDisconnect.Block -> connected()
- is ActionAfterDisconnect.Reconnect -> connecting()
+ ActionAfterDisconnect.Nothing -> disconnected()
+ ActionAfterDisconnect.Block -> connected()
+ ActionAfterDisconnect.Reconnect -> connecting()
}
}
is TunnelState.Connecting -> connecting()
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt
index 17f44a64da..664156dd04 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt
@@ -18,9 +18,9 @@ class ConnectionStatus(val parentView: View, val resources: Resources) {
when (state) {
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Nothing -> disconnected()
- is ActionAfterDisconnect.Block -> connected()
- is ActionAfterDisconnect.Reconnect -> connecting()
+ ActionAfterDisconnect.Nothing -> disconnected()
+ ActionAfterDisconnect.Block -> connected()
+ ActionAfterDisconnect.Reconnect -> connecting()
}
}
is TunnelState.Disconnected -> disconnected()
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt
index c99d8d7a0d..80890e56ca 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt
@@ -40,7 +40,7 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C
reconnecting =
(value is TunnelState.Disconnecting &&
- value.actionAfterDisconnect is ActionAfterDisconnect.Reconnect) ||
+ value.actionAfterDisconnect == ActionAfterDisconnect.Reconnect) ||
(value is TunnelState.Connecting && reconnecting)
updateNotification()
@@ -62,7 +62,7 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C
is TunnelState.Connected -> R.string.secured
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Reconnect -> R.string.reconnecting
+ ActionAfterDisconnect.Reconnect -> R.string.reconnecting
else -> R.string.disconnecting
}
}
@@ -80,7 +80,7 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C
is TunnelState.Connected -> R.string.disconnect
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Reconnect -> R.string.cancel
+ ActionAfterDisconnect.Reconnect -> R.string.cancel
else -> R.string.connect
}
}
@@ -98,7 +98,7 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C
is TunnelState.Connected -> KEY_DISCONNECT_ACTION
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Reconnect -> KEY_DISCONNECT_ACTION
+ ActionAfterDisconnect.Reconnect -> KEY_DISCONNECT_ACTION
else -> KEY_CONNECT_ACTION
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
index 352fe4dd71..b37cf81819 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
@@ -124,9 +124,9 @@ class NotificationBanner(
when (state) {
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Nothing -> return false
- is ActionAfterDisconnect.Block -> showBlocking(null)
- is ActionAfterDisconnect.Reconnect -> showBlocking(null)
+ ActionAfterDisconnect.Nothing -> return false
+ ActionAfterDisconnect.Block -> showBlocking(null)
+ ActionAfterDisconnect.Reconnect -> showBlocking(null)
}
}
is TunnelState.Disconnected -> return false
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt
index f6561e4da1..930c1ff626 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt
@@ -57,9 +57,9 @@ class SwitchLocationButton(val parentView: View, val resources: Resources) {
is TunnelState.Disconnected -> showLocation()
is TunnelState.Disconnecting -> {
when (state.actionAfterDisconnect) {
- is ActionAfterDisconnect.Nothing -> showLocation()
- is ActionAfterDisconnect.Block -> showLocation()
- is ActionAfterDisconnect.Reconnect -> showLabel()
+ ActionAfterDisconnect.Nothing -> showLocation()
+ ActionAfterDisconnect.Block -> showLocation()
+ ActionAfterDisconnect.Reconnect -> showLabel()
}
}
is TunnelState.Connecting -> showLabel()
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
index 06c594ed1c..ee429ca18d 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
@@ -105,7 +105,7 @@ class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>)
return false
} else {
scheduleToResetAnticipatedState()
- uiState = TunnelState.Disconnecting(ActionAfterDisconnect.Nothing())
+ uiState = TunnelState.Disconnecting(ActionAfterDisconnect.Nothing)
return true
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt
index 94444c5d46..0057f034d8 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt
@@ -49,9 +49,9 @@ class LocationInfoCache(
}
is TunnelState.Disconnecting -> {
when (value.actionAfterDisconnect) {
- is ActionAfterDisconnect.Nothing -> location = lastKnownRealLocation
- is ActionAfterDisconnect.Block -> location = null
- is ActionAfterDisconnect.Reconnect -> location = locationFromSelectedRelay()
+ ActionAfterDisconnect.Nothing -> location = lastKnownRealLocation
+ ActionAfterDisconnect.Block -> location = null
+ ActionAfterDisconnect.Reconnect -> location = locationFromSelectedRelay()
}
}
is TunnelState.Blocked -> location = null
diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt
index c352ab06ad..c20d5b33e4 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt
@@ -1,7 +1,5 @@
package net.mullvad.talpid.tunnel
-sealed class ActionAfterDisconnect {
- class Nothing : ActionAfterDisconnect()
- class Block : ActionAfterDisconnect()
- class Reconnect : ActionAfterDisconnect()
+enum class ActionAfterDisconnect {
+ Nothing, Block, Reconnect
}
diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs
index ae8f8c4de1..f4fe862c50 100644
--- a/mullvad-jni/src/classes.rs
+++ b/mullvad-jni/src/classes.rs
@@ -44,9 +44,7 @@ pub const CLASSES: &[&str] = &[
"net/mullvad/talpid/net/TunnelEndpoint",
"net/mullvad/talpid/tun_provider/InetNetwork",
"net/mullvad/talpid/tun_provider/TunConfig",
- "net/mullvad/talpid/tunnel/ActionAfterDisconnect$Block",
- "net/mullvad/talpid/tunnel/ActionAfterDisconnect$Nothing",
- "net/mullvad/talpid/tunnel/ActionAfterDisconnect$Reconnect",
+ "net/mullvad/talpid/tunnel/ActionAfterDisconnect",
"net/mullvad/talpid/tunnel/BlockReason$AuthFailed",
"net/mullvad/talpid/tunnel/BlockReason$Ipv6Unavailable",
"net/mullvad/talpid/tunnel/BlockReason$SetFirewallPolicyError",
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index fff9bdb191..f93a9bc4ae 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -70,31 +70,7 @@ wrap_jnix_into_java!(Constraint<T>
wrap_jnix_into_java!(KeygenEvent);
wrap_jnix_into_java!(Settings);
-
-impl<'borrow, 'env> IntoJava<'borrow, 'env> for ActionAfterDisconnect
-where
- 'env: 'borrow,
-{
- type JavaType = AutoLocal<'env, 'borrow>;
-
- fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType {
- let variant = match self {
- ActionAfterDisconnect::Nothing => "Nothing",
- ActionAfterDisconnect::Block => "Block",
- ActionAfterDisconnect::Reconnect => "Reconnect",
- };
- let class_name = format!(
- "net/mullvad/talpid/tunnel/ActionAfterDisconnect${}",
- variant
- );
- let class = env.get_class(&class_name);
-
- env.auto_local(
- env.new_object(&class, "()V", &[])
- .expect("Failed to create ActionAfterDisconnect sub-class variant Java object"),
- )
- }
-}
+wrap_jnix_into_java!(ActionAfterDisconnect);
impl<'borrow, 'env> IntoJava<'borrow, 'env> for BlockReason
where
diff --git a/talpid-types/src/tunnel.rs b/talpid-types/src/tunnel.rs
index 24b05ee24b..06b9e96d91 100644
--- a/talpid-types/src/tunnel.rs
+++ b/talpid-types/src/tunnel.rs
@@ -1,4 +1,6 @@
use crate::net::TunnelEndpoint;
+#[cfg(target_os = "android")]
+use jnix::IntoJava;
use serde::{Deserialize, Serialize};
use std::fmt;
@@ -22,6 +24,8 @@ pub enum TunnelStateTransition {
/// Action that will be taken after disconnection is complete.
#[derive(Clone, Copy, Debug, PartialEq, Serialize, 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 ActionAfterDisconnect {
Nothing,
Block,