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))
|
if (Settings.bypassCloudflare) addInterceptor(CloudflareInterceptor(appCtx))
|
||||||
|
|
||||||
// TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released
|
// TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released
|
||||||
addInterceptor { chain ->
|
if (Settings.enableQuic) {
|
||||||
val request = chain.request()
|
addInterceptor { chain ->
|
||||||
val url = request.url
|
val request = chain.request()
|
||||||
val newRequest = request.newBuilder()
|
val url = request.url
|
||||||
.addHeader("Cookie", EhCookieStore.getCookieHeader(url))
|
val newRequest = request.newBuilder()
|
||||||
.build()
|
.addHeader("Cookie", EhCookieStore.getCookieHeader(url))
|
||||||
val response = chain.proceed(newRequest)
|
.build()
|
||||||
EhCookieStore.saveFromResponse(url, Cookie.parseAll(url, response.headers))
|
val response = chain.proceed(newRequest)
|
||||||
response
|
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 blackDarkTheme by boolPref("black_dark_theme", false).observed { updateWhenAmoledModeChanges() }
|
||||||
var preloadThumbAggressively by boolPref("preload_thumb_aggressively", false)
|
var preloadThumbAggressively by boolPref("preload_thumb_aggressively", false)
|
||||||
var downloadOriginImage by boolPref("download_origin_image", false)
|
var downloadOriginImage by boolPref("download_origin_image", false)
|
||||||
|
var enableQuic by boolPref("enable_quic", true)
|
||||||
var bypassCloudflare by boolPref("bypass_cloudflare", false)
|
var bypassCloudflare by boolPref("bypass_cloudflare", false)
|
||||||
var thumbSizeDp by intPref("thumb_size_", 120)
|
var thumbSizeDp by intPref("thumb_size_", 120)
|
||||||
var favLocalCount by intPref("fav_local", 0)
|
var favLocalCount by intPref("fav_local", 0)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.os.Build
|
|||||||
import android.os.ParcelFileDescriptor
|
import android.os.ParcelFileDescriptor
|
||||||
import android.os.ParcelFileDescriptor.MODE_READ_WRITE
|
import android.os.ParcelFileDescriptor.MODE_READ_WRITE
|
||||||
import com.hippo.ehviewer.EhDB
|
import com.hippo.ehviewer.EhDB
|
||||||
|
import com.hippo.ehviewer.Settings
|
||||||
import com.hippo.ehviewer.client.EhUtils.getSuitableTitle
|
import com.hippo.ehviewer.client.EhUtils.getSuitableTitle
|
||||||
import com.hippo.ehviewer.client.data.GalleryInfo
|
import com.hippo.ehviewer.client.data.GalleryInfo
|
||||||
import com.hippo.ehviewer.client.ehRequest
|
import com.hippo.ehviewer.client.ehRequest
|
||||||
@@ -129,7 +130,7 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) {
|
|||||||
referer: String?,
|
referer: String?,
|
||||||
notifyProgress: (Long, Long, Int) -> Unit,
|
notifyProgress: (Long, Long, Int) -> Unit,
|
||||||
): Boolean {
|
): 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) {
|
cronetRequest(url, referer) {
|
||||||
disableCache()
|
disableCache()
|
||||||
}.execute { info ->
|
}.execute { info ->
|
||||||
|
|||||||
@@ -125,6 +125,11 @@ fun AdvancedScreen() {
|
|||||||
entryValueRes = R.array.app_language_entry_values,
|
entryValueRes = R.array.app_language_entry_values,
|
||||||
value = Settings::language,
|
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(
|
SwitchPreference(
|
||||||
title = stringResource(id = R.string.settings_advanced_bypass_cloudflare),
|
title = stringResource(id = R.string.settings_advanced_bypass_cloudflare),
|
||||||
summary = stringResource(id = R.string.settings_advanced_bypass_cloudflare_summary),
|
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_dump_logcat_to">已保存日志至 %s</string>
|
||||||
<string name="settings_advanced_read_cache_size">阅读缓存大小</string>
|
<string name="settings_advanced_read_cache_size">阅读缓存大小</string>
|
||||||
<string name="settings_advanced_app_language_title">App 界面语言</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">[实验性] 绕过 Cloudflare</string>
|
||||||
<string name="settings_advanced_bypass_cloudflare_summary">若持续遇到 403 错误可尝试此项(需要重启应用)</string>
|
<string name="settings_advanced_bypass_cloudflare_summary">若持续遇到 403 错误可尝试此项(需要重启应用)</string>
|
||||||
<string name="settings_advanced_export_data">导出数据</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_dump_logcat_to">Logcat dumped to %s</string>
|
||||||
<string name="settings_advanced_read_cache_size">Read cache size</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_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">[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_bypass_cloudflare_summary">Try this if you keep getting 403 error (App restart required)</string>
|
||||||
<string name="settings_advanced_export_data">Export data</string>
|
<string name="settings_advanced_export_data">Export data</string>
|
||||||
|
|||||||
Reference in new issue
Block a user