diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 12:18:30 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 12:18:30 -0300 |
| commit | ef3f533878771a470e5600e8dde13011365bb5d3 (patch) | |
| tree | e5665e1dc2e337f9dedc857eb084db159f1e5a31 /android | |
| parent | 37261f0d5c214b926053329bf24d8e7bd1efbfcb (diff) | |
| parent | 6677eede732ab9ba6687229caf498d0df8874f11 (diff) | |
| download | mullvadvpn-ef3f533878771a470e5600e8dde13011365bb5d3.tar.xz mullvadvpn-ef3f533878771a470e5600e8dde13011365bb5d3.zip | |
Merge branch 'use-jnix'
Diffstat (limited to 'android')
24 files changed, 92 insertions, 59 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/LocationInfo.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt index 9278bb315f..9210712365 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt @@ -99,8 +99,8 @@ class LocationInfo(val parentView: View, val context: Context) { private fun showInAddress(endpoint: Endpoint?) { if (endpoint != null) { val transportProtocol = when (endpoint.protocol) { - is TransportProtocol.Tcp -> context.getString(R.string.tcp) - is TransportProtocol.Udp -> context.getString(R.string.udp) + TransportProtocol.Tcp -> context.getString(R.string.tcp) + TransportProtocol.Udp -> context.getString(R.string.udp) } inAddress.text = context.getString( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt index 352fe4dd71..f6fd4c9e1e 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 @@ -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/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/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/WireguardKeyFragment.kt index e51e43630f..141e373ccf 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/WireguardKeyFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/WireguardKeyFragment.kt @@ -152,16 +152,15 @@ class WireguardKeyFragment : Fragment() { publicKeyAge.setText(formatKeyDateCreated(key.dateCreated)) - if (keyState.verified != null) { - if (keyState.verified) { + keyState.verified?.let { verified -> + if (verified) { setStatusMessage(R.string.wireguard_key_valid, R.color.green) } else { setStatusMessage(R.string.wireguard_key_invalid, R.color.red) } } - if (keyState.replacementFailure != null) { - showKeygenFailure(keyState.replacementFailure) - } + + keyState.replacementFailure?.let { error -> showKeygenFailure(error) } } is KeygenEvent.Failure -> { showKeygenFailure(keyState.failure) 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/mullvadvpn/dataproxy/RelayListListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt index 32b3c10ba7..7d016821a4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt @@ -7,6 +7,7 @@ import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.MainActivity import net.mullvad.mullvadvpn.MullvadDaemon import net.mullvad.mullvadvpn.model.Constraint +import net.mullvad.mullvadvpn.model.RelayConstraints import net.mullvad.mullvadvpn.model.RelaySettings import net.mullvad.mullvadvpn.relaylist.RelayItem import net.mullvad.mullvadvpn.relaylist.RelayList @@ -78,7 +79,8 @@ class RelayListListener(val parentActivity: MainActivity) { synchronized(this) { val relayList = this.relayList - relaySettings = newRelaySettings ?: RelaySettings.RelayConstraints(Constraint.Any()) + relaySettings = newRelaySettings + ?: RelaySettings.Normal(RelayConstraints(Constraint.Any())) if (relayList != null) { relayListChanged(relayList) @@ -100,8 +102,8 @@ class RelayListListener(val parentActivity: MainActivity) { when (relaySettings) { is RelaySettings.CustomTunnelEndpoint -> return null - is RelaySettings.RelayConstraints -> { - val location = relaySettings.location + is RelaySettings.Normal -> { + val location = relaySettings.relayConstraints.location return relayList?.findItemForLocation(location, true) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomTunnelEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomTunnelEndpoint.kt new file mode 100644 index 0000000000..05dd38a80b --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomTunnelEndpoint.kt @@ -0,0 +1,3 @@ +package net.mullvad.mullvadvpn.model + +class CustomTunnelEndpoint() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/KeygenEvent.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/KeygenEvent.kt index f2f85453f9..0e1e801895 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/KeygenEvent.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/KeygenEvent.kt @@ -1,11 +1,21 @@ package net.mullvad.mullvadvpn.model sealed class KeygenEvent { - class NewKey( - val publicKey: PublicKey, - val verified: Boolean?, - val replacementFailure: KeygenFailure? - ) : KeygenEvent() + class NewKey(val publicKey: PublicKey) : KeygenEvent() { + var verified: Boolean? = false + private set + var replacementFailure: KeygenFailure? = null + private set + + constructor( + publicKey: PublicKey, + verified: Boolean?, + replacementFailure: KeygenFailure? + ) : this(publicKey) { + this.verified = verified + this.replacementFailure = replacementFailure + } + } class Failure(val failure: KeygenFailure) : KeygenEvent() } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt index 01c2eb9481..f260baf6e2 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Relay.kt @@ -1,3 +1,6 @@ package net.mullvad.mullvadvpn.model -data class Relay(val hostname: String, val hasWireguardTunnels: Boolean, val active: Boolean) +data class Relay(val hostname: String, val active: Boolean, val tunnels: RelayTunnels) { + val hasWireguardTunnels + get() = tunnels.wireguard.isEmpty() +} diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt new file mode 100644 index 0000000000..e4e6d6634e --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt @@ -0,0 +1,3 @@ +package net.mullvad.mullvadvpn.model + +data class RelayConstraints(val location: Constraint<LocationConstraint>) 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/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt index 406d2b5ca5..329120350d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCity.kt @@ -1,3 +1,5 @@ package net.mullvad.mullvadvpn.model -data class RelayListCity(val name: String, val code: String, val relays: List<Relay>) +import java.util.ArrayList + +data class RelayListCity(val name: String, val code: String, val relays: ArrayList<Relay>) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCountry.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCountry.kt index de6817b03c..035cb52d19 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCountry.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayListCountry.kt @@ -1,3 +1,9 @@ package net.mullvad.mullvadvpn.model -data class RelayListCountry(val name: String, val code: String, val cities: List<RelayListCity>) +import java.util.ArrayList + +data class RelayListCountry( + val name: String, + val code: String, + val cities: ArrayList<RelayListCity> +) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt index 6fded8f9c5..cb53911883 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettings.kt @@ -2,5 +2,5 @@ package net.mullvad.mullvadvpn.model sealed class RelaySettings { class CustomTunnelEndpoint() : RelaySettings() - class RelayConstraints(var location: Constraint<LocationConstraint>) : RelaySettings() + class Normal(var relayConstraints: RelayConstraints) : RelaySettings() } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt new file mode 100644 index 0000000000..5946620566 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayTunnels.kt @@ -0,0 +1,5 @@ +package net.mullvad.mullvadvpn.model + +import java.util.ArrayList + +data class RelayTunnels(val wireguard: ArrayList<WireguardEndpointData>) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt new file mode 100644 index 0000000000..1d39f1170d --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt @@ -0,0 +1,3 @@ +package net.mullvad.mullvadvpn.model + +class WireguardEndpointData() 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 d4372f54ed..013399dc52 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt @@ -1,6 +1,5 @@ package net.mullvad.talpid.net -sealed class TransportProtocol { - class Tcp : TransportProtocol() - class Udp : TransportProtocol() +enum class TransportProtocol { + Tcp, Udp } diff --git a/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt index fe8d0f55c7..761462013e 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt @@ -1,10 +1,11 @@ package net.mullvad.talpid.tun_provider import java.net.InetAddress +import java.util.ArrayList data class TunConfig( - val addresses: List<InetAddress>, - val dnsServers: List<InetAddress>, - val routes: List<InetNetwork>, + val addresses: ArrayList<InetAddress>, + val dnsServers: ArrayList<InetAddress>, + val routes: ArrayList<InetNetwork>, val mtu: Int ) 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/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 } |
