Feature: add prefer h3 dns

This commit is contained in:
djoeni 2022-07-16 05:59:21 +07:00
parent 6626e1649b
commit 5255a0de81
8 changed files with 74 additions and 3 deletions

View File

@ -40,7 +40,7 @@ subprojects {
minSdk = 21
targetSdk = 31
versionName = "2.5.11-pre01"
versionName = "2.5.11-pre02"
versionCode = 205011
resValue("string", "release_name", "v$versionName")

View File

@ -73,6 +73,9 @@ data class ConfigurationOverride(
@SerialName("enable")
var enable: Boolean? = null,
@SerialName("prefer-h3")
var preferH3: Boolean? = null,
@SerialName("listen")
var listen: String? = null,
@ -150,6 +153,9 @@ data class ConfigurationOverride(
@SerialName("skip-domain")
var skipDomain: List<String>? = null,
@SerialName("port-whitelist")
var portWhitelist: List<String>? = null,
)
@Serializable

View File

@ -93,6 +93,47 @@ class MetaFeatureSettingsDesign(
title = R.string.enable_process,
)
category(R.string.dns)
val dnsDependencies: MutableList<Preference> = mutableListOf()
val dns = selectableList(
value = configuration.dns::enable,
values = arrayOf(
null,
true,
false
),
valuesText = arrayOf(
R.string.dont_modify,
R.string.force_enable,
R.string.use_built_in,
),
title = R.string.strategy
) {
listener = OnChangedListener {
if (configuration.dns.enable == false) {
dnsDependencies.forEach {
it.enabled = false
}
} else {
dnsDependencies.forEach {
it.enabled = true
}
}
}
}
selectableList(
value = configuration.dns::preferH3,
values = booleanValues,
valuesText = booleanValuesText,
title = R.string.prefer_h3,
configure = dnsDependencies::add,
)
dns.listener?.onChanged()
category(R.string.sniffer_setting)
val snifferDependencies: MutableList<Preference> = mutableListOf()
@ -148,8 +189,16 @@ class MetaFeatureSettingsDesign(
configure = snifferDependencies::add,
)
sniffer.listener?.onChanged()
editableTextList(
value = configuration.sniffer::portWhitelist,
adapter = TextAdapter.String,
title = R.string.port_whitelist,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)
sniffer.listener?.onChanged()
/*
category(R.string.geox_url_setting)
val geoxurlDependencies: MutableList<Preference> = mutableListOf()
@ -180,6 +229,7 @@ class MetaFeatureSettingsDesign(
empty = R.string.geosite_url,
configure = geoxurlDependencies::add,
)
*/
}
binding.content.addView(screen.root)

View File

@ -271,6 +271,14 @@ class OverrideSettingsDesign(
}
}
selectableList(
value = configuration.dns::preferH3,
values = booleanValues,
valuesText = booleanValuesText,
title = R.string.prefer_h3,
configure = dnsDependencies::add,
)
editableText(
value = configuration.dns::listen,
adapter = NullableTextAdapter.String,

View File

@ -228,4 +228,6 @@
<string name="geox_geoip">GeoIp Url</string>
<string name="geox_mmdb">MMDB Url</string>
<string name="geox_geosite">Geosite Url</string>
<string name="prefer_h3">Prefer h3</string>
<string name="port_whitelist">Port Whitelist</string>
</resources>

View File

@ -228,4 +228,6 @@
<string name="geox_geoip">GeoIp Url</string>
<string name="geox_mmdb">MMDB Url</string>
<string name="geox_geosite">Geosite Url</string>
<string name="prefer_h3">Prefer h3</string>
<string name="port_whitelist">Port Whitelist</string>
</resources>

View File

@ -231,4 +231,6 @@
<string name="geox_geoip">GeoIp Url</string>
<string name="geox_mmdb">MMDB Url</string>
<string name="geox_geosite">Geosite Url</string>
<string name="prefer_h3">Prefer h3</string>
<string name="port_whitelist">Port Whitelist</string>
</resources>

View File

@ -132,7 +132,7 @@
<string name="general">General</string>
<string name="dns">DNS</string>
<string name="prefer_h3">Prefer h3</string>
<string name="http_port">HTTP Port</string>
<string name="socks_port">Socks Port</string>
<string name="redirect_port">Redirect Port</string>
@ -286,6 +286,7 @@
<string name="sniffing">Sniffer Mode</string>
<string name="force_domain">Force Domain</string>
<string name="skip_domain">Skip Domain</string>
<string name="port_whitelist">Port Whitelist</string>
<string name="disable_sniffer">Disable Sniffer</string>
<string name="sniffer_config">Load Sniffer From Config</string>
<string name="sniffer_override">Override Sniffer Config</string>