From 329bf1039d3f1137e02961d6263a38db05f502ad Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Wed, 3 Jan 2024 20:26:31 -0300 Subject: [PATCH] fix(local/7z): Fix loading previous pages (#2) --- .../kanade/tachiyomi/ui/reader/loader/SevenZipPageLoader.kt | 2 +- .../main/java/eu/kanade/tachiyomi/util/storage/SevenZUtil.kt | 4 ++-- .../androidMain/kotlin/tachiyomi/source/local/LocalSource.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/SevenZipPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/SevenZipPageLoader.kt index cd69cb1f8..9e4ca829a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/SevenZipPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/SevenZipPageLoader.kt @@ -19,7 +19,7 @@ internal class SevenZipPageLoader(file: File) : PageLoader() { return zip.getImages() .mapIndexed { i, entry -> ReaderPage(i).apply { - stream = { entry } + stream = { entry.copyOf().inputStream() } status = Page.State.READY } }.toList() diff --git a/core/src/main/java/eu/kanade/tachiyomi/util/storage/SevenZUtil.kt b/core/src/main/java/eu/kanade/tachiyomi/util/storage/SevenZUtil.kt index 908d6219e..bc30d59a4 100644 --- a/core/src/main/java/eu/kanade/tachiyomi/util/storage/SevenZUtil.kt +++ b/core/src/main/java/eu/kanade/tachiyomi/util/storage/SevenZUtil.kt @@ -6,11 +6,11 @@ import tachiyomi.core.util.system.ImageUtil import java.io.InputStream object SevenZUtil { - fun SevenZFile.getImages(): Sequence { + fun SevenZFile.getImages(): Sequence { return generateSequence { runCatching { getNextEntry() }.getOrNull() } .filter { !it.isDirectory && ImageUtil.isImage(it.name) { getInputStream(it) } } .sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) } .map(::getInputStream) - .map { it.use(InputStream::readBytes).inputStream() } // ByteArrayInputStream + .map { it.use(InputStream::readBytes) } // ByteArray } } diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt index 18f3079dc..842111221 100644 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt +++ b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt @@ -345,7 +345,7 @@ actual class LocalSource( SevenZFile(format.file.toTempFile(context)).use { archive -> val entry = archive.getImages().firstOrNull() - entry?.let { coverManager.update(manga, it) } + entry?.let { coverManager.update(manga, it.inputStream()) } } } is Format.Rar -> {