diff options
| author | Albin <albin@mullvad.net> | 2022-06-23 11:52:12 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-06-27 17:21:36 +0200 |
| commit | 9258a8825a9ffc5b30faad6700d71dde87680554 (patch) | |
| tree | ca3802d449729caab09a57138f15e1921a29d56e | |
| parent | 5b9ac64d7cf3eba61612b0433a986bb5a49dc6a3 (diff) | |
| download | mullvadvpn-9258a8825a9ffc5b30faad6700d71dde87680554.tar.xz mullvadvpn-9258a8825a9ffc5b30faad6700d71dde87680554.zip | |
Improve tile coroutine scope/job handling
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt index 3fbc627b7e..6cba6a04a0 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt @@ -6,10 +6,9 @@ import android.os.Build import android.service.quicksettings.Tile import android.service.quicksettings.TileService import kotlin.properties.Delegates.observable -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.Job import kotlinx.coroutines.MainScope -import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.launch @@ -24,7 +23,8 @@ class MullvadTileService : TileService() { updateTileState() } - private lateinit var scope: CoroutineScope + private val scope = MainScope() + private var listenerJob: Job? = null private lateinit var securedIcon: Icon private lateinit var unsecuredIcon: Icon @@ -36,14 +36,6 @@ class MullvadTileService : TileService() { unsecuredIcon = Icon.createWithResource(this, R.drawable.small_logo_black) } - override fun onStartListening() { - super.onStartListening() - - scope = MainScope() - - scope.launch { listenToTunnelState() } - } - override fun onClick() { super.onClick() @@ -58,9 +50,12 @@ class MullvadTileService : TileService() { } } + override fun onStartListening() { + listenerJob = scope.launch { listenToTunnelState() } + } + override fun onStopListening() { - scope.cancel() - super.onStopListening() + listenerJob?.cancel() } @OptIn(FlowPreview::class) |
