Use official coroutines API instead of manual cast

This commit is contained in:
FooIbar committed 2024-06-02 19:49:21 +08:00
1 parent 2d4f154c9b
commit be1eecf3b5
1 file changed
+2 -3
@@ -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 <R> DialogState.bgWork(work: suspend () -> R) = try {
suspendCoroutineUninterceptedOrReturn { cont ->
@Suppress("UNCHECKED_CAST")
(work as (Continuation<R>) -> Any?)(cont).also { r ->
work.startCoroutineUninterceptedOrReturn(cont).also { r ->
if (r == COROUTINE_SUSPENDED) content = { ProgressDialog() }
}
}