From be761071f89ff68a6b2e2d7b055ff30c1264ea5e Mon Sep 17 00:00:00 2001
From: FooIbar <118464521+FooIbar@users.noreply.github.com>
Date: Tue, 7 Feb 2023 15:10:28 +0800
Subject: [PATCH] Remove unsupported proxy types
---
.../java/com/hippo/ehviewer/EhApplication.kt | 4 +---
.../java/com/hippo/ehviewer/Settings.java | 8 +++++--
.../ehviewer/preference/ProxyPreference.kt | 21 +++++++++----------
app/src/main/res/values/arrays.xml | 2 --
4 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt
index 869199b93..efc850f4d 100644
--- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt
+++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt
@@ -322,8 +322,6 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor
HttpClient(CIO) {
engine {
proxy = when (Settings.getProxyType()) {
- EhProxySelector.TYPE_DIRECT -> Proxy.NO_PROXY
- EhProxySelector.TYPE_SYSTEM -> null
EhProxySelector.TYPE_HTTP -> {
val ip = Settings.getProxyIp()
val port = Settings.getProxyPort()
@@ -332,7 +330,7 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor
Proxy(Proxy.Type.HTTP, socketAddress)
}
- // CIO does not support Socks proxy yet
+ // CIO does not support non-HTTP proxy yet
else -> null
}
https {
diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java
index 1f62052f3..055287f5f 100755
--- a/app/src/main/java/com/hippo/ehviewer/Settings.java
+++ b/app/src/main/java/com/hippo/ehviewer/Settings.java
@@ -182,7 +182,7 @@ public class Settings {
private static final boolean DEFAULT_FRONTING = false;
private static final boolean DEFAULT_BYPASS_VPN = true;
private static final String KEY_PROXY_TYPE = "proxy_type";
- private static final int DEFAULT_PROXY_TYPE = EhProxySelector.TYPE_SYSTEM;
+ private static final int DEFAULT_PROXY_TYPE = EhProxySelector.TYPE_DIRECT;
private static final String KEY_PROXY_IP = "proxy_ip";
private static final String DEFAULT_PROXY_IP = null;
private static final String KEY_PROXY_PORT = "proxy_port";
@@ -679,10 +679,14 @@ public class Settings {
return getBoolean(KEY_BYPASS_VPN, DEFAULT_BYPASS_VPN);
}
- public static int getProxyType() {
+ private static int getProxyTypeInternal() {
return getInt(KEY_PROXY_TYPE, DEFAULT_PROXY_TYPE);
}
+ public static int getProxyType() {
+ return getProxyTypeInternal() == EhProxySelector.TYPE_HTTP ? EhProxySelector.TYPE_HTTP : DEFAULT_PROXY_TYPE;
+ }
+
public static void putProxyType(int value) {
putInt(KEY_PROXY_TYPE, value);
}
diff --git a/app/src/main/java/com/hippo/ehviewer/preference/ProxyPreference.kt b/app/src/main/java/com/hippo/ehviewer/preference/ProxyPreference.kt
index bce06eaf1..0f71ef6d5 100644
--- a/app/src/main/java/com/hippo/ehviewer/preference/ProxyPreference.kt
+++ b/app/src/main/java/com/hippo/ehviewer/preference/ProxyPreference.kt
@@ -31,7 +31,6 @@ import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import com.hippo.network.InetValidator
import com.hippo.preference.DialogPreference
-import com.hippo.yorozuya.MathUtils
import com.hippo.yorozuya.ViewUtils
class ProxyPreference @JvmOverloads constructor(
@@ -50,8 +49,14 @@ class ProxyPreference @JvmOverloads constructor(
updateSummary(Settings.getProxyType(), Settings.getProxyIp(), Settings.getProxyPort())
}
+ private fun getProxyType(index: Int): Int =
+ if (index == 1) EhProxySelector.TYPE_HTTP else EhProxySelector.TYPE_DIRECT
+
+ private fun getProxyTypeIndex(type: Int): Int =
+ if (type == EhProxySelector.TYPE_HTTP) 1 else 0
+
private fun getProxyTypeText(type: Int): String {
- return mArray[MathUtils.clamp(type, 0, mArray.size - 1)]
+ return mArray[getProxyTypeIndex(type)]
}
private fun updateSummary(type: Int, ip: String?, port: Int) {
@@ -59,7 +64,7 @@ class ProxyPreference @JvmOverloads constructor(
if ((type1 == EhProxySelector.TYPE_HTTP || type1 == EhProxySelector.TYPE_SOCKS)
&& (TextUtils.isEmpty(ip) || !InetValidator.isValidInetPort(port))
) {
- type1 = EhProxySelector.TYPE_SYSTEM
+ type1 = EhProxySelector.TYPE_DIRECT
}
summary = if (type1 == EhProxySelector.TYPE_HTTP || type1 == EhProxySelector.TYPE_SOCKS) {
val context = context
@@ -94,13 +99,7 @@ class ProxyPreference @JvmOverloads constructor(
mPortInputLayout = ViewUtils.`$$`(dialog, R.id.port_input_layout) as TextInputLayout
mPort = ViewUtils.`$$`(dialog, R.id.port) as EditText
val type = Settings.getProxyType()
- (mType!!.editText as AutoCompleteTextView).setText(
- array[MathUtils.clamp(
- type,
- 0,
- array.size
- )], false
- )
+ (mType!!.editText as AutoCompleteTextView).setText(array[getProxyTypeIndex(type)], false)
mIp!!.setText(Settings.getProxyIp())
val portString: String?
val port = Settings.getProxyPort()
@@ -127,7 +126,7 @@ class ProxyPreference @JvmOverloads constructor(
if (null == dialog || null == mType || null == mIpInputLayout || null == mIp || null == mPortInputLayout || null == mPort) {
return
}
- val type = mArray.indexOf(mType!!.editText!!.text.toString())
+ val type = getProxyType(mArray.indexOf(mType!!.editText!!.text.toString()))
val ip = mIp!!.text.toString().trim { it <= ' ' }
if (ip.isEmpty()) {
if (type == EhProxySelector.TYPE_HTTP || type == EhProxySelector.TYPE_SOCKS) {
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index dbc1b3a35..c4290f81c 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -222,9 +222,7 @@
- @string/proxy_direct
- - @string/proxy_system
- HTTP
- - SOCKS