Add option for QUIC support
This commit is contained in:
1 parent
09b92cc709
commit
861c05db44
6 files changed
+24
-11
No files matched your search
@@ -162,17 +162,19 @@ class EhApplication : Application(), ImageLoaderFactory {
|
||||
if (Settings.bypassCloudflare) addInterceptor(CloudflareInterceptor(appCtx))
|
||||
|
||||
// TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released
|
||||
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
|
||||
if (Settings.enableQuic) {
|
||||
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(CronetInterceptor.newBuilder(cronetHttpClient).build())
|
||||
}
|
||||
addInterceptor(CronetInterceptor.newBuilder(cronetHttpClient).build())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ object Settings : DataStorePreferences(null) {
|
||||
var blackDarkTheme by boolPref("black_dark_theme", false).observed { updateWhenAmoledModeChanges() }
|
||||
var preloadThumbAggressively by boolPref("preload_thumb_aggressively", false)
|
||||
var downloadOriginImage by boolPref("download_origin_image", false)
|
||||
var enableQuic by boolPref("enable_quic", true)
|
||||
var bypassCloudflare by boolPref("bypass_cloudflare", false)
|
||||
var thumbSizeDp by intPref("thumb_size_", 120)
|
||||
var favLocalCount by intPref("fav_local", 0)
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.os.Build
|
||||
import android.os.ParcelFileDescriptor
|
||||
import android.os.ParcelFileDescriptor.MODE_READ_WRITE
|
||||
import com.hippo.ehviewer.EhDB
|
||||
import com.hippo.ehviewer.Settings
|
||||
import com.hippo.ehviewer.client.EhUtils.getSuitableTitle
|
||||
import com.hippo.ehviewer.client.data.GalleryInfo
|
||||
import com.hippo.ehviewer.client.ehRequest
|
||||
@@ -129,7 +130,7 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) {
|
||||
referer: String?,
|
||||
notifyProgress: (Long, Long, Int) -> Unit,
|
||||
): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && Settings.enableQuic) {
|
||||
cronetRequest(url, referer) {
|
||||
disableCache()
|
||||
}.execute { info ->
|
||||
|
||||
@@ -125,6 +125,11 @@ fun AdvancedScreen() {
|
||||
entryValueRes = R.array.app_language_entry_values,
|
||||
value = Settings::language,
|
||||
)
|
||||
SwitchPreference(
|
||||
title = stringResource(id = R.string.settings_advanced_enable_quic),
|
||||
summary = stringResource(id = R.string.settings_advanced_enable_quic_summary),
|
||||
value = Settings::enableQuic,
|
||||
)
|
||||
SwitchPreference(
|
||||
title = stringResource(id = R.string.settings_advanced_bypass_cloudflare),
|
||||
summary = stringResource(id = R.string.settings_advanced_bypass_cloudflare_summary),
|
||||
|
||||
@@ -371,6 +371,8 @@
|
||||
<string name="settings_advanced_dump_logcat_to">已保存日志至 %s</string>
|
||||
<string name="settings_advanced_read_cache_size">阅读缓存大小</string>
|
||||
<string name="settings_advanced_app_language_title">App 界面语言</string>
|
||||
<string name="settings_advanced_enable_quic">[实验性] QUIC 支持</string>
|
||||
<string name="settings_advanced_enable_quic_summary">启用 QUIC 协议支持(需要重启应用)</string>
|
||||
<string name="settings_advanced_bypass_cloudflare">[实验性] 绕过 Cloudflare</string>
|
||||
<string name="settings_advanced_bypass_cloudflare_summary">若持续遇到 403 错误可尝试此项(需要重启应用)</string>
|
||||
<string name="settings_advanced_export_data">导出数据</string>
|
||||
|
||||
@@ -415,6 +415,8 @@
|
||||
<string name="settings_advanced_dump_logcat_to">Logcat dumped to %s</string>
|
||||
<string name="settings_advanced_read_cache_size">Read cache size</string>
|
||||
<string name="settings_advanced_app_language_title">App language</string>
|
||||
<string name="settings_advanced_enable_quic">[Experimental] QUIC support</string>
|
||||
<string name="settings_advanced_enable_quic_summary">Enable QUIC protocol support (App restart required)</string>
|
||||
<string name="settings_advanced_bypass_cloudflare">[Experimental] Bypass Cloudflare</string>
|
||||
<string name="settings_advanced_bypass_cloudflare_summary">Try this if you keep getting 403 error (App restart required)</string>
|
||||
<string name="settings_advanced_export_data">Export data</string>
|
||||
|
||||
Reference in new issue
Block a user