diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-12-15 10:55:04 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-01-19 13:31:20 +0100 |
| commit | bf2d6a6e15a2d405537948d37bdc94b510805f67 (patch) | |
| tree | ccd0e4356e0359e9afa945654443db6cbefe1384 /android/app/src | |
| parent | 52a0a1c3fe9fa6df23f3735050799b0de522c7ef (diff) | |
| download | mullvadvpn-bf2d6a6e15a2d405537948d37bdc94b510805f67.tar.xz mullvadvpn-bf2d6a6e15a2d405537948d37bdc94b510805f67.zip | |
Fetch the relay list when entering the select location screen
Diffstat (limited to 'android/app/src')
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() |
