summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectivityListener.kt59
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt7
2 files changed, 0 insertions, 66 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectivityListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectivityListener.kt
deleted file mode 100644
index cf212762aa..0000000000
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectivityListener.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package net.mullvad.mullvadvpn
-
-import kotlinx.coroutines.CompletableDeferred
-
-import android.content.BroadcastReceiver
-import android.content.Context
-import android.content.Intent
-import android.content.IntentFilter
-import android.net.ConnectivityManager
-import android.net.NetworkInfo
-import android.net.NetworkInfo.DetailedState
-
-class ConnectivityListener : BroadcastReceiver() {
- var vpnDisconnected = CompletableDeferred<Unit>()
- private set
-
- fun register(context: Context) {
- val intentFilter = IntentFilter()
-
- intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION)
- context.registerReceiver(this, intentFilter)
-
- checkInitialState(context)
- }
-
- fun unregister(context: Context) {
- context.unregisterReceiver(this)
- }
-
- override fun onReceive(context: Context, intent: Intent) {
- val networkInfo =
- intent.getParcelableExtra<NetworkInfo>(ConnectivityManager.EXTRA_NETWORK_INFO)
-
- if (networkInfo.type == ConnectivityManager.TYPE_VPN) {
- if (networkInfo.detailedState == DetailedState.DISCONNECTED) {
- vpnDisconnected.complete(Unit)
- } else if (networkInfo.detailedState == DetailedState.CONNECTED) {
- vpnDisconnected.cancel()
- vpnDisconnected = CompletableDeferred<Unit>()
- }
- }
- }
-
- private fun checkInitialState(context: Context) {
- val connectivityManager =
- context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
-
- val isVpnConnected = connectivityManager.allNetworks
- .map({ network -> connectivityManager.getNetworkInfo(network) })
- .any({ networkInfo ->
- networkInfo.type == ConnectivityManager.TYPE_VPN
- && networkInfo.detailedState == DetailedState.CONNECTED
- })
-
- if (!isVpnConnected) {
- vpnDisconnected.complete(Unit)
- }
- }
-}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt
index d8c340bcd2..bc0c317cf2 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt
@@ -18,7 +18,6 @@ import android.os.IBinder
import net.mullvad.mullvadvpn.model.TunConfig
class MullvadVpnService : VpnService() {
- private val connectivityListener = ConnectivityListener()
private val created = CompletableDeferred<Unit>()
private val binder = LocalBinder()
@@ -26,7 +25,6 @@ class MullvadVpnService : VpnService() {
override fun onCreate() {
created.complete(Unit)
- connectivityListener.register(this)
}
override fun onBind(intent: Intent): IBinder {
@@ -34,16 +32,11 @@ class MullvadVpnService : VpnService() {
}
override fun onDestroy() {
- connectivityListener.unregister(this)
daemon.cancel()
created.cancel()
}
fun createTun(config: TunConfig): Int {
- runBlocking {
- connectivityListener.vpnDisconnected.await()
- }
-
val builder = Builder().apply {
for (address in config.addresses) {
addAddress(address, 32)