Skip to content

Commit 68daaa4

Browse files
committed
Fix filter screen selection regression
1 parent 5b81fe6 commit 68daaa4

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/FilterConstrainExtensions.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ fun Ownership?.toOwnershipConstraint(): Constraint<Ownership> =
1717
else -> Constraint.Only(this)
1818
}
1919

20-
fun Constraint<Providers>.toSelectedProviders(allProviders: List<Provider>): List<Provider>? =
20+
fun Constraint<Providers>.toSelectedProviders(allProviders: List<Provider>): List<Provider> =
2121
when (this) {
22-
is Constraint.Any -> null
22+
is Constraint.Any -> allProviders
2323
is Constraint.Only ->
24-
this.value.providers.toList().mapNotNull { providerName ->
24+
value.providers.toList().mapNotNull { providerName ->
2525
allProviders.firstOrNull { it.name == providerName }
2626
}
2727
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModel.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class FilterViewModel(
3939
) { allProviders, selectedConstraintProviders ->
4040
selectedConstraintProviders.toSelectedProviders(allProviders)
4141
}
42-
.first() ?: emptyList()
42+
.first()
4343

4444
val ownershipConstraint = relayListFilterUseCase.selectedOwnership().first()
4545
selectedOwnership.value = ownershipConstraint.toNullableOwnership()

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt

+15-13
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,15 @@ class SelectLocationViewModel(
4848
selectedConstraintProviders ->
4949
val selectedOwnershipItem = selectedOwnership.toNullableOwnership()
5050
val selectedProvidersCount =
51-
filterSelectedProvidersByOwnership(
52-
selectedConstraintProviders.toSelectedProviders(allProviders),
53-
selectedOwnershipItem
54-
)
55-
?.size
51+
when (selectedConstraintProviders) {
52+
is Constraint.Any -> null
53+
is Constraint.Only ->
54+
filterSelectedProvidersByOwnership(
55+
selectedConstraintProviders.toSelectedProviders(allProviders),
56+
selectedOwnershipItem
57+
)
58+
.size
59+
}
5660

5761
val filteredRelayCountries =
5862
relayCountries.filterOnSearchTerm(searchTerm, selectedItem)
@@ -97,15 +101,13 @@ class SelectLocationViewModel(
97101
}
98102

99103
private fun filterSelectedProvidersByOwnership(
100-
selectedProviders: List<Provider>?,
104+
selectedProviders: List<Provider>,
101105
selectedOwnership: Ownership?
102-
): List<Provider>? =
103-
selectedProviders?.let {
104-
when (selectedOwnership) {
105-
Ownership.MullvadOwned -> selectedProviders.filter { it.mullvadOwned }
106-
Ownership.Rented -> selectedProviders.filterNot { it.mullvadOwned }
107-
else -> selectedProviders
108-
}
106+
): List<Provider> =
107+
when (selectedOwnership) {
108+
Ownership.MullvadOwned -> selectedProviders.filter { it.mullvadOwned }
109+
Ownership.Rented -> selectedProviders.filterNot { it.mullvadOwned }
110+
else -> selectedProviders
109111
}
110112

111113
fun removeOwnerFilter() {

0 commit comments

Comments
 (0)