diff --git a/android/src/main/java/com/tailscale/ipn/App.java b/android/src/main/java/com/tailscale/ipn/App.java index 98b6cbf..ed15131 100644 --- a/android/src/main/java/com/tailscale/ipn/App.java +++ b/android/src/main/java/com/tailscale/ipn/App.java @@ -106,9 +106,6 @@ public class App extends Application { NetworkInfo active = cMgr.getActiveNetworkInfo(); // https://developer.android.com/training/monitoring-device-state/connectivity-status-type boolean isConnected = active != null && active.isConnectedOrConnecting(); - if (isConnected) { - ((App)getApplicationContext()).autoConnect = false; - } onConnectivityChanged(isConnected); } diff --git a/android/src/main/java/com/tailscale/ipn/IPNService.java b/android/src/main/java/com/tailscale/ipn/IPNService.java index a8458f0..fe23ae4 100644 --- a/android/src/main/java/com/tailscale/ipn/IPNService.java +++ b/android/src/main/java/com/tailscale/ipn/IPNService.java @@ -22,6 +22,7 @@ public class IPNService extends VpnService { @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null && ACTION_DISCONNECT.equals(intent.getAction())) { + ((App)getApplicationContext()).autoConnect = false; close(); return START_NOT_STICKY; } diff --git a/android/src/main/java/com/tailscale/ipn/StartVPNWorker.java b/android/src/main/java/com/tailscale/ipn/StartVPNWorker.java index 8fbe15f..e4a0b4d 100644 --- a/android/src/main/java/com/tailscale/ipn/StartVPNWorker.java +++ b/android/src/main/java/com/tailscale/ipn/StartVPNWorker.java @@ -4,16 +4,16 @@ package com.tailscale.ipn; -import androidx.work.Worker; -import android.content.Context; -import androidx.work.WorkerParameters; -import android.net.VpnService; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; +import android.content.Context; import android.content.Intent; +import android.net.VpnService; import android.os.Build; +import androidx.work.Worker; +import androidx.work.WorkerParameters; public final class StartVPNWorker extends Worker { @@ -24,8 +24,9 @@ public final class StartVPNWorker extends Worker { } @Override public Result doWork() { - // We will start the VPN from the background App app = ((App)getApplicationContext()); + + // We will start the VPN from the background app.autoConnect = true; // We need to make sure we prepare the VPN Service, just in case it isn't prepared.