summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-12-15 10:55:04 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-01-19 13:31:20 +0100
commitbf2d6a6e15a2d405537948d37bdc94b510805f67 (patch)
treeccd0e4356e0359e9afa945654443db6cbefe1384 /android/app/src
parent52a0a1c3fe9fa6df23f3735050799b0de522c7ef (diff)
downloadmullvadvpn-bf2d6a6e15a2d405537948d37bdc94b510805f67.tar.xz
mullvadvpn-bf2d6a6e15a2d405537948d37bdc94b510805f67.zip
Fetch the relay list when entering the select location screen
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/RelayListUseCase.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt4
4 files changed, 13 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt
index 8f0624cf8a..b0157e4e15 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt
@@ -194,7 +194,7 @@ fun SelectLocationScreen(
}
}
is SelectLocationUiState.ShowData -> {
- if (uiState.countries.isEmpty()) {
+ if (uiState.countries.isEmpty() && uiState.searchTerm.isNotEmpty()) {
item(contentType = ContentType.EMPTY_TEXT) {
val firstRow =
HtmlCompat.fromHtml(
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 c405aed280..2d6ce332f6 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
@@ -53,5 +53,9 @@ class RelayListListener(
messageHandler.trySendRequest(Request.SetOwnershipAndProviders(ownership, providers))
}
+ fun fetchRelayList() {
+ messageHandler.trySendRequest(Request.FetchRelayList)
+ }
+
private fun defaultRelayList() = RelayList(ArrayList(), WireguardEndpointData(ArrayList()))
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/RelayListUseCase.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/RelayListUseCase.kt
index 0bfe1d038c..8db90b9390 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/RelayListUseCase.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/RelayListUseCase.kt
@@ -48,6 +48,10 @@ class RelayListUseCase(
fun selectedRelayItem(): Flow<RelayItem?> = relayListWithSelection().map { it.selectedItem }
+ fun fetchRelayList() {
+ relayListListener.fetchRelayList()
+ }
+
private fun List<RelayCountry>.findSelectedRelayItem(
relaySettings: RelaySettings?,
): RelayItem? {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
index dc9d5e7d6f..70bd92fef7 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
@@ -84,6 +84,10 @@ class SelectLocationViewModel(
private val _uiSideEffect = Channel<SelectLocationSideEffect>(1, BufferOverflow.DROP_OLDEST)
val uiSideEffect = _uiSideEffect.receiveAsFlow()
+ init {
+ viewModelScope.launch { relayListUseCase.fetchRelayList() }
+ }
+
fun selectRelay(relayItem: RelayItem) {
relayListUseCase.updateSelectedRelayLocation(relayItem.location)
serviceConnectionManager.connectionProxy()?.connect()