Skip to content

Commit aa4bc90

Browse files
committed
Rename usecase
1 parent 90b398e commit aa4bc90

File tree

8 files changed

+29
-41
lines changed

8 files changed

+29
-41
lines changed

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/preview/FilterUiStatePreviewParameterProvider.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class FilterUiStatePreviewParameterProvider : PreviewParameterProvider<RelayFilt
1313
override val values =
1414
sequenceOf(
1515
RelayFilterUiState(
16-
providerOwnershipMap = mapOf(PROVIDER.providerId to setOf(Ownership.MullvadOwned)),
16+
providerToOwnerships = mapOf(PROVIDER.providerId to setOf(Ownership.MullvadOwned)),
1717
selectedOwnership = Ownership.MullvadOwned,
1818
selectedProviders = listOf(PROVIDER.providerId),
1919
)

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import net.mullvad.mullvadvpn.lib.model.Ownership
44
import net.mullvad.mullvadvpn.lib.model.ProviderId
55

66
data class RelayFilterUiState(
7-
private val providerOwnershipMap: Map<ProviderId, Set<Ownership>> = emptyMap(),
7+
private val providerToOwnerships: Map<ProviderId, Set<Ownership>> = emptyMap(),
88
val selectedOwnership: Ownership? = null,
99
val selectedProviders: List<ProviderId> = emptyList(),
1010
) {
1111
val selectableOwnerships: List<Ownership> =
1212
if (selectedProviders.isEmpty()) {
1313
Ownership.entries
1414
} else {
15-
providerOwnershipMap
15+
providerToOwnerships
1616
.filterKeys { it in selectedProviders }
1717
.values
1818
.flatten()
@@ -22,10 +22,10 @@ data class RelayFilterUiState(
2222

2323
val selectableProviders: List<ProviderId> =
2424
if (selectedOwnership != null)
25-
providerOwnershipMap.filterValues { selectedOwnership in it }.keys.toList()
26-
else providerOwnershipMap.keys.toList()
25+
providerToOwnerships.filterValues { selectedOwnership in it }.keys.toList()
26+
else providerToOwnerships.keys.toList()
2727

28-
val allProviders: List<ProviderId> = providerOwnershipMap.keys.toList()
28+
val allProviders: List<ProviderId> = providerToOwnerships.keys.toList()
2929

3030
val isApplyButtonEnabled = selectedProviders.isNotEmpty()
3131

android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import net.mullvad.mullvadvpn.usecase.NewDeviceNotificationUseCase
4646
import net.mullvad.mullvadvpn.usecase.OutOfTimeUseCase
4747
import net.mullvad.mullvadvpn.usecase.PaymentUseCase
4848
import net.mullvad.mullvadvpn.usecase.PlayPaymentUseCase
49-
import net.mullvad.mullvadvpn.usecase.ProviderOwnershipUseCase
49+
import net.mullvad.mullvadvpn.usecase.ProviderToOwnershipsUseCase
5050
import net.mullvad.mullvadvpn.usecase.SelectedLocationTitleUseCase
5151
import net.mullvad.mullvadvpn.usecase.SelectedLocationUseCase
5252
import net.mullvad.mullvadvpn.usecase.SystemVpnSettingsAvailableUseCase
@@ -156,7 +156,7 @@ val uiModule = module {
156156
single { SystemVpnSettingsAvailableUseCase(androidContext()) }
157157
single { CustomListActionUseCase(get(), get()) }
158158
single { SelectedLocationTitleUseCase(get(), get()) }
159-
single { ProviderOwnershipUseCase(get()) }
159+
single { ProviderToOwnershipsUseCase(get()) }
160160
single { FilterCustomListsRelayItemUseCase(get(), get(), get(), get()) }
161161
single { CustomListsRelayItemUseCase(get(), get()) }
162162
single { CustomListRelayItemsUseCase(get(), get()) }

android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCase.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ typealias ModelOwnership = Ownership
1717

1818
class FilterChipUseCase(
1919
private val relayListFilterRepository: RelayListFilterRepository,
20-
private val providerOwnershipUseCase: ProviderOwnershipUseCase,
20+
private val providerToOwnershipsUseCase: ProviderToOwnershipsUseCase,
2121
private val settingsRepository: SettingsRepository,
2222
private val wireguardConstraintsRepository: WireguardConstraintsRepository,
2323
) {
2424
operator fun invoke(relayListType: RelayListType): Flow<List<FilterChip>> =
2525
combine(
2626
relayListFilterRepository.selectedOwnership,
2727
relayListFilterRepository.selectedProviders,
28-
providerOwnershipUseCase(),
28+
providerToOwnershipsUseCase(),
2929
settingsRepository.settingsUpdates,
3030
wireguardConstraintsRepository.wireguardConstraints,
3131
) {

android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/AvailableProvidersUseCase.kt android/app/src/main/kotlin/net/mullvad/mullvadvpn/usecase/ProviderToOwnershipsUseCase.kt

+1-12
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,7 @@ import net.mullvad.mullvadvpn.lib.model.ProviderId
77
import net.mullvad.mullvadvpn.lib.model.RelayItem
88
import net.mullvad.mullvadvpn.repository.RelayListRepository
99

10-
class AvailableProvidersUseCase(private val relayListRepository: RelayListRepository) {
11-
operator fun invoke(): Flow<List<ProviderId>> =
12-
relayListRepository.relayList.map { relayList ->
13-
relayList
14-
.flatMap(RelayItem.Location.Country::cities)
15-
.flatMap(RelayItem.Location.City::relays)
16-
.map { it.provider }
17-
.distinct()
18-
}
19-
}
20-
21-
class ProviderOwnershipUseCase(private val relayListRepository: RelayListRepository) {
10+
class ProviderToOwnershipsUseCase(private val relayListRepository: RelayListRepository) {
2211
operator fun invoke(): Flow<Map<ProviderId, Set<Ownership>>> =
2312
relayListRepository.relayList.map { relayList ->
2413
relayList

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

+9-9
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import net.mullvad.mullvadvpn.compose.state.toSelectedProviders
1818
import net.mullvad.mullvadvpn.lib.model.Ownership
1919
import net.mullvad.mullvadvpn.lib.model.ProviderId
2020
import net.mullvad.mullvadvpn.repository.RelayListFilterRepository
21-
import net.mullvad.mullvadvpn.usecase.ProviderOwnershipUseCase
21+
import net.mullvad.mullvadvpn.usecase.ProviderToOwnershipsUseCase
2222

2323
class FilterViewModel(
24-
private val providerOwnershipUseCase: ProviderOwnershipUseCase,
24+
private val providerToOwnershipsUseCase: ProviderToOwnershipsUseCase,
2525
private val relayListFilterRepository: RelayListFilterRepository,
2626
) : ViewModel() {
2727
private val _uiSideEffect = Channel<FilterScreenSideEffect>()
@@ -33,11 +33,11 @@ class FilterViewModel(
3333
init {
3434
viewModelScope.launch {
3535
selectedProviders.value =
36-
combine(providerOwnershipUseCase(), relayListFilterRepository.selectedProviders) {
37-
providerOwnershipMap,
36+
combine(providerToOwnershipsUseCase(), relayListFilterRepository.selectedProviders) {
37+
providerToOwnerships,
3838
selectedConstraintProviders ->
3939
selectedConstraintProviders.toSelectedProviders(
40-
providerOwnershipMap.keys.toList()
40+
providerToOwnerships.keys.toList()
4141
)
4242
}
4343
.first()
@@ -48,16 +48,16 @@ class FilterViewModel(
4848
}
4949

5050
val uiState: StateFlow<RelayFilterUiState> =
51-
combine(providerOwnershipUseCase(), selectedOwnership, selectedProviders, ::createState)
51+
combine(providerToOwnershipsUseCase(), selectedOwnership, selectedProviders, ::createState)
5252
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), RelayFilterUiState())
5353

5454
private fun createState(
55-
providerOwnershipMap: Map<ProviderId, Set<Ownership>>,
55+
providerToOwnerships: Map<ProviderId, Set<Ownership>>,
5656
selectedOwnership: Ownership?,
5757
selectedProviders: List<ProviderId>,
5858
): RelayFilterUiState =
5959
RelayFilterUiState(
60-
providerOwnershipMap = providerOwnershipMap,
60+
providerToOwnerships = providerToOwnerships,
6161
selectedOwnership = selectedOwnership,
6262
selectedProviders = selectedProviders,
6363
)
@@ -79,7 +79,7 @@ class FilterViewModel(
7979
viewModelScope.launch {
8080
selectedProviders.value =
8181
if (isChecked) {
82-
providerOwnershipUseCase().first().keys.toList()
82+
providerToOwnershipsUseCase().first().keys.toList()
8383
} else {
8484
emptyList()
8585
}

android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt

+6-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import net.mullvad.mullvadvpn.compose.state.RelayListType
99
import net.mullvad.mullvadvpn.lib.common.test.assertLists
1010
import net.mullvad.mullvadvpn.lib.model.Constraint
1111
import net.mullvad.mullvadvpn.lib.model.Ownership
12-
import net.mullvad.mullvadvpn.lib.model.Provider
1312
import net.mullvad.mullvadvpn.lib.model.ProviderId
1413
import net.mullvad.mullvadvpn.lib.model.Providers
1514
import net.mullvad.mullvadvpn.lib.model.Settings
@@ -23,13 +22,13 @@ import org.junit.jupiter.api.Test
2322
class FilterChipUseCaseTest {
2423

2524
private val mockRelayListFilterRepository: RelayListFilterRepository = mockk()
26-
private val mockProvidersOwnershipUseCase: ProviderOwnershipUseCase = mockk()
25+
private val mockProvidersOwnershipUseCase: ProviderToOwnershipsUseCase = mockk()
2726
private val mockSettingRepository: SettingsRepository = mockk()
2827
private val mockWireguardConstraintsRepository: WireguardConstraintsRepository = mockk()
2928

3029
private val selectedOwnership = MutableStateFlow<Constraint<Ownership>>(Constraint.Any)
3130
private val selectedProviders = MutableStateFlow<Constraint<Providers>>(Constraint.Any)
32-
private val providerOwnershipMap = MutableStateFlow<Map<ProviderId, Set<Ownership>>>(emptyMap())
31+
private val providerToOwnerships = MutableStateFlow<Map<ProviderId, Set<Ownership>>>(emptyMap())
3332
private val settings = MutableStateFlow<Settings>(mockk(relaxed = true))
3433
private val wireguardConstraints = MutableStateFlow<WireguardConstraints>(mockk(relaxed = true))
3534

@@ -39,15 +38,15 @@ class FilterChipUseCaseTest {
3938
fun setUp() {
4039
every { mockRelayListFilterRepository.selectedOwnership } returns selectedOwnership
4140
every { mockRelayListFilterRepository.selectedProviders } returns selectedProviders
42-
every { mockProvidersOwnershipUseCase() } returns providerOwnershipMap
41+
every { mockProvidersOwnershipUseCase() } returns providerToOwnerships
4342
every { mockSettingRepository.settingsUpdates } returns settings
4443
every { mockWireguardConstraintsRepository.wireguardConstraints } returns
4544
wireguardConstraints
4645

4746
filterChipUseCase =
4847
FilterChipUseCase(
4948
relayListFilterRepository = mockRelayListFilterRepository,
50-
providerOwnershipUseCase = mockProvidersOwnershipUseCase,
49+
providerToOwnershipsUseCase = mockProvidersOwnershipUseCase,
5150
settingsRepository = mockSettingRepository,
5251
wireguardConstraintsRepository = mockWireguardConstraintsRepository,
5352
)
@@ -74,7 +73,7 @@ class FilterChipUseCaseTest {
7473
// Arrange
7574
val expectedProviders = Providers(providers = setOf(ProviderId("1"), ProviderId("2")))
7675
selectedProviders.value = Constraint.Only(expectedProviders)
77-
providerOwnershipMap.value =
76+
providerToOwnerships.value =
7877
mapOf(
7978
ProviderId("1") to setOf(Ownership.MullvadOwned),
8079
ProviderId("2") to setOf(Ownership.Rented),
@@ -93,7 +92,7 @@ class FilterChipUseCaseTest {
9392
val expectedOwnership = Ownership.MullvadOwned
9493
selectedProviders.value = Constraint.Only(expectedProviders)
9594
selectedOwnership.value = Constraint.Only(expectedOwnership)
96-
providerOwnershipMap.value =
95+
providerToOwnerships.value =
9796
mapOf(
9897
ProviderId("1") to setOf(Ownership.MullvadOwned),
9998
ProviderId("2") to setOf(Ownership.Rented),

android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ import net.mullvad.mullvadvpn.lib.model.Ownership
2222
import net.mullvad.mullvadvpn.lib.model.ProviderId
2323
import net.mullvad.mullvadvpn.lib.model.Providers
2424
import net.mullvad.mullvadvpn.repository.RelayListFilterRepository
25-
import net.mullvad.mullvadvpn.usecase.ProviderOwnershipUseCase
25+
import net.mullvad.mullvadvpn.usecase.ProviderToOwnershipsUseCase
2626
import org.junit.jupiter.api.AfterEach
2727
import org.junit.jupiter.api.BeforeEach
2828
import org.junit.jupiter.api.Test
2929
import org.junit.jupiter.api.extension.ExtendWith
3030

3131
@ExtendWith(TestCoroutineRule::class)
3232
class FilterViewModelTest {
33-
private val mockProvidersOwnershipUseCase: ProviderOwnershipUseCase = mockk(relaxed = true)
33+
private val mockProvidersOwnershipUseCase: ProviderToOwnershipsUseCase = mockk(relaxed = true)
3434
private val mockRelayListFilterRepository: RelayListFilterRepository = mockk()
3535
private lateinit var viewModel: FilterViewModel
3636
private val selectedOwnership =
@@ -66,7 +66,7 @@ class FilterViewModelTest {
6666
MutableStateFlow(Constraint.Only(Providers(mockSelectedProviders.toHashSet())))
6767
viewModel =
6868
FilterViewModel(
69-
providerOwnershipUseCase = mockProvidersOwnershipUseCase,
69+
providerToOwnershipsUseCase = mockProvidersOwnershipUseCase,
7070
relayListFilterRepository = mockRelayListFilterRepository,
7171
)
7272
}

0 commit comments

Comments
 (0)