diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-21 02:15:04 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-24 11:56:00 +0000 |
| commit | c02e97c140dd3053fd7d8c0979dc30d9cc353703 (patch) | |
| tree | f06c395a03b2b48072688c6d48ba201ee3d372f5 /android/src | |
| parent | 9ea088a3f8d38187e79ef5a91d7740638ad7eb03 (diff) | |
| download | mullvadvpn-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.kt | 33 |
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) { |
