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 3ae806af..bceef3f2 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 @@ -109,6 +109,9 @@ data class ConfigurationOverride( @SerialName("fake-ip-filter") var fakeIpFilter: List? = null, + @SerialName("fake-ip-filter-mode") + var fakeIPFilterMode: FilterMode? = null, + @SerialName("fallback-filter") val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter(), @@ -159,6 +162,14 @@ data class ConfigurationOverride( @SerialName("fake-ip") FakeIp, } + @Serializable + enum class FilterMode { + @SerialName("blacklist") + BlackList, + + @SerialName("whitelist") + WhiteList, + } @Serializable data class Sniffer( diff --git a/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt index 3f17f70e..1b91ce4a 100644 --- a/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt +++ b/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt @@ -333,6 +333,22 @@ class OverrideSettingsDesign( configure = dnsDependencies::add, ) + selectableList( + value = configuration.dns::fakeIPFilterMode, + values = arrayOf( + null, + ConfigurationOverride.FilterMode.BlackList, + ConfigurationOverride.FilterMode.WhiteList + ), + valuesText = arrayOf( + R.string.dont_modify, + R.string.blacklist, + R.string.whitelist + ), + title = R.string.fakeip_filter_mode, + configure = dnsDependencies::add, + ) + selectableList( value = configuration.dns.fallbackFilter::geoIp, values = booleanValues, diff --git a/design/src/main/res/values-zh/strings.xml b/design/src/main/res/values-zh/strings.xml index 0063c314..0841c698 100644 --- a/design/src/main/res/values-zh/strings.xml +++ b/design/src/main/res/values-zh/strings.xml @@ -127,11 +127,14 @@ Fallback Name Server Default Name Server FakeIP 过滤器 + FakeIP 过滤器模式 GeoIP Fallback IPCIDR Fallback 使用内置 Real-IP 至 域名映射 Fake-IP 至 域名映射 + 黑名单 + 白名单 OFF Strict Always diff --git a/design/src/main/res/values/strings.xml b/design/src/main/res/values/strings.xml index f6d20fd1..2f9ec50f 100644 --- a/design/src/main/res/values/strings.xml +++ b/design/src/main/res/values/strings.xml @@ -162,6 +162,7 @@ Fallback Name Server Default Name Server Fake-IP Filter + Fake-IP Filter Mode GeoIP Fallback GeoIP Fallback Code IPCIDR Fallback @@ -184,6 +185,9 @@ Real-IP to domain mapping Fake-IP to domain mapping + Black List + White List + OFF Strict Always