Avoid crashes when opening WebView from reader

Also ensure WebViewActivity has an Assistant URL when it first opens with a URL.

(cherry picked from commit 425e48bec6edf6ea30d13dc8d46b79899122c61b)
This commit is contained in:
arkon 2023-01-08 10:17:50 -05:00 committed by Jobobby04
parent 38f65a0fd6
commit f5b03a3a4b
2 changed files with 11 additions and 7 deletions

View File

@ -85,6 +85,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.pager.VerticalPagerViewer
import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer
import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.ui.webview.WebViewActivity
import eu.kanade.tachiyomi.util.Constants 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.launchNonCancellable
import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.preference.toggle import eu.kanade.tachiyomi.util.preference.toggle
@ -1203,10 +1204,12 @@ class ReaderActivity : BaseActivity() {
private fun openChapterInWebview() { private fun openChapterInWebview() {
val manga = viewModel.manga ?: return val manga = viewModel.manga ?: return
val source = viewModel.getSource() ?: return val source = viewModel.getSource() ?: return
val url = viewModel.getChapterUrl() ?: return lifecycleScope.launchIO {
viewModel.getChapterUrl()?.let { url ->
val intent = WebViewActivity.newIntent(this, url, source.id, manga.title) val intent = WebViewActivity.newIntent(this@ReaderActivity, url, source.id, manga.title)
startActivity(intent) withUIContext { startActivity(intent) }
}
}
} }
private fun showReadingModeToast(mode: Int) { private fun showReadingModeToast(mode: Int) {

View File

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