mirror of
https://github.com/mihonapp/mihon.git
synced 2025-10-21 18:48:54 +02:00
fix: Fix crash when reading local 7zip manga (#1)
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user