Skip to content

Commit 99cbc44

Browse files
authored
allow change access packages when vpn enabled (#560)
1 parent 4ece5c4 commit 99cbc44

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

app/src/main/java/com/github/kr328/clash/AccessControlActivity.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import com.github.kr328.clash.design.AccessControlDesign
1111
import com.github.kr328.clash.design.model.AppInfo
1212
import com.github.kr328.clash.design.util.toAppInfo
1313
import com.github.kr328.clash.service.store.ServiceStore
14+
import com.github.kr328.clash.util.startClashService
15+
import com.github.kr328.clash.util.stopClashService
1416
import kotlinx.coroutines.Dispatchers
17+
import kotlinx.coroutines.delay
1518
import kotlinx.coroutines.isActive
1619
import kotlinx.coroutines.selects.select
1720
import kotlinx.coroutines.withContext
@@ -26,7 +29,15 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
2629

2730
defer {
2831
withContext(Dispatchers.IO) {
32+
val changed = selected != service.accessControlPackages
2933
service.accessControlPackages = selected
34+
if (clashRunning && changed) {
35+
stopClashService()
36+
while (clashRunning) {
37+
delay(200)
38+
}
39+
startClashService()
40+
}
3041
}
3142
}
3243

design/src/main/java/com/github/kr328/clash/design/NetworkSettingsDesign.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,6 @@ class NetworkSettingsDesign(
128128
clicked {
129129
requests.trySend(Request.StartAccessControlList)
130130
}
131-
132-
vpnDependencies.add(this)
133131
}
134132

135133
if (running) {

0 commit comments

Comments
 (0)