diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-25 21:37:07 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-29 18:42:42 +0000 |
| commit | 0d93d93bcbaebbbf2d18efda97b1e364a44dd34c (patch) | |
| tree | 5b74445dea5bd8e4b9c81bc2e2dff149fde40767 | |
| parent | ed825987cdc365898d54c2f2ebf0511637cbda41 (diff) | |
| download | mullvadvpn-0d93d93bcbaebbbf2d18efda97b1e364a44dd34c.tar.xz mullvadvpn-0d93d93bcbaebbbf2d18efda97b1e364a44dd34c.zip | |
Remove `ConnectivityListener` to improve speed
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectivityListener.kt | 59 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt | 7 |
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) |
