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