Use official coroutines API instead of manual cast
This commit is contained in:
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() }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user