diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-03-08 10:14:53 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-03-08 10:14:53 +0100 |
| commit | 972d2fa2eafc31939e536e9bb06a9f99369b78bc (patch) | |
| tree | 31133a76f33cbf7f3b6d98afe7256e2b658a0cd1 /android | |
| parent | 5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa (diff) | |
| parent | 68daaa4381fbad7e3c4a2df55d30ee4f0386e895 (diff) | |
| download | mullvadvpn-972d2fa2eafc31939e536e9bb06a9f99369b78bc.tar.xz mullvadvpn-972d2fa2eafc31939e536e9bb06a9f99369b78bc.zip | |
Merge branch 'all-providers-are-not-selected-by-default-in-filterscreen-droid-730'
Diffstat (limited to 'android')
3 files changed, 19 insertions, 17 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt index da46938e84..ad301877c4 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt @@ -17,11 +17,11 @@ fun Ownership?.toOwnershipConstraint(): Constraint<Ownership> = else -> Constraint.Only(this) } -fun Constraint<Providers>.toSelectedProviders(allProviders: List<Provider>): List<Provider>? = +fun Constraint<Providers>.toSelectedProviders(allProviders: List<Provider>): List<Provider> = when (this) { - is Constraint.Any -> null + is Constraint.Any -> allProviders is Constraint.Only -> - this.value.providers.toList().mapNotNull { providerName -> + value.providers.toList().mapNotNull { providerName -> allProviders.firstOrNull { it.name == providerName } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt index 4a9fb709fd..3f95d79193 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt @@ -39,7 +39,7 @@ class FilterViewModel( ) { allProviders, selectedConstraintProviders -> selectedConstraintProviders.toSelectedProviders(allProviders) } - .first() ?: emptyList() + .first() val ownershipConstraint = relayListFilterUseCase.selectedOwnership().first() selectedOwnership.value = ownershipConstraint.toNullableOwnership() 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 fc46441de1..9b83423a35 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 @@ -48,11 +48,15 @@ class SelectLocationViewModel( selectedConstraintProviders -> val selectedOwnershipItem = selectedOwnership.toNullableOwnership() val selectedProvidersCount = - filterSelectedProvidersByOwnership( - selectedConstraintProviders.toSelectedProviders(allProviders), - selectedOwnershipItem - ) - ?.size + when (selectedConstraintProviders) { + is Constraint.Any -> null + is Constraint.Only -> + filterSelectedProvidersByOwnership( + selectedConstraintProviders.toSelectedProviders(allProviders), + selectedOwnershipItem + ) + .size + } val filteredRelayCountries = relayCountries.filterOnSearchTerm(searchTerm, selectedItem) @@ -97,15 +101,13 @@ class SelectLocationViewModel( } private fun filterSelectedProvidersByOwnership( - selectedProviders: List<Provider>?, + selectedProviders: List<Provider>, selectedOwnership: Ownership? - ): List<Provider>? = - selectedProviders?.let { - when (selectedOwnership) { - Ownership.MullvadOwned -> selectedProviders.filter { it.mullvadOwned } - Ownership.Rented -> selectedProviders.filterNot { it.mullvadOwned } - else -> selectedProviders - } + ): List<Provider> = + when (selectedOwnership) { + Ownership.MullvadOwned -> selectedProviders.filter { it.mullvadOwned } + Ownership.Rented -> selectedProviders.filterNot { it.mullvadOwned } + else -> selectedProviders } fun removeOwnerFilter() { |
