diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-06-16 13:44:57 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-06-16 23:42:44 +0200 |
| commit | 529eb00ff3eb48b337d2bd23429aea605d7e2aac (patch) | |
| tree | 10cbfe6c8034d42422561f07c3590b68ccde436d /android/app | |
| parent | 10c14ed1f221d6abe205ff74a72161f2035d8da2 (diff) | |
| download | mullvadvpn-529eb00ff3eb48b337d2bd23429aea605d7e2aac.tar.xz mullvadvpn-529eb00ff3eb48b337d2bd23429aea605d7e2aac.zip | |
Sort split tunneling apps in the correct order
Diffstat (limited to 'android/app')
2 files changed, 20 insertions, 2 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelState.kt index 9dda1ddaff..1f23b5f4b9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelState.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelState.kt @@ -37,7 +37,6 @@ data class SplitTunnelingViewModelState( } companion object { - private val descendingByNameComparator = - compareByDescending<AppData> { it.name.lowercase() } + private val descendingByNameComparator = compareBy<AppData> { it.name.lowercase() } } } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt index bfd1cb055c..1a4313ef6f 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt @@ -183,6 +183,25 @@ class SplitTunnelingViewModelTest { } } + @Test + fun `apps should be sorted by name in descending order`() = runTest { + // Arrange + val app1 = AppData("com.example.app1", 0, "App A") + val app2 = AppData("com.example.app2", 0, "App B") + val app3 = AppData("com.example.app3", 0, "App Z") + val appList = listOf(app2, app1, app3) + val expectedState = + SplitTunnelingUiState.ShowAppList( + enabled = true, + includedApps = listOf(app1, app2, app3), + showSystemApps = false, + ) + initTestSubject(appList = appList) + + // Assert + testSubject.uiState.test { assertEquals(expectedState, awaitItem()) } + } + private fun initTestSubject(appList: List<AppData>) { every { mockedApplicationsProvider.getAppsList() } returns appList testSubject = |
