KernelIO motto motto
This commit is contained in:
1 parent
c808e9135d
commit
4f81d164c8
2 files changed
+17
-7
No files matched your search
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
package com.hippo
|
||||
|
||||
import android.os.ParcelFileDescriptor
|
||||
import java.io.FileDescriptor
|
||||
|
||||
object Native {
|
||||
@@ -30,3 +31,14 @@ object Native {
|
||||
@JvmStatic
|
||||
external fun sendfile(from: Int, to: Int)
|
||||
}
|
||||
|
||||
val FileDescriptor.fd
|
||||
get() = Native.getFd(this)
|
||||
|
||||
infix fun ParcelFileDescriptor.receivefrom(fd: FileDescriptor) {
|
||||
Native.sendfile(fd.fd, getFd())
|
||||
}
|
||||
|
||||
infix fun ParcelFileDescriptor.copyTo(fd: FileDescriptor) {
|
||||
Native.sendfile(getFd(), fd.fd)
|
||||
}
|
||||
@@ -16,10 +16,13 @@
|
||||
package com.hippo.ehviewer.spider
|
||||
|
||||
import android.graphics.ImageDecoder
|
||||
import android.os.ParcelFileDescriptor
|
||||
import android.os.ParcelFileDescriptor.MODE_READ_WRITE
|
||||
import coil.decode.DecodeUtils
|
||||
import coil.decode.FrameDelayRewritingSource
|
||||
import coil.decode.isGif
|
||||
import coil.disk.DiskCache
|
||||
import com.hippo.copyTo
|
||||
import com.hippo.ehviewer.EhApplication
|
||||
import com.hippo.ehviewer.EhApplication.Companion.application
|
||||
import com.hippo.ehviewer.EhDB
|
||||
@@ -30,7 +33,6 @@ import com.hippo.ehviewer.client.EhUtils.getSuitableTitle
|
||||
import com.hippo.ehviewer.client.data.GalleryInfo
|
||||
import com.hippo.ehviewer.coil.edit
|
||||
import com.hippo.ehviewer.coil.read
|
||||
import com.hippo.ehviewer.gallery.PageLoader2
|
||||
import com.hippo.ehviewer.gallery.SUPPORT_IMAGE_EXTENSIONS
|
||||
import com.hippo.image.Image.CloseableSource
|
||||
import com.hippo.unifile.RawFile
|
||||
@@ -116,12 +118,8 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) {
|
||||
val extension = fixExtension("." + metadata.toFile().readText())
|
||||
val file = dir.createFile(generateImageFilename(index, extension)) ?: return false
|
||||
(file.openOutputStream() as FileOutputStream).use { outputStream ->
|
||||
outputStream.channel.use { outChannel ->
|
||||
data.toFile().inputStream().use { inputStream ->
|
||||
inputStream.channel.use {
|
||||
outChannel.transferFrom(it, 0, it.size())
|
||||
}
|
||||
}
|
||||
ParcelFileDescriptor.open(data.toFile(), MODE_READ_WRITE).use {
|
||||
it copyTo outputStream.fd
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user