Fix crash on WebView.stopLoading()

This commit is contained in:
Koitharu
2025-09-17 09:14:28 +03:00
parent a95db6ed21
commit 43d3a2cc6a

View File

@@ -25,6 +25,7 @@ import java.lang.ref.WeakReference
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Provider import javax.inject.Provider
import javax.inject.Singleton import javax.inject.Singleton
import kotlin.coroutines.EmptyCoroutineContext
import kotlin.coroutines.resume import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine import kotlin.coroutines.suspendCoroutine
@@ -77,7 +78,7 @@ class WebViewExecutor @Inject constructor(
continuation = cont, continuation = cont,
) )
cont.invokeOnCancellation { cont.invokeOnCancellation {
webView.stopLoading() webView.stopLoadingAsync()
} }
webView.loadUrl(exception.url) webView.loadUrl(exception.url)
} }
@@ -115,4 +116,10 @@ class WebViewExecutor @Inject constructor(
val repository = mangaRepositoryFactoryProvider.get().create(this) as? ParserMangaRepository val repository = mangaRepositoryFactoryProvider.get().create(this) as? ParserMangaRepository
return repository?.getRequestHeaders()?.get(CommonHeaders.USER_AGENT) return repository?.getRequestHeaders()?.get(CommonHeaders.USER_AGENT)
} }
private fun WebView.stopLoadingAsync() {
Dispatchers.Main.dispatch(EmptyCoroutineContext) {
stopLoading()
}
}
} }