diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/SplitTunnelScreen.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/SplitTunnelScreen.kt index ad06f240..3fcd487d 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/SplitTunnelScreen.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/SplitTunnelScreen.kt @@ -36,13 +36,13 @@ fun SplitTunnelScreen(tunnelId: Int, viewModel: SplitTunnelViewModel = hiltViewM val conf by remember { derivedStateOf { tunnelConf.toAmConfig() } } var splitConfig by remember { - mutableStateOf>>( + mutableStateOf( when { conf.`interface`.excludedApplications.isNotEmpty() -> Pair(SplitOption.EXCLUDE, conf.`interface`.excludedApplications.toSet()) conf.`interface`.includedApplications.isNotEmpty() -> Pair(SplitOption.INCLUDE, conf.`interface`.includedApplications.toSet()) - else -> Pair(SplitOption.ALL, emptySet()) + else -> Pair(SplitOption.ALL, emptySet()) } ) } diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/components/AppListSection.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/components/AppListSection.kt index 2b38495d..2d84f1b6 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/components/AppListSection.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/ui/screens/tunnels/splittunnel/components/AppListSection.kt @@ -31,6 +31,7 @@ fun AppListSection( ) { var query by remember { mutableStateOf("") } + val locale = remember { Locale.getDefault() } val filteredAndSortedPackages by remember { derivedStateOf { @@ -40,7 +41,12 @@ fun AppListSection( pkg.name.contains(query, ignoreCase = true) || pkg.packageName.contains(query, ignoreCase = true) } - .sortedBy { pkg -> pkg.name.lowercase(Locale.getDefault()) } + .sortedWith( + compareByDescending { + splitConfig.second.contains(it.packageName) + } + .thenBy { it.name.lowercase(locale) } + ) } }