summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-31 19:31:40 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-31 19:33:57 +0000
commit3c54ec3db3e1d5d6d39171e25c9d2a6e36b72fe2 (patch)
tree79e0ce0d3fef0fd3febaf6be7a5ab448ac7b00c6
parentd20dd34265a2661c662c19749c182f76eecc44ab (diff)
downloadmullvadvpn-3c54ec3db3e1d5d6d39171e25c9d2a6e36b72fe2.tar.xz
mullvadvpn-3c54ec3db3e1d5d6d39171e25c9d2a6e36b72fe2.zip
Add `MainActivity::quit` to also stop the service
-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())