diff --git a/app/src/main/java/com/infomaniak/mail/utils/Utils.kt b/app/src/main/java/com/infomaniak/mail/utils/Utils.kt index f8bf194190..fc6f49e49e 100644 --- a/app/src/main/java/com/infomaniak/mail/utils/Utils.kt +++ b/app/src/main/java/com/infomaniak/mail/utils/Utils.kt @@ -27,7 +27,9 @@ import com.infomaniak.lib.core.utils.UtilsUi.openUrl import com.infomaniak.mail.BuildConfig import com.infomaniak.mail.data.models.Folder.FolderRole import io.sentry.Sentry -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.withTimeout import okhttp3.internal.toHexString import java.nio.charset.StandardCharsets @@ -66,24 +68,15 @@ object Utils { suspend fun executeWithTimeoutOrDefault( timeout: Long, defaultValue: T, - block: CoroutineScope.() -> T, + block: suspend CoroutineScope.() -> T, onTimeout: (() -> Unit)? = null, ): T = runCatching { - coroutineWithTimeout(timeout, block) + withTimeout(timeout, block) }.getOrElse { if (it is TimeoutCancellationException) onTimeout?.invoke() else Sentry.captureException(it) defaultValue } - private suspend fun coroutineWithTimeout( - timeout: Long, - block: CoroutineScope.() -> T, - ): T = withTimeout(timeout) { - var result: T? = null - CoroutineScope(Dispatchers.Default).launch { result = block() }.join() - result!! - } - fun waitInitMediator(liveData1: LiveData, liveData2: LiveData): MediatorLiveData> { fun areLiveDataInitialized() = liveData1.isInitialized && liveData2.isInitialized