Cleanup unnecessary jni call

This commit is contained in:
tarsin committed 2023-02-27 17:05:54 +08:00
1 parent 5dff1f7678
commit c4a3f06b51
7 files changed
+10 -58

No files matched your search

-12
View File
@@ -22,22 +22,10 @@ import android.system.Int64Ref
import android.system.Os
import java.io.FileDescriptor
object Native {
fun initialize() {
System.loadLibrary("ehviewer")
}
@JvmStatic
external fun getFd(fd: FileDescriptor?): Int
}
private fun sendFileTotally(from: FileDescriptor, to: FileDescriptor) {
Os.sendfile(to, from, Int64Ref(0), Long.MAX_VALUE)
}
val FileDescriptor.fd
get() = Native.getFd(this)
infix fun ParcelFileDescriptor.sendTo(fd: FileDescriptor) {
sendFileTotally(fileDescriptor, fd)
}
@@ -22,6 +22,7 @@ import android.graphics.ImageDecoder
import android.net.Uri
import android.util.Log
import com.hippo.image.Image
import java.io.FileDescriptor
import java.nio.ByteBuffer
class UriArchiveAccessor(ctx: Context, private val uri: Uri) {
@@ -33,7 +34,7 @@ class UriArchiveAccessor(ctx: Context, private val uri: Uri) {
private external fun openArchive(fd: Int, size: Long): Int
private external fun extractToByteBuffer(index: Int): ByteBuffer?
external fun extractToFd(index: Int, fd: Int)
external fun extractToFd(index: Int, fd: FileDescriptor)
external fun getFilename(index: Int): String
external fun needPassword(): Boolean
external fun providePassword(str: String): Boolean
@@ -28,7 +28,6 @@ import androidx.lifecycle.ProcessLifecycleOwner
import coil.ImageLoader
import coil.ImageLoaderFactory
import coil.util.DebugLogger
import com.hippo.Native
import com.hippo.ehviewer.client.EhCookieStore
import com.hippo.ehviewer.client.EhDns
import com.hippo.ehviewer.client.EhSSLSocketFactory
@@ -84,7 +83,7 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor
handler?.uncaughtException(t, e)
}
super<Application>.onCreate()
Native.initialize()
System.loadLibrary("ehviewer")
GetText.initialize(this)
Settings.initialize()
ReadableTime.initialize(this)
@@ -17,7 +17,6 @@ package com.hippo.ehviewer.gallery
import android.content.Context
import android.net.Uri
import com.hippo.Native.getFd
import com.hippo.UriArchiveAccessor
import com.hippo.ehviewer.Settings
import com.hippo.image.Image
@@ -138,16 +137,14 @@ class ArchivePageLoader(context: Context, uri: Uri, passwdFlow: Flow<String>) :
}
override fun save(index: Int, file: UniFile): Boolean {
val fd: Int
val stream: FileOutputStream
try {
stream = file.openOutputStream() as FileOutputStream
fd = getFd(stream.fd)
} catch (e: IOException) {
e.printStackTrace()
return false
}
archiveAccessor.extractToFd(index, fd)
archiveAccessor.extractToFd(index, stream.fd)
try {
stream.close()
} catch (e: IOException) {