summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-21 02:15:04 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-24 11:56:00 +0000
commitc02e97c140dd3053fd7d8c0979dc30d9cc353703 (patch)
treef06c395a03b2b48072688c6d48ba201ee3d372f5 /android/src
parent9ea088a3f8d38187e79ef5a91d7740638ad7eb03 (diff)
downloadmullvadvpn-c02e97c140dd3053fd7d8c0979dc30d9cc353703.tar.xz
mullvadvpn-c02e97c140dd3053fd7d8c0979dc30d9cc353703.zip
Refactor to simplify daemon lifecycle in service
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt33
1 files changed, 6 insertions, 27 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
index 176a9c7f7f..c3749c17f4 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -44,7 +44,6 @@ class MullvadVpnService : TalpidVpnService() {
private var isStopping = false
private var shouldStop = false
- private var startDaemonJob: Job? = null
private var setUpDaemonJob: Job? = null
private var instance by observable<ServiceInstance?>(null) { _, oldInstance, newInstance ->
@@ -104,7 +103,7 @@ class MullvadVpnService : TalpidVpnService() {
handleDaemonInstance(daemon)
}
- setUp()
+ daemonInstance.start()
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
@@ -173,7 +172,6 @@ class MullvadVpnService : TalpidVpnService() {
override fun onDestroy() {
Log.d(TAG, "Service has stopped")
- tearDown()
notificationManager.onDestroy()
daemonInstance.onDestroy()
super.onDestroy()
@@ -214,16 +212,6 @@ class MullvadVpnService : TalpidVpnService() {
}
}
- private fun setUp() {
- startDaemonJob?.cancel()
- startDaemonJob = startDaemon()
- }
-
- private fun startDaemon() = GlobalScope.launch(Dispatchers.Default) {
- Log.d(TAG, "Starting daemon")
- daemonInstance.start()
- }
-
private fun setUpDaemon(daemon: MullvadDaemon) = GlobalScope.launch(Dispatchers.Default) {
val settings = daemon.getSettings()
@@ -260,25 +248,16 @@ class MullvadVpnService : TalpidVpnService() {
Log.d(TAG, "Stopping service")
isStopping = true
shouldStop = true
- stopDaemon()
- stopSelf()
- }
-
- private fun stopDaemon() {
- Log.d(TAG, "Stopping daemon")
- startDaemonJob?.cancel()
- setUpDaemonJob?.cancel()
daemonInstance.stop()
- }
-
- private fun tearDown() {
- stopDaemon()
+ stopSelf()
}
private fun restart() {
Log.d(TAG, "Restarting service")
- tearDown()
- setUp()
+ daemonInstance.apply {
+ stop()
+ start()
+ }
}
private fun handlePendingAction(connectionProxy: ConnectionProxy, settings: Settings) {