From 7fb58f6609802a03dc82169531badbad98d4c33d Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 25 Oct 2021 00:50:15 +0200 Subject: Implement custom summary provider for DNS --- .../de/blinkt/openvpn/fragments/Settings_IP.kt | 28 ++++++++++++++++++++-- main/src/ui/res/xml/vpn_ipsettings.xml | 4 ++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt index d2bf4b74..ada77836 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt @@ -40,12 +40,15 @@ class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeL mSearchdomain = findPreference("searchdomain")!! mDNS1 = findPreference("dns1")!! mDNS2 = findPreference("dns2")!! + mDNS1.summaryProvider = DNSSummaryProvider() + mDNS2.summaryProvider = DNSSummaryProvider() mNobind = findPreference("nobind")!! mUsePull.onPreferenceChangeListener = this mOverrideDNS.onPreferenceChangeListener = this loadSettings() } + override fun loadSettings() { if (mProfile.mAuthenticationType == VpnProfile.TYPE_STATICKEYS) mUsePull.isEnabled = false else mUsePull.isChecked = mProfile.mUsePull @@ -102,5 +105,26 @@ class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeL mSearchdomain.isEnabled = enabled } - override fun onCreatePreferences(savedInstanceState: Bundle, rootKey: String) {} -} \ No newline at end of file + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + + } +} + +class DNSSummaryProvider : Preference.SummaryProvider { + override fun provideSummary(preference: Preference?): CharSequence { + val ep = preference as EditTextPreference + var summary = ep.text ?: "" + if (summary == "8.8.4.4" || summary == "8.8.8.8" || summary == "2001:4860:4860::8888" || summary == "2001:4860:4860::8844" ) + summary += " (dns.google.com)" + else if (summary.startsWith("2606:4700:4700::") || summary.startsWith("1.1.1.") || summary.startsWith("1.0.0.")) + summary += " (Cloudflare)" + + else if (summary.startsWith("9.9.9.") || summary.startsWith("2620:fe::")) + summary += " (Quad9)" + else if (summary.isEmpty()) + summary = "(not set)" + + return summary + } + +} diff --git a/main/src/ui/res/xml/vpn_ipsettings.xml b/main/src/ui/res/xml/vpn_ipsettings.xml index 2b03c694..66d7d114 100644 --- a/main/src/ui/res/xml/vpn_ipsettings.xml +++ b/main/src/ui/res/xml/vpn_ipsettings.xml @@ -47,12 +47,12 @@ android:dialogMessage="@string/dns1_summary" android:key="dns1" android:title="@string/dns_server" - app:useSimpleSummaryProvider="true" /> + /> + /> \ No newline at end of file -- cgit v1.2.3