summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/eip
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/EIP.java10
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java7
2 files changed, 15 insertions, 2 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
index b3efd21f..88cdc715 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
@@ -594,7 +594,7 @@ public final class EIP extends JobIntentService implements Observer {
}
public static class VoidVpnServiceConnection implements Closeable {
- private final Context context;
+ private Context context;
private ServiceConnection serviceConnection;
private VoidVpnService voidVpnService;
@@ -608,6 +608,9 @@ public final class EIP extends JobIntentService implements Observer {
@Override
public void close() {
context.unbindService(serviceConnection);
+ serviceConnection = null;
+ voidVpnService = null;
+ context = null;
}
private void initSynchronizedServiceConnection(final Context context) throws InterruptedException {
@@ -649,7 +652,7 @@ public final class EIP extends JobIntentService implements Observer {
*/
@WorkerThread
public static class OpenVpnServiceConnection implements Closeable {
- private final Context context;
+ private Context context;
private ServiceConnection serviceConnection;
private IOpenVPNServiceInternal service;
@@ -686,6 +689,9 @@ public final class EIP extends JobIntentService implements Observer {
@Override public void close() {
context.unbindService(serviceConnection);
+ serviceConnection = null;
+ service = null;
+ context = null;
}
public IOpenVPNServiceInternal getService() {
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java b/app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java
index c9cf6041..9244f531 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java
@@ -16,6 +16,8 @@
*/
package se.leap.bitmaskclient.eip;
+import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_NONETWORK;
+
import android.content.Context;
import android.os.AsyncTask;
import androidx.annotation.VisibleForTesting;
@@ -92,6 +94,11 @@ public class EipStatus extends Observable implements VpnStatus.StateListener {
return "RECONNECTING".equals(currentStatus.getState());
}
+ public boolean isVPNRunningWithoutNetwork() {
+ return currentStatus.getLevel() == LEVEL_NONETWORK &&
+ !"NO_PROCESS".equals(currentStatus.getState());
+ }
+
private void setEipLevel(ConnectionStatus level) {
switch (level) {
case LEVEL_CONNECTED: