Avoid crashes when opening WebView from reader

Also ensure WebViewActivity has an Assistant URL when it first opens with a URL.
This commit is contained in:
arkon 2023-01-08 10:17:50 -05:00
parent a42be4a833
commit 425e48bec6
2 changed files with 11 additions and 7 deletions

View file

@ -67,6 +67,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ReaderProgressIndicator
import eu.kanade.tachiyomi.ui.reader.viewer.pager.R2LPagerViewer
import eu.kanade.tachiyomi.ui.webview.WebViewActivity
import eu.kanade.tachiyomi.util.Constants
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchNonCancellable
import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.preference.toggle
@ -716,10 +717,12 @@ class ReaderActivity : BaseActivity() {
private fun openChapterInWebview() {
val manga = viewModel.manga ?: return
val source = viewModel.getSource() ?: return
val url = viewModel.getChapterUrl() ?: return
val intent = WebViewActivity.newIntent(this, url, source.id, manga.title)
startActivity(intent)
lifecycleScope.launchIO {
viewModel.getChapterUrl()?.let { url ->
val intent = WebViewActivity.newIntent(this@ReaderActivity, url, source.id, manga.title)
withUIContext { startActivity(intent) }
}
}
}
private fun showReadingModeToast(mode: Int) {

View file

@ -42,10 +42,11 @@ class WebViewActivity : BaseActivity() {
return
}
val url = intent.extras!!.getString(URL_KEY) ?: return
val url = intent.extras?.getString(URL_KEY) ?: return
assistUrl = url
var headers = mutableMapOf<String, String>()
val source = sourceManager.get(intent.extras!!.getLong(SOURCE_KEY)) as? HttpSource
if (source != null) {
(sourceManager.get(intent.extras!!.getLong(SOURCE_KEY)) as? HttpSource)?.let { source ->
headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap()
}