diff --git a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java index 363afd35..dc7083c5 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java @@ -1786,14 +1786,14 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS // Keep awake getLock(this).acquire(); + // Get state + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean enabled = prefs.getBoolean("enabled", false); + // Handle service restart if (intent == null) { Log.i(TAG, "Restart"); - // Get enabled - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - boolean enabled = prefs.getBoolean("enabled", false); - // Recreate intent intent = new Intent(this, ServiceSinkhole.class); intent.putExtra(EXTRA_COMMAND, enabled ? Command.start : Command.stop); @@ -1803,6 +1803,8 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS intent.putExtra(EXTRA_COMMAND, Command.householding); Command cmd = (Command) intent.getSerializableExtra(EXTRA_COMMAND); + if (cmd == null) + intent.putExtra(EXTRA_COMMAND, enabled ? Command.start : Command.stop); String reason = intent.getStringExtra(EXTRA_REASON); Log.i(TAG, "Start intent=" + intent + " command=" + cmd + " reason=" + reason + " vpn=" + (vpn != null) + " user=" + (Process.myUid() / 100000));