Use Voyager for WebView in non-reader places

This commit is contained in:
arkon
2022-12-04 17:23:24 -05:00
parent 0d128b75e2
commit 6efcb8ccfa
7 changed files with 121 additions and 16 deletions
@@ -48,7 +48,7 @@ import eu.kanade.tachiyomi.ui.category.CategoryScreen
import eu.kanade.tachiyomi.ui.home.HomeScreen
import eu.kanade.tachiyomi.ui.manga.track.TrackInfoDialogHomeScreen
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.webview.WebViewActivity
import eu.kanade.tachiyomi.ui.webview.WebViewScreen
import eu.kanade.tachiyomi.util.lang.withIOContext
import eu.kanade.tachiyomi.util.system.copyToClipboard
import eu.kanade.tachiyomi.util.system.logcat
@@ -109,7 +109,7 @@ class MangaScreen(
screenModel.toggleFavorite()
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
},
onWebViewClicked = { openMangaInWebView(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource },
onWebViewClicked = { openMangaInWebView(navigator, screenModel.manga, screenModel.source) }.takeIf { isHttpSource },
onWebViewLongClicked = { copyMangaUrl(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource },
onTrackingClicked = screenModel::showTrackDialog.takeIf { successState.trackingAvailable },
onTagClicked = { scope.launch { performGenreSearch(navigator, it, screenModel.source!!) } },
@@ -240,10 +240,15 @@ class MangaScreen(
}
}
private fun openMangaInWebView(context: Context, manga_: Manga?, source_: Source?) {
private fun openMangaInWebView(navigator: Navigator, manga_: Manga?, source_: Source?) {
getMangaUrl(manga_, source_)?.let { url ->
val intent = WebViewActivity.newIntent(context, url, source_?.id, manga_?.title)
context.startActivity(intent)
navigator.push(
WebViewScreen(
url = url,
initialTitle = manga_?.title,
sourceId = source_?.id,
),
)
}
}