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.