diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-09-11 15:28:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-09-13 12:14:19 +0000 |
| commit | e18eb7b62d24687b8f5409140d90a24e86cb8f05 (patch) | |
| tree | 0a33b53e7010b1ebae5097d8d4e437aa3e28a47e /android | |
| parent | f664e5e245804754b15a086d810c81a2f376da0d (diff) | |
| download | mullvadvpn-e18eb7b62d24687b8f5409140d90a24e86cb8f05.tar.xz mullvadvpn-e18eb7b62d24687b8f5409140d90a24e86cb8f05.zip | |
Refactor how `MainActivity` quits
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index fff27be8b5..ebaeb76538 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -49,7 +49,8 @@ class MainActivity : FragmentActivity() { val locationInfoCache = LocationInfoCache(daemon, relayListListener) val accountCache = AccountCache(settingsListener, daemon) - private var shouldStopService = false + private var quitJob: Job? = null + private var serviceToStop: MullvadVpnService.LocalBinder? = null private var waitForDaemonJob: Job? = null private val serviceConnection = object : ServiceConnection { @@ -101,10 +102,9 @@ class MainActivity : FragmentActivity() { } override fun onStop() { - if (shouldStopService) { - runBlocking { service.await().stop() } - } + quitJob?.cancel() + serviceToStop?.apply { stop() } unbindService(serviceConnection) super.onStop() @@ -143,9 +143,12 @@ class MainActivity : FragmentActivity() { startActivityForResult(intent, 0) } - fun quit() { - shouldStopService = true - finishAndRemoveTask() + fun quit() { + quitJob?.cancel() + quitJob = GlobalScope.launch(Dispatchers.Main) { + serviceToStop = service.await() + finishAndRemoveTask() + } } private fun addInitialFragment() { |
