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 6332ce35..8d384067 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? = null, @SerialName("fallback-filter") - val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter() + val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter(), + + @SerialName("nameserver-policy") + var nameserverPolicy: Map? = 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 4df91153..80c2a92e 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 b5e420bb..26686598 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 @@ 配置文件需要在激活之前保存 僅在本次會話中有效 導入 + 源代碼 + Clash 核心 + Name Server 策略 \ 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 e91dda22..eb7b62e4 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 @@ 配置文件需要在激活之前保存 僅在本次會話中有效 導入 + 源代碼 + Clash 核心 + Name Server 策略 \ 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 cfdbb80a..9bddcbae 100644 --- a/design/src/main/res/values-zh/strings.xml +++ b/design/src/main/res/values-zh/strings.xml @@ -210,4 +210,5 @@ 导入 源代码 Clash 核心 + Name Server 策略 \ 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 045856e8..b2c71329 100644 --- a/design/src/main/res/values/strings.xml +++ b/design/src/main/res/values/strings.xml @@ -159,6 +159,7 @@ GeoIP Fallback IPCIDR Fallback Domain Fallback + Name Server Policy Do not modify Empty 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 6850917d..95e2ce0c 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 +}