From 899cad070060577583cea51f02760937b234337d Mon Sep 17 00:00:00 2001 From: Spirit Date: Fri, 6 Mar 2026 18:19:59 +0000 Subject: [PATCH] Fix coroutine imports in ClippySession --- .../java/farm/hobbs/clippyauto/auto/ClippySession.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/farm/hobbs/clippyauto/auto/ClippySession.kt b/app/src/main/java/farm/hobbs/clippyauto/auto/ClippySession.kt index 1a40fa4..a027ec5 100644 --- a/app/src/main/java/farm/hobbs/clippyauto/auto/ClippySession.kt +++ b/app/src/main/java/farm/hobbs/clippyauto/auto/ClippySession.kt @@ -7,6 +7,11 @@ import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import farm.hobbs.clippyauto.VoiceLoop import farm.hobbs.clippyauto.matrix.MatrixRestClient +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * Android Auto session — manages the lifecycle of a Clippy voice interaction. @@ -16,6 +21,7 @@ class ClippySession : Session(), DefaultLifecycleObserver { private var voiceLoop: VoiceLoop? = null private var screen: ClippyScreen? = null + private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) // TODO: Move to SharedPreferences via SetupActivity companion object { @@ -42,15 +48,15 @@ class ClippySession : Session(), DefaultLifecycleObserver { matrixClient = matrixClient, roomId = ROOM_ID, clippyUserId = CLIPPY_USER, - onStateChange = { state, status -> + onStateChange = { _, status -> screen?.updateStatus(status) } ) // Login then initialize voice loop - kotlinx.coroutines.CoroutineScope(kotlinx.coroutines.Dispatchers.IO).launch { + scope.launch { val loggedIn = matrixClient.login(MATRIX_USER, MATRIX_PASS) - kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.Main) { + withContext(Dispatchers.Main) { if (loggedIn) { voiceLoop?.initialize() voiceLoop?.startSession()