From b77d1fc82e9c0b8c14c545e350d22efabf130d97 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:43:45 +0900 Subject: [PATCH] VpnService policy --- .../nekohasekai/sagernet/ui/MainActivity.kt | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/ui/MainActivity.kt b/app/src/main/java/io/nekohasekai/sagernet/ui/MainActivity.kt index 387c8c80..b0ce7c7d 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/ui/MainActivity.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/ui/MainActivity.kt @@ -37,6 +37,7 @@ import io.nekohasekai.sagernet.group.GroupUpdater import io.nekohasekai.sagernet.ktx.* import io.nekohasekai.sagernet.widget.ListHolderListener import moe.matsuri.nb4a.utils.Util +import java.io.File import java.util.* class MainActivity : ThemedActivity(), @@ -97,6 +98,8 @@ class MainActivity : ThemedActivity(), onNewIntent(intent) } + refreshNavMenu(DataStore.enableClashAPI) + // sdk 33 notification if (Build.VERSION.SDK_INT >= 33) { val checkPermission = @@ -109,7 +112,24 @@ class MainActivity : ThemedActivity(), } } - refreshNavMenu(DataStore.enableClashAPI) + // consent + try { + val f = File(application.filesDir, "consent") + if (!f.exists()) { + MaterialAlertDialogBuilder(this@MainActivity) + .setTitle("VpnService policy") + .setMessage("Since the main function of this application is VPN, it must use VpnService.") + .setPositiveButton(R.string.yes) { _, _ -> + f.createNewFile() + } + .setNegativeButton(android.R.string.cancel) { _, _ -> + finish() + } + .show() + } + } catch (e: Exception) { + Logs.w(e) + } } fun refreshNavMenu(clashApi: Boolean) {