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