diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-06-27 16:16:52 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2023-06-28 16:34:31 +0200 |
| commit | f56a18594bef31edde42583764e63c6f4dabfd78 (patch) | |
| tree | 54826041bd7f79edd049d4f08e675c50bc4d2d1f /android | |
| parent | 63b7607e4ab4f4d6e992d24a081cf8fdd9e25b54 (diff) | |
| download | mullvadvpn-f56a18594bef31edde42583764e63c6f4dabfd78.tar.xz mullvadvpn-f56a18594bef31edde42583764e63c6f4dabfd78.zip | |
Expose wireguard port ranges to the android app
Diffstat (limited to 'android')
5 files changed, 38 insertions, 3 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreenTest.kt index 1dc87cddff..e67e08249e 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreenTest.kt @@ -8,9 +8,11 @@ import kotlinx.coroutines.flow.MutableSharedFlow import net.mullvad.mullvadvpn.compose.state.SelectLocationUiState import net.mullvad.mullvadvpn.compose.test.CIRCULAR_PROGRESS_INDICATOR import net.mullvad.mullvadvpn.compose.theme.AppTheme +import net.mullvad.mullvadvpn.model.PortRange import net.mullvad.mullvadvpn.model.RelayEndpointData import net.mullvad.mullvadvpn.model.RelayListCity import net.mullvad.mullvadvpn.model.RelayListCountry +import net.mullvad.mullvadvpn.model.WireguardEndpointData import net.mullvad.mullvadvpn.model.WireguardRelayEndpointData import net.mullvad.mullvadvpn.relaylist.RelayList import org.junit.Before @@ -131,10 +133,15 @@ class SelectLocationScreenTest { private val DUMMY_RELAY_COUNTRY_2 = RelayListCountry("Relay Country 2", "RCo2", arrayListOf(DUMMY_RELAY_CITY_2)) + private val DUMMY_WIREGUARD_PORT_RANGES = ArrayList<PortRange>() + private val DUMMY_WIREGUARD_ENDPOINT_DATA = + WireguardEndpointData(DUMMY_WIREGUARD_PORT_RANGES) + private val DUMMY_RELAY_LIST = RelayList( net.mullvad.mullvadvpn.model.RelayList( - arrayListOf(DUMMY_RELAY_COUNTRY_1, DUMMY_RELAY_COUNTRY_2) + arrayListOf(DUMMY_RELAY_COUNTRY_1, DUMMY_RELAY_COUNTRY_2), + DUMMY_WIREGUARD_ENDPOINT_DATA ) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/PortRange.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/PortRange.kt new file mode 100644 index 0000000000..376f5ef7a4 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/PortRange.kt @@ -0,0 +1,6 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize data class PortRange(val from: Int, val to: Int) : Parcelable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt index 2d13dc9322..60d8b6dd35 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt @@ -3,4 +3,8 @@ package net.mullvad.mullvadvpn.model import android.os.Parcelable import kotlinx.parcelize.Parcelize -@Parcelize data class RelayList(val countries: ArrayList<RelayListCountry>) : Parcelable +@Parcelize +data class RelayList( + val countries: ArrayList<RelayListCountry>, + val wireguardEndpointData: WireguardEndpointData +) : Parcelable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt new file mode 100644 index 0000000000..0a21221bb0 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt @@ -0,0 +1,6 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize data class WireguardEndpointData(val portRanges: ArrayList<PortRange>) : Parcelable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt index 5d18cca679..46cf492d01 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt @@ -6,6 +6,7 @@ import net.mullvad.mullvadvpn.ipc.EventDispatcher import net.mullvad.mullvadvpn.ipc.Request import net.mullvad.mullvadvpn.model.Constraint import net.mullvad.mullvadvpn.model.LocationConstraint +import net.mullvad.mullvadvpn.model.PortRange import net.mullvad.mullvadvpn.model.RelayConstraints import net.mullvad.mullvadvpn.model.RelaySettings import net.mullvad.mullvadvpn.model.WireguardConstraints @@ -19,6 +20,7 @@ class RelayListListener( ) { private var relayList: RelayList? = null private var relaySettings: RelaySettings? = null + private var portRanges: List<PortRange> = emptyList() var selectedRelayItem: RelayItem? = null private set @@ -59,9 +61,19 @@ class RelayListListener( } } + var onPortRangesChange: ((List<PortRange>) -> Unit)? = null + set(value) { + field = value + + synchronized(this) { value?.invoke(portRanges) } + } + init { eventDispatcher.registerHandler(Event.NewRelayList::class) { event -> - event.relayList?.let { relayLocations -> relayListChanged(RelayList(relayLocations)) } + event.relayList?.let { relayLocations -> + relayListChanged(RelayList(relayLocations)) + onPortRangesChange?.invoke(relayLocations.wireguardEndpointData.portRanges) + } } settingsListener.relaySettingsNotifier.subscribe(this) { newRelaySettings -> |
