diff --git a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt index 6332ce3536f907e7090eb2ab2b909b66b2ec9959..8d38406740d8728b7d3cac75d961cf0e7b64495d 100644 --- a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt +++ b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt @@ -80,7 +80,10 @@ data class ConfigurationOverride( var fakeIpFilter: List<String>? = null, @SerialName("fallback-filter") - val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter() + val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter(), + + @SerialName("nameserver-policy") + var nameserverPolicy: Map<String, String>? = null, ) @Serializable diff --git a/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt index 4df91153a572eb8e728bdc2ff256847598004f0c..80c2a92ef50f5e8f543871cc5d6f352851428518 100644 --- a/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt +++ b/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt @@ -378,6 +378,15 @@ class OverrideSettingsDesign( configure = dnsDependencies::add, ) + editableTextMap( + value = configuration.dns::nameserverPolicy, + keyAdapter = TextAdapter.String, + valueAdapter = TextAdapter.String, + title = R.string.name_server_policy, + placeholder = R.string.dont_modify, + configure = dnsDependencies::add, + ) + dns.listener?.onChanged() } diff --git a/design/src/main/res/values-zh-rHK/strings.xml b/design/src/main/res/values-zh-rHK/strings.xml index b5e420bb3b9b12706a59b4e6b4890f2a6e81148a..2668659841dfe2e59d39c3dd91c7f39289cea54c 100644 --- a/design/src/main/res/values-zh-rHK/strings.xml +++ b/design/src/main/res/values-zh-rHK/strings.xml @@ -208,4 +208,7 @@ <string name="active_unsaved_tips">é…置文件需è¦åœ¨æ¿€æ´»ä¹‹å‰ä¿å˜</string> <string name="mode_switch_tips">åƒ…åœ¨æœ¬æ¬¡æœƒè©±ä¸æœ‰æ•ˆ</string> <string name="import_">å°Žå…¥</string> + <string name="sources">æºä»£ç¢¼</string> + <string name="clash_core">Clash æ ¸å¿ƒ</string> + <string name="name_server_policy">Name Server ç–ç•¥</string> </resources> \ No newline at end of file diff --git a/design/src/main/res/values-zh-rTW/strings.xml b/design/src/main/res/values-zh-rTW/strings.xml index e91dda22ac25463fa2ade2258d1113072e182dee..eb7b62e4f54458a5cb74b294dbce5aef9262e1b8 100644 --- a/design/src/main/res/values-zh-rTW/strings.xml +++ b/design/src/main/res/values-zh-rTW/strings.xml @@ -208,4 +208,7 @@ <string name="active_unsaved_tips">é…置文件需è¦åœ¨æ¿€æ´»ä¹‹å‰ä¿å˜</string> <string name="mode_switch_tips">åƒ…åœ¨æœ¬æ¬¡æœƒè©±ä¸æœ‰æ•ˆ</string> <string name="import_">å°Žå…¥</string> + <string name="sources">æºä»£ç¢¼</string> + <string name="clash_core">Clash æ ¸å¿ƒ</string> + <string name="name_server_policy">Name Server ç–ç•¥</string> </resources> \ No newline at end of file diff --git a/design/src/main/res/values-zh/strings.xml b/design/src/main/res/values-zh/strings.xml index cfdbb80a584b92a3a7507baaa8eba7773ec4a0a8..9bddcbaebdd640ac701521c28e8913536a9b4a5d 100644 --- a/design/src/main/res/values-zh/strings.xml +++ b/design/src/main/res/values-zh/strings.xml @@ -210,4 +210,5 @@ <string name="import_">导入</string> <string name="sources">æºä»£ç </string> <string name="clash_core">Clash æ ¸å¿ƒ</string> + <string name="name_server_policy">Name Server ç–ç•¥</string> </resources> \ No newline at end of file diff --git a/design/src/main/res/values/strings.xml b/design/src/main/res/values/strings.xml index 045856e849065c85398e8635e82c30ff14470a39..b2c713296888f9cf57be2fdcbbcacb3f5e0c02df 100644 --- a/design/src/main/res/values/strings.xml +++ b/design/src/main/res/values/strings.xml @@ -159,6 +159,7 @@ <string name="geoip_fallback">GeoIP Fallback</string> <string name="ipcidr_fallback">IPCIDR Fallback</string> <string name="domain_fallback">Domain Fallback</string> + <string name="name_server_policy">Name Server Policy</string> <string name="dont_modify">Do not modify</string> <string name="empty">Empty</string> diff --git a/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt index 6850917dace079a28c5a3e6dd7a683fb4b350035..95e2ce0c6e124f7ee3a36016a536029c90c7e8db 100644 --- a/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt +++ b/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt @@ -379,6 +379,15 @@ class OverrideSettingsDesign( placeholder = R.string.dont_modify, configure = dnsDependencies::add, ) + + editableTextMap( + value = configuration.dns::nameserverPolicy, + keyAdapter = TextAdapter.String, + valueAdapter = TextAdapter.String, + title = R.string.name_server_policy, + placeholder = R.string.dont_modify, + configure = dnsDependencies::add, + ) dns.listener?.onChanged() } @@ -389,4 +398,4 @@ class OverrideSettingsDesign( fun requestClear() { requests.offer(Request.ResetOverride) } -} \ No newline at end of file +}