fix: Fix crash when reading local 7zip manga (#1)

This commit is contained in:
Claudemirovsky
2024-01-02 21:24:51 -03:00
committed by GitHub
parent ed18014430
commit 9e8b14d141
4 changed files with 25 additions and 15 deletions

View File

@@ -2,9 +2,8 @@ package eu.kanade.tachiyomi.ui.reader.loader
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
import eu.kanade.tachiyomi.util.storage.SevenZUtil.getImages
import org.apache.commons.compress.archivers.sevenz.SevenZFile
import tachiyomi.core.util.system.ImageUtil
import java.io.File
/**
@@ -12,23 +11,18 @@ import java.io.File
*/
internal class SevenZipPageLoader(file: File) : PageLoader() {
private val zip = SevenZFile(file)
private val zip by lazy { SevenZFile(file) }
override var isLocal: Boolean = true
override suspend fun getPages(): List<ReaderPage> {
return zip.entries.asSequence()
.filter { !it.isDirectory && ImageUtil.isImage(it.name) { zip.getInputStream(it) } }
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
return zip.getImages()
.mapIndexed { i, entry ->
ReaderPage(i).apply {
stream = {
zip.getInputStream(entry)
}
stream = { entry }
status = Page.State.READY
}
}
.toList()
}.toList()
}
override suspend fun loadPage(page: ReaderPage) {