From d39c2fdfa252ab088ed81afce226f8296c2a09cf Mon Sep 17 00:00:00 2001 From: GG Bond Date: Tue, 27 Feb 2024 13:36:22 +0800 Subject: [PATCH] Update workaround --- .../main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt index 0e7a268f6..3178deb75 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt @@ -74,7 +74,6 @@ import com.jamal.composeprefs3.ui.ifNotNullThen import com.jamal.composeprefs3.ui.ifTrueThen import kotlin.coroutines.resume import kotlinx.coroutines.CancellableContinuation -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine @@ -100,7 +99,9 @@ class DialogState { content = null } - suspend inline fun dialog(crossinline block: @Composable (CancellableContinuation) -> Unit) = suspendCancellableCoroutine { cont -> + // Move to crossinline on next compose compiler update + // https://issuetracker.google.com/issues/325502738 + suspend inline fun dialog(noinline block: @Composable (CancellableContinuation) -> Unit) = suspendCancellableCoroutine { cont -> cont.invokeOnCancellation { dismiss() } val realContinuation = object : CancellableContinuation by cont { override fun resumeWith(result: Result) { @@ -109,10 +110,6 @@ class DialogState { } } content = { block(realContinuation) } - }.also { - // Workaround SlotTable modification race - // IssueTracker: https://issuetracker.google.com/issues/325502738 - delay(100) } suspend fun awaitResult(