diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index acfa68b502..4af4d7d72d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -50,6 +50,7 @@ class MainActivity : FragmentActivity() { val locationInfoCache = LocationInfoCache(daemon, relayListListener) val accountCache = AccountCache(settingsListener, daemon) + private var shouldStopService = false private var waitForDaemonJob: Job? = null private val serviceConnection = object : ServiceConnection { @@ -106,6 +107,10 @@ class MainActivity : FragmentActivity() { } override fun onStop() { + if (shouldStopService) { + runBlocking { service.await().stop() } + } + unbindService(serviceConnection) super.onStop() @@ -153,6 +158,11 @@ class MainActivity : FragmentActivity() { return request } + fun quit() { + shouldStopService = true + finishAndRemoveTask() + } + private fun addInitialFragment() { supportFragmentManager?.beginTransaction()?.apply { add(R.id.main_fragment, LaunchFragment()) |
