use SeekableInMemoryByteChannel instead of tempFile

This commit is contained in:
AbdallahMehiz
2024-01-29 11:30:42 +01:00
parent 399e689969
commit ffcba7b2dc
2 changed files with 5 additions and 4 deletions

View File

@@ -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))
}

View File

@@ -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