diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-05 00:11:58 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-12 13:19:37 +0000 |
| commit | ea49f466b4688698281fb954ff277441fb8af024 (patch) | |
| tree | fd05c92a417bb431008ff5f92ca7f04b9bce226a /android/src | |
| parent | 8304178db9bddea937dd73c944d3f70ea11a10b9 (diff) | |
| download | mullvadvpn-ea49f466b4688698281fb954ff277441fb8af024.tar.xz mullvadvpn-ea49f466b4688698281fb954ff277441fb8af024.zip | |
Make `TunnelState` parcelable
Diffstat (limited to 'android/src')
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() } |
