summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-05 00:11:58 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-12 13:19:37 +0000
commitea49f466b4688698281fb954ff277441fb8af024 (patch)
treefd05c92a417bb431008ff5f92ca7f04b9bce226a /android
parent8304178db9bddea937dd73c944d3f70ea11a10b9 (diff)
downloadmullvadvpn-ea49f466b4688698281fb954ff277441fb8af024.tar.xz
mullvadvpn-ea49f466b4688698281fb954ff277441fb8af024.zip
Make `TunnelState` parcelable
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt33
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt5
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorState.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt21
7 files changed, 70 insertions, 13 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt
index dc5698b17a..918396a263 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt
@@ -1,16 +1,35 @@
package net.mullvad.mullvadvpn.model
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
import net.mullvad.talpid.net.TunnelEndpoint
import net.mullvad.talpid.tunnel.ActionAfterDisconnect
import net.mullvad.talpid.tunnel.ErrorState
import net.mullvad.talpid.tunnel.ErrorStateCause
-sealed class TunnelState() {
- object Disconnected : TunnelState()
- class Connecting(val endpoint: TunnelEndpoint?, val location: GeoIpLocation?) : TunnelState()
- class Connected(val endpoint: TunnelEndpoint, val location: GeoIpLocation?) : TunnelState()
- class Disconnecting(val actionAfterDisconnect: ActionAfterDisconnect) : TunnelState()
- class Error(val errorState: ErrorState) : TunnelState()
+sealed class TunnelState() : Parcelable {
+ @Parcelize
+ object Disconnected : TunnelState(), Parcelable
+
+ @Parcelize
+ class Connecting(
+ val endpoint: TunnelEndpoint?,
+ val location: GeoIpLocation?
+ ) : TunnelState(), Parcelable
+
+ @Parcelize
+ class Connected(
+ val endpoint: TunnelEndpoint,
+ val location: GeoIpLocation?
+ ) : TunnelState(), Parcelable
+
+ @Parcelize
+ class Disconnecting(
+ val actionAfterDisconnect: ActionAfterDisconnect
+ ) : TunnelState(), Parcelable
+
+ @Parcelize
+ class Error(val errorState: ErrorState) : TunnelState(), Parcelable
companion object {
const val DISCONNECTED = "disconnected"
@@ -37,7 +56,7 @@ sealed class TunnelState() {
}
}
- override fun toString() = when (this) {
+ override fun toString(): String = when (this) {
is TunnelState.Disconnected -> DISCONNECTED
is TunnelState.Connecting -> CONNECTING
is TunnelState.Connected -> CONNECTED
diff --git a/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt b/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt
index 7baeb66161..8937bd0122 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt
@@ -1,5 +1,8 @@
package net.mullvad.talpid.net
+import android.os.Parcelable
import java.net.InetSocketAddress
+import kotlinx.parcelize.Parcelize
-data class Endpoint(val address: InetSocketAddress, val protocol: TransportProtocol)
+@Parcelize
+data class Endpoint(val address: InetSocketAddress, val protocol: TransportProtocol) : Parcelable
diff --git a/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt b/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt
index 013399dc52..5efb1bcb1c 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt
@@ -1,5 +1,9 @@
package net.mullvad.talpid.net
-enum class TransportProtocol {
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+enum class TransportProtocol : Parcelable {
Tcp, Udp
}
diff --git a/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt b/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt
index 138ab57cc6..db9c2c4391 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt
@@ -1,3 +1,7 @@
package net.mullvad.talpid.net
-data class TunnelEndpoint(val endpoint: Endpoint)
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class TunnelEndpoint(val endpoint: Endpoint) : Parcelable
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 c20d5b33e4..365ac0811b 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt
@@ -1,5 +1,9 @@
package net.mullvad.talpid.tunnel
-enum class ActionAfterDisconnect {
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+enum class ActionAfterDisconnect : Parcelable {
Nothing, Block, Reconnect
}
diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorState.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorState.kt
index c88a932887..2c5ba00bf5 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorState.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorState.kt
@@ -1,3 +1,7 @@
package net.mullvad.talpid.tunnel
-data class ErrorState(val cause: ErrorStateCause, val isBlocking: Boolean)
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class ErrorState(val cause: ErrorStateCause, val isBlocking: Boolean) : Parcelable
diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt
index 8aa14dae1c..f5b79bdfd5 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt
@@ -1,15 +1,34 @@
package net.mullvad.talpid.tunnel
+import android.os.Parcelable
import java.net.InetAddress
+import kotlinx.parcelize.Parcelize
-sealed class ErrorStateCause {
+sealed class ErrorStateCause : Parcelable {
+ @Parcelize
class AuthFailed(val reason: String?) : ErrorStateCause()
+
+ @Parcelize
object Ipv6Unavailable : ErrorStateCause()
+
+ @Parcelize
object SetFirewallPolicyError : ErrorStateCause()
+
+ @Parcelize
object SetDnsError : ErrorStateCause()
+
+ @Parcelize
class InvalidDnsServers(val addresses: ArrayList<InetAddress>) : ErrorStateCause()
+
+ @Parcelize
object StartTunnelError : ErrorStateCause()
+
+ @Parcelize
class TunnelParameterError(val error: ParameterGenerationError) : ErrorStateCause()
+
+ @Parcelize
object IsOffline : ErrorStateCause()
+
+ @Parcelize
object VpnPermissionDenied : ErrorStateCause()
}