From 1a36218c8034b1629f150218b103edeb3516eac4 Mon Sep 17 00:00:00 2001 From: kr328 Date: Mon, 24 May 2021 12:04:40 +0800 Subject: [PATCH] Feature: add nameserver-policy override --- .../kr328/clash/core/model/ConfigurationOverride.kt | 5 ++++- .../kr328/clash/design/OverrideSettingsDesign.kt | 9 +++++++++ design/src/main/res/values-zh-rHK/strings.xml | 3 +++ design/src/main/res/values-zh-rTW/strings.xml | 3 +++ design/src/main/res/values-zh/strings.xml | 1 + design/src/main/res/values/strings.xml | 1 + .../kr328/clash/design/OverrideSettingsDesign.kt | 11 ++++++++++- 7 files changed, 31 insertions(+), 2 deletions(-) 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 +}