fix: loop in android

This commit is contained in:
hiddify-com
2024-07-31 21:40:14 +02:00
parent 52fa311df5
commit 36e2bca843

View File

@@ -129,11 +129,13 @@ class VPNService : VpnService(), PlatformInterfaceWrapper {
if (Settings.perAppProxyMode == PerAppProxyMode.INCLUDE) { if (Settings.perAppProxyMode == PerAppProxyMode.INCLUDE) {
appList.forEach { appList.forEach {
try { try {
builder.addAllowedApplication(it) if (it != packageName)
builder.addAllowedApplication(it)
} catch (_: NameNotFoundException) { } catch (_: NameNotFoundException) {
} }
} }
builder.addAllowedApplication(packageName)
} else { } else {
appList.forEach { appList.forEach {
try { try {
@@ -141,26 +143,38 @@ class VPNService : VpnService(), PlatformInterfaceWrapper {
} catch (_: NameNotFoundException) { } catch (_: NameNotFoundException) {
} }
} }
try {
builder.addDisallowedApplication(packageName)
} catch (_: NameNotFoundException) {
}
} }
} else { } else {
val includePackage = options.includePackage val includePackage = options.includePackage
if (includePackage.hasNext()) { if (includePackage.hasNext()) {
while (includePackage.hasNext()) { while (includePackage.hasNext()) {
try { try {
builder.addAllowedApplication(includePackage.next()) val it = includePackage.next()
if (it != packageName)
builder.addAllowedApplication(it)
} catch (_: NameNotFoundException) { } catch (_: NameNotFoundException) {
} }
} }
} } else {
val excludePackage = options.excludePackage val excludePackage = options.excludePackage
if (excludePackage.hasNext()) { if (excludePackage.hasNext()) {
while (excludePackage.hasNext()) { while (excludePackage.hasNext()) {
try { try {
builder.addDisallowedApplication(excludePackage.next()) builder.addDisallowedApplication(excludePackage.next())
} catch (_: NameNotFoundException) { } catch (_: NameNotFoundException) {
}
} }
} }
try {
builder.addDisallowedApplication(packageName)
} catch (_: NameNotFoundException) {
}
} }
} }
} }