diff options
| author | cyberta <cyberta@riseup.net> | 2022-12-16 01:05:57 +0000 |
|---|---|---|
| committer | cyberta <cyberta@riseup.net> | 2022-12-16 01:05:57 +0000 |
| commit | b4b5d98fe0bc0498773870990df2442f800158c4 (patch) | |
| tree | 739de8a232d539804f8b61143879505271f52858 /app/src/main/java/se/leap/bitmaskclient/eip | |
| parent | 62d9effae8fe5983056a7b225535ec763f03d87b (diff) | |
| parent | d988fb9e977a78c31fa902a99308d97d95b8487b (diff) | |
Merge branch 'rc_review' into 'master'
Bugfixes after Release Candidate Review
Closes #9121, #8934, and #9052
See merge request leap/bitmask_android!226
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip')
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/EIP.java | 10 | ||||
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/EipStatus.java | 7 |
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: |
