summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
index 9e42378b..39aaef57 100644
--- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
+++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
@@ -20,6 +20,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutManager;
import android.content.res.Configuration;
@@ -228,8 +229,22 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
endVpnService();
}
+ private boolean isAlwaysActiveEnabled()
+ {
+ SharedPreferences prefs = Preferences.getDefaultSharedPreferences(this);
+ return prefs.getBoolean("restartvpnonboot", false);
+ }
+
+ boolean isVpnAlwaysOnEnabled() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ return isAlwaysOn();
+ }
+ return false;
+ }
+
+
private void endVpnService() {
- if (!isAlwaysOn()) {
+ if (!isVpnAlwaysOnEnabled() && !isAlwaysActiveEnabled()) {
/* if we should be an always on VPN, keep the timer running */
keepVPNAlive.unscheduleKeepVPNAliveJobService(this);
}
@@ -883,6 +898,8 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
/* On Tiramisu we install the routes exactly like promised */
VpnStatus.logDebug(R.string.routes_debug, TextUtils.join(", ", positiveIPv4Routes), TextUtils.join(", ", positiveIPv6Routes));
}
+ //VpnStatus.logInfo(String.format("Always active %s", isAlwaysOn() ? "on" : "off"));
+
setAllowedVpnPackages(builder);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
// VPN always uses the default network