diff --git a/android/src/main/java/com/tailscale/ipn/MainActivity.kt b/android/src/main/java/com/tailscale/ipn/MainActivity.kt
index 8f72dcf..04b4724 100644
--- a/android/src/main/java/com/tailscale/ipn/MainActivity.kt
+++ b/android/src/main/java/com/tailscale/ipn/MainActivity.kt
@@ -154,6 +154,15 @@ class MainActivity : ComponentActivity() {
} else {
TSLog.d("VpnPermission", "Permission was denied by the user")
vpnViewModel.setVpnPrepared(false)
+
+ AlertDialog.Builder(this)
+ .setTitle(R.string.vpn_permission_needed)
+ .setMessage(R.string.vpn_explainer)
+ .setPositiveButton(R.string.try_again) { _, _ ->
+ viewModel.showVPNPermissionLauncherIfUnauthorized()
+ }
+ .setNegativeButton(R.string.cancel, null)
+ .show()
}
}
}
diff --git a/android/src/main/java/com/tailscale/ipn/ui/viewModel/MainViewModel.kt b/android/src/main/java/com/tailscale/ipn/ui/viewModel/MainViewModel.kt
index 332c77e..9a6f3e7 100644
--- a/android/src/main/java/com/tailscale/ipn/ui/viewModel/MainViewModel.kt
+++ b/android/src/main/java/com/tailscale/ipn/ui/viewModel/MainViewModel.kt
@@ -203,6 +203,7 @@ class MainViewModel(private val vpnViewModel: VpnViewModel) : IpnViewModel() {
fun showVPNPermissionLauncherIfUnauthorized() {
val vpnIntent = VpnService.prepare(App.get())
+ TSLog.d("VpnPermissions", "vpnIntent=$vpnIntent")
if (vpnIntent != null) {
vpnPermissionLauncher?.launch(vpnIntent)
} else {
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index 723c4ba..25ec4f1 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -26,6 +26,8 @@
Clear search
Off
On
+ Try again
+ Cancel
Tailscale
@@ -314,7 +316,6 @@
VPN permission denied
Only one VPN can be active, and it appears another is already running. Before starting Tailscale, disable the other VPN.
Go to Settings
- Cancel
Subnet routes
Advertise routes to machines that are not running Tailscale to make them available in your tailnet. Routes must be approved in the admin console.
Open KB Article
@@ -334,6 +335,10 @@
Hostname
Failed to save
+
+ VPN permission needed
+ Tailscale needs VPN access, but it looks like your device may not show VPN settings. If you are using another VPN app or have work policies, disable them first, then try again.
+
Taildrop Directory
You have not selected a directory for incoming taildrop transfers. Please select or create a target directory.