diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-23 14:34:54 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-29 11:13:17 +0000 |
| commit | 2d045a514ff31857884da001a953150d17909e2d (patch) | |
| tree | cef7a909b1e9615353c8e7f3afbd73cd32b15697 /android | |
| parent | f9b820e512511fa64243305f54cb880271f528f9 (diff) | |
| download | mullvadvpn-2d045a514ff31857884da001a953150d17909e2d.tar.xz mullvadvpn-2d045a514ff31857884da001a953150d17909e2d.zip | |
Separate `MainActivity` and `Context` usage
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 5 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt | 17 |
2 files changed, 17 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index 8bb7b5945d..d0900cee15 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -37,7 +37,7 @@ class MainActivity : FragmentActivity() { private set var appVersionInfoCache = AppVersionInfoCache(this) - val connectionProxy = ConnectionProxy(this) + val connectionProxy = ConnectionProxy(this, daemon) val keyStatusListener = KeyStatusListener(daemon) val problemReport = MullvadProblemReport() var settingsListener = SettingsListener(this) @@ -77,6 +77,7 @@ class MainActivity : FragmentActivity() { } appVersionInfoCache.onCreate() + connectionProxy.mainActivity = this } override fun onStart() { @@ -107,6 +108,8 @@ class MainActivity : FragmentActivity() { } override fun onDestroy() { + connectionProxy.mainActivity = null + accountCache.onDestroy() appVersionInfoCache.onDestroy() keyStatusListener.onDestroy() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt index 3fb51c61c9..5aef547a02 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -1,19 +1,22 @@ package net.mullvad.mullvadvpn.dataproxy +import android.content.Context import android.net.VpnService import kotlinx.coroutines.launch import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job import net.mullvad.mullvadvpn.MainActivity +import net.mullvad.mullvadvpn.MullvadDaemon import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState -class ConnectionProxy(val parentActivity: MainActivity) { - val daemon = parentActivity.daemon +class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>) { + var mainActivity: MainActivity? = null private var activeAction: Job? = null @@ -106,14 +109,20 @@ class ConnectionProxy(val parentActivity: MainActivity) { } private fun requestVpnPermission() { - val intent = VpnService.prepare(parentActivity) + val intent = VpnService.prepare(context) vpnPermission = CompletableDeferred() if (intent == null) { vpnPermission.complete(true) } else { - parentActivity.requestVpnPermission(intent) + val activity = mainActivity + + if (activity != null) { + activity.requestVpnPermission(intent) + } else { + vpnPermission.complete(false) + } } } |
