Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82ea7801 authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

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
parent 7e39238a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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) }
        }