diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt index f0e0c31e2..120a649bc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt @@ -18,8 +18,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties import com.hippo.ehviewer.R.string import com.hippo.ehviewer.ui.tools.DialogState -import kotlin.coroutines.Continuation import kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED +import kotlin.coroutines.intrinsics.startCoroutineUninterceptedOrReturn import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn @Composable @@ -48,8 +48,7 @@ fun ProgressDialog() { suspend fun DialogState.bgWork(work: suspend () -> R) = try { suspendCoroutineUninterceptedOrReturn { cont -> - @Suppress("UNCHECKED_CAST") - (work as (Continuation) -> Any?)(cont).also { r -> + work.startCoroutineUninterceptedOrReturn(cont).also { r -> if (r == COROUTINE_SUSPENDED) content = { ProgressDialog() } } }