From 36e2bca8432201ad891f5aac84f9089f00d9de0d Mon Sep 17 00:00:00 2001 From: hiddify-com <114227601+hiddify-com@users.noreply.github.com> Date: Wed, 31 Jul 2024 21:40:14 +0200 Subject: [PATCH] fix: loop in android --- .../com/hiddify/hiddify/bg/VPNService.kt | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt index 7830c1e2..2b0dc04a 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt @@ -129,11 +129,13 @@ class VPNService : VpnService(), PlatformInterfaceWrapper { if (Settings.perAppProxyMode == PerAppProxyMode.INCLUDE) { appList.forEach { try { - builder.addAllowedApplication(it) + if (it != packageName) + builder.addAllowedApplication(it) } catch (_: NameNotFoundException) { } } - builder.addAllowedApplication(packageName) + + } else { appList.forEach { try { @@ -141,26 +143,38 @@ class VPNService : VpnService(), PlatformInterfaceWrapper { } catch (_: NameNotFoundException) { } } + try { + builder.addDisallowedApplication(packageName) + } catch (_: NameNotFoundException) { + } + } } else { val includePackage = options.includePackage if (includePackage.hasNext()) { while (includePackage.hasNext()) { try { - builder.addAllowedApplication(includePackage.next()) + val it = includePackage.next() + if (it != packageName) + builder.addAllowedApplication(it) } catch (_: NameNotFoundException) { } } - } + } else { - val excludePackage = options.excludePackage - if (excludePackage.hasNext()) { - while (excludePackage.hasNext()) { - try { - builder.addDisallowedApplication(excludePackage.next()) - } catch (_: NameNotFoundException) { + val excludePackage = options.excludePackage + if (excludePackage.hasNext()) { + while (excludePackage.hasNext()) { + try { + builder.addDisallowedApplication(excludePackage.next()) + } catch (_: NameNotFoundException) { + } } } + try { + builder.addDisallowedApplication(packageName) + } catch (_: NameNotFoundException) { + } } } }