summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-06-27 16:16:52 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-06-28 16:34:31 +0200
commitf56a18594bef31edde42583764e63c6f4dabfd78 (patch)
tree54826041bd7f79edd049d4f08e675c50bc4d2d1f /android
parent63b7607e4ab4f4d6e992d24a081cf8fdd9e25b54 (diff)
downloadmullvadvpn-f56a18594bef31edde42583764e63c6f4dabfd78.tar.xz
mullvadvpn-f56a18594bef31edde42583764e63c6f4dabfd78.zip
Expose wireguard port ranges to the android app
Diffstat (limited to 'android')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreenTest.kt9
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/PortRange.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayList.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardEndpointData.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt14
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 ->