From 9b7b411825489d1803689269d84e5008ac8654dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <99822064+revonateB0T@users.noreply.github.com> Date: Fri, 21 Mar 2025 22:03:37 +0800 Subject: [PATCH] Inline PageLoader user (#2209) --- .../kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt | 7 +++---- .../main/kotlin/com/hippo/ehviewer/gallery/EhPageLoader.kt | 4 ++-- .../kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt b/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt index 9678094aa..d6d3e7733 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt @@ -37,15 +37,14 @@ import okio.Path typealias PasswdInvalidator = (String) -> Boolean typealias PasswdProvider = suspend (PasswdInvalidator) -> String -val emptyPasswdProvider: PasswdProvider = { error("Managed Archive have password???") } -suspend fun useArchivePageLoader( +suspend inline fun useArchivePageLoader( file: Path, gid: Long = 0, startPage: Int = 0, hasAds: Boolean = false, - passwdProvider: PasswdProvider = emptyPasswdProvider, - block: suspend (PageLoader) -> T, + crossinline passwdProvider: PasswdProvider, + crossinline block: suspend (PageLoader) -> T, ) = autoCloseScope { coroutineScope { val pfd = install(file.openFileDescriptor("r")) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/gallery/EhPageLoader.kt b/app/src/main/kotlin/com/hippo/ehviewer/gallery/EhPageLoader.kt index 6fa655c76..d988c4101 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/gallery/EhPageLoader.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/gallery/EhPageLoader.kt @@ -12,10 +12,10 @@ import kotlinx.coroutines.coroutineScope import moe.tarsin.kt.install import okio.Path -suspend fun useEhPageLoader( +suspend inline fun useEhPageLoader( info: GalleryInfo, startPage: Int, - block: suspend (PageLoader) -> T, + crossinline block: suspend (PageLoader) -> T, ) = autoCloseScope { coroutineScope { val queen = install( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt index 2441bac7d..fcb272dc1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt @@ -375,13 +375,13 @@ fun AnimatedVisibilityScope.ReaderScreen(pageLoader: PageLoader, info: BaseGalle } context(Context, DialogState, DestinationsNavigator) -suspend fun usePageLoader(args: ReaderScreenArgs, block: suspend (PageLoader) -> T) = when (args) { +suspend inline fun usePageLoader(args: ReaderScreenArgs, crossinline block: suspend (PageLoader) -> T) = when (args) { is ReaderScreenArgs.Gallery -> { val info = args.info val page = args.page.takeUnless { it == -1 } ?: EhDB.getReadProgress(info.gid) val archive = DownloadManager.getDownloadInfo(info.gid)?.archiveFile if (archive != null) { - useArchivePageLoader(archive, info.gid, page, info.hasAds, block = block) + useArchivePageLoader(archive, info.gid, page, info.hasAds, { error("Managed Archive have password???") }, block) } else { useEhPageLoader(info, page, block) }