summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt10
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())