summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-06-16 13:44:57 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-06-16 23:42:44 +0200
commit529eb00ff3eb48b337d2bd23429aea605d7e2aac (patch)
tree10cbfe6c8034d42422561f07c3590b68ccde436d /android
parent10c14ed1f221d6abe205ff74a72161f2035d8da2 (diff)
downloadmullvadvpn-529eb00ff3eb48b337d2bd23429aea605d7e2aac.tar.xz
mullvadvpn-529eb00ff3eb48b337d2bd23429aea605d7e2aac.zip
Sort split tunneling apps in the correct order
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelState.kt3
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt19
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 =