Subsequent blind fix for runBlocking Interrupted Exceptions

We fix this slightly mysterious issue by using a good old
android handler instead of the fancy coroutine stuff.

Bug: 280075104
Test: Exercised existing KeyguardPreviewRenderer use cases
Change-Id: I56b818c7b13e238bad025cab76139f5a0c7ffe7b
This commit is contained in:
Hawkwood Glazier
2023-05-05 15:04:24 +00:00
parent 7e39238a1f
commit 82ea78014f

View File

@@ -25,6 +25,7 @@ import android.content.IntentFilter
import android.graphics.Rect
import android.hardware.display.DisplayManager
import android.os.Bundle
import android.os.Handler
import android.os.IBinder
import android.view.LayoutInflater
import android.view.SurfaceControlViewHost
@@ -57,6 +58,7 @@ class KeyguardPreviewRenderer
constructor(
@Application private val context: Context,
@Main private val mainDispatcher: CoroutineDispatcher,
@Main private val mainHandler: Handler,
private val bottomAreaViewModel: KeyguardBottomAreaViewModel,
displayManager: DisplayManager,
private val windowManager: WindowManager,
@@ -112,7 +114,7 @@ constructor(
}
fun render() {
runBlocking(mainDispatcher) {
mainHandler.post {
val rootView = FrameLayout(context)
setUpBottomArea(rootView)
@@ -168,14 +170,12 @@ constructor(
* @param hide TRUE hides smartspace, FALSE shows smartspace
*/
fun hideSmartspace(hide: Boolean) {
runBlocking(mainDispatcher) {
smartSpaceView?.visibility = if (hide) View.INVISIBLE else View.VISIBLE
}
mainHandler.post { smartSpaceView?.visibility = if (hide) View.INVISIBLE else View.VISIBLE }
}
/** Sets the clock's color to the overridden seed color. */
fun onColorOverridden(@ColorInt color: Int?) {
runBlocking(mainDispatcher) {
mainHandler.post {
colorOverride = color
clockController.clock?.run { events.onSeedColorChanged(color) }
}