Cleanup kt style builder

This commit is contained in:
tarsin committed 2023-07-12 08:32:43 +08:00
1 parent 09df7cc39b
commit 02a3c1c54b
4 files changed
+27 -16

No files matched your search

@@ -18,7 +18,6 @@ package com.hippo.ehviewer
import android.app.Application
import android.content.ComponentCallbacks2
import android.os.Build
import androidx.appcompat.app.AppCompatDelegate
import androidx.collection.LruCache
import androidx.lifecycle.ProcessLifecycleOwner
@@ -50,12 +49,12 @@ import com.hippo.ehviewer.util.Crash
import com.hippo.ehviewer.util.FavouriteStatusRouter
import com.hippo.ehviewer.util.FileUtils
import com.hippo.ehviewer.util.ReadableTime
import com.hippo.ehviewer.util.isAtLeastQ
import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withUIContext
import kotlinx.coroutines.launch
import okhttp3.AsyncDns
import okhttp3.Cookie
import okhttp3.android.AndroidAsyncDns
import okio.Path.Companion.toOkioPath
import splitties.arch.room.roomDb
@@ -160,20 +159,16 @@ class EhApplication : Application(), ImageLoaderFactory {
val nonCacheOkHttpClient by lazy {
httpClient {
cookieJar(EhCookieStore)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) dns(AsyncDns.toDns(AndroidAsyncDns.IPv4, AndroidAsyncDns.IPv6))
if (isAtLeastQ) {
dns(AsyncDns.toDns(AndroidAsyncDns.IPv4, AndroidAsyncDns.IPv6))
}
chunker { alwaysReadResponseBody(false) }
if (Settings.bypassCloudflare) addInterceptor(CloudflareInterceptor(appCtx))
if (Settings.bypassCloudflare) {
addInterceptor(CloudflareInterceptor(appCtx))
}
// TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released
if (isCronetSupported) {
addInterceptor { chain ->
val request = chain.request()
val url = request.url
val newRequest = request.newBuilder().addHeader("Cookie", EhCookieStore.getCookieHeader(url)).build()
val response = chain.proceed(newRequest)
EhCookieStore.saveFromResponse(url, Cookie.parseAll(url, response.headers))
response
}
addInterceptor(EhCookieStore)
cronet(cronetHttpClient)
}
}
@@ -20,8 +20,10 @@ import okhttp3.Cookie
import okhttp3.CookieJar
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Interceptor
import okhttp3.Response
object EhCookieStore : CookieJar {
object EhCookieStore : CookieJar, Interceptor {
private val manager = CookieManager.getInstance()
fun signOut() = manager.removeAllCookies(null)
fun contains(url: HttpUrl, name: String) = get(url).any { it.name == name }
@@ -101,4 +103,13 @@ object EhCookieStore : CookieJar {
}
}
}
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val url = request.url
val newRequest = request.newBuilder().addHeader("Cookie", getCookieHeader(url)).build()
val response = chain.proceed(newRequest)
saveFromResponse(url, Cookie.parseAll(url, response.headers))
return response
}
}
@@ -1,7 +1,7 @@
package com.hippo.ehviewer.cronet
import android.os.Build
import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.util.isAtLeastQ
val isCronetSupported: Boolean
get() = Settings.enableQuic && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
get() = Settings.enableQuic && isAtLeastQ
@@ -0,0 +1,5 @@
package com.hippo.ehviewer.util
import android.os.Build
val isAtLeastQ = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q