summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-03-07 16:25:30 +0100
committerDavid Göransson <david.goransson@mullvad.net>2024-03-07 16:26:26 +0100
commit68daaa4381fbad7e3c4a2df55d30ee4f0386e895 (patch)
tree31133a76f33cbf7f3b6d98afe7256e2b658a0cd1 /android
parent5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa (diff)
downloadmullvadvpn-68daaa4381fbad7e3c4a2df55d30ee4f0386e895.tar.xz
mullvadvpn-68daaa4381fbad7e3c4a2df55d30ee4f0386e895.zip
Fix filter screen selection regression
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt28
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() {