|
|
@ -15,7 +15,9 @@ import io.legado.app.model.localBook.EpubFile |
|
|
|
import io.legado.app.utils.BitmapUtils |
|
|
|
import io.legado.app.utils.BitmapUtils |
|
|
|
import io.legado.app.utils.FileUtils |
|
|
|
import io.legado.app.utils.FileUtils |
|
|
|
import io.legado.app.utils.isXml |
|
|
|
import io.legado.app.utils.isXml |
|
|
|
|
|
|
|
import kotlinx.coroutines.Dispatchers.IO |
|
|
|
import kotlinx.coroutines.runBlocking |
|
|
|
import kotlinx.coroutines.runBlocking |
|
|
|
|
|
|
|
import kotlinx.coroutines.withContext |
|
|
|
import splitties.init.appCtx |
|
|
|
import splitties.init.appCtx |
|
|
|
import java.io.File |
|
|
|
import java.io.File |
|
|
|
import java.io.FileOutputStream |
|
|
|
import java.io.FileOutputStream |
|
|
@ -59,21 +61,23 @@ object ImageProvider { |
|
|
|
src: String, |
|
|
|
src: String, |
|
|
|
bookSource: BookSource? |
|
|
|
bookSource: BookSource? |
|
|
|
): File { |
|
|
|
): File { |
|
|
|
val vFile = BookHelp.getImage(book, src) |
|
|
|
return withContext(IO) { |
|
|
|
if (!vFile.exists()) { |
|
|
|
val vFile = BookHelp.getImage(book, src) |
|
|
|
if (book.isEpub()) { |
|
|
|
if (!vFile.exists()) { |
|
|
|
EpubFile.getImage(book, src)?.use { input -> |
|
|
|
if (book.isEpub()) { |
|
|
|
val newFile = FileUtils.createFileIfNotExist(vFile.absolutePath) |
|
|
|
EpubFile.getImage(book, src)?.use { input -> |
|
|
|
@Suppress("BlockingMethodInNonBlockingContext") |
|
|
|
val newFile = FileUtils.createFileIfNotExist(vFile.absolutePath) |
|
|
|
FileOutputStream(newFile).use { output -> |
|
|
|
@Suppress("BlockingMethodInNonBlockingContext") |
|
|
|
input.copyTo(output) |
|
|
|
FileOutputStream(newFile).use { output -> |
|
|
|
|
|
|
|
input.copyTo(output) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
BookHelp.saveImage(bookSource, book, src) |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
|
|
|
|
BookHelp.saveImage(bookSource, book, src) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return@withContext vFile |
|
|
|
} |
|
|
|
} |
|
|
|
return vFile |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|