Cleanup CronetHttpUriFetcher

This commit is contained in:
tarsin committed 2023-07-26 17:17:31 +08:00
1 parent 9818f227d7
commit f85d36d14d
2 files changed
+13 -8

No files matched your search

@@ -18,7 +18,6 @@ package com.hippo.ehviewer
import android.app.Application
import android.content.ComponentCallbacks2
import android.net.Uri
import androidx.appcompat.app.AppCompatDelegate
import androidx.collection.LruCache
import androidx.lifecycle.ProcessLifecycleOwner
@@ -30,8 +29,8 @@ import com.google.net.cronet.okhttptransport.RedirectStrategy.withoutRedirects
import com.hippo.ehviewer.client.EhCookieStore
import com.hippo.ehviewer.client.EhTagDatabase
import com.hippo.ehviewer.client.data.GalleryDetail
import com.hippo.ehviewer.coil.CronetHttpUriFetcher
import com.hippo.ehviewer.coil.MergeInterceptor
import com.hippo.ehviewer.coil.installCronetHttpUriFetcher
import com.hippo.ehviewer.dailycheck.checkDawn
import com.hippo.ehviewer.download.DownloadManager
import com.hippo.ehviewer.ktbuilder.cache
@@ -148,12 +147,9 @@ class EhApplication : Application(), ImageLoaderFactory {
components {
if (isCronetSupported) {
callFactory { unreachable() }
add { data: Uri, options, loader ->
if (data.scheme != "http" && data.scheme != "https") return@add null
CronetHttpUriFetcher(data.toString(), options, loader)
}
installCronetHttpUriFetcher()
} else {
okHttpClient(nonCacheOkHttpClient)
callFactory(nonCacheOkHttpClient)
}
add { result, options, _ -> ImageDecoderDecoder(result.source, options, false) }
add(MergeInterceptor)
@@ -1,6 +1,10 @@
@file:Suppress("BlockingMethodInNonBlockingContext")
package com.hippo.ehviewer.coil
import android.net.Uri
import android.webkit.MimeTypeMap
import coil.ComponentRegistry
import coil.ImageLoader
import coil.decode.DataSource
import coil.decode.ImageSource
@@ -13,7 +17,7 @@ import com.hippo.ehviewer.spider.cronetRequest
import com.hippo.ehviewer.spider.execute
import java.io.RandomAccessFile
class CronetHttpUriFetcher(val data: String, val options: Options, val imageLoader: ImageLoader) : Fetcher {
class CronetHttpUriFetcher(private val data: String, private val options: Options, private val imageLoader: ImageLoader) : Fetcher {
override suspend fun fetch(): FetchResult {
val diskCacheKey = options.diskCacheKey ?: data
val diskCache = requireNotNull(imageLoader.diskCache)
@@ -42,6 +46,11 @@ class CronetHttpUriFetcher(val data: String, val options: Options, val imageLoad
}
}
fun ComponentRegistry.Builder.installCronetHttpUriFetcher() = add { data: Uri, options, loader ->
if (data.scheme != "http" && data.scheme != "https") return@add null
CronetHttpUriFetcher(data.toString(), options, loader)
}
private fun getMimeType(url: String) = MimeTypeMap.getSingleton().getMimeTypeFromUrl(url)
private fun MimeTypeMap.getMimeTypeFromUrl(url: String?): String? {