diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt index c273df63d..a3ebcd9bb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt @@ -105,7 +105,7 @@ class ChapterLoader( is Format.Directory -> DirectoryPageLoader(format.file) is Format.Zip -> ZipPageLoader(tempFileManager.createTempFile(format.file)) is Format.SevenZip -> try { - SevenZipPageLoader(tempFileManager.createTempFile(format.file)) { + SevenZipPageLoader(format.file) { GlobalScope.launchUI { context.toast(context.stringResource(MR.strings.loader_7zip_slow_archives, it)) } 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 d3942cbd9..f3d83d6a9 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 @@ -1,20 +1,21 @@ package eu.kanade.tachiyomi.ui.reader.loader +import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.ui.reader.model.ReaderPage import eu.kanade.tachiyomi.util.storage.SevenZUtil.getImages import org.apache.commons.compress.archivers.sevenz.SevenZFile -import java.io.File +import org.apache.commons.compress.utils.SeekableInMemoryByteChannel /** * Loader used to load a chapter from a .7z or .cb7 file. */ internal class SevenZipPageLoader( - private val file: File, + private val file: UniFile, private val notifySlowArchive: (method: String) -> Unit, ) : PageLoader() { - private val zip by lazy { SevenZFile(file) } + private val zip by lazy { SevenZFile(SeekableInMemoryByteChannel(file.openInputStream().readBytes())) } override var isLocal: Boolean = true