diff --git a/res/layout/private_dns_mode_dialog.xml b/res/layout/private_dns_mode_dialog.xml index 004401de753..315bb63ffd2 100644 --- a/res/layout/private_dns_mode_dialog.xml +++ b/res/layout/private_dns_mode_dialog.xml @@ -41,6 +41,10 @@ android:id="@+id/private_dns_mode_cloudflare" layout="@layout/preference_widget_dialog_radiobutton"/> + + diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml index 1365c09ee11..202a96310cf 100644 --- a/res/values/evolution_strings.xml +++ b/res/values/evolution_strings.xml @@ -27,4 +27,9 @@ Force LTE CA Force LTE carrier aggregation to work + + + AdGuard DNS + + dns.adguard.com diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java index be7cec58323..1caeb7de8ba 100644 --- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java +++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java @@ -73,11 +73,13 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; + private static final int PRIVATE_DNS_MODE_ADGUARD = 5; static { PRIVATE_DNS_MAP = new HashMap<>(); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare); + PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_ADGUARD, R.id.private_dns_mode_adguard); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider); } @@ -145,8 +147,12 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat ConnectivitySettingsManager.getPrivateDnsHostname(context); final String cloudflareHostname = context.getString(R.string.private_dns_hostname_cloudflare); + final String adguardHostname = + context.getString(R.string.private_dns_hostname_adguard); if (privateDnsHostname.equals(cloudflareHostname)) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; + } else if (privateDnsHostname.equals(adguardHostname)) { + mMode = PRIVATE_DNS_MODE_ADGUARD; } } mRadioGroup = view.findViewById(R.id.private_dns_radio_group); @@ -159,6 +165,9 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat final RadioButton cloudflareRadioButton = view.findViewById(R.id.private_dns_mode_cloudflare); cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare); + final RadioButton adguardRadioButton = + view.findViewById(R.id.private_dns_mode_adguard); + adguardRadioButton.setText(R.string.private_dns_mode_adguard); final RadioButton opportunisticRadioButton = view.findViewById(R.id.private_dns_mode_opportunistic); opportunisticRadioButton.setText( @@ -196,6 +205,8 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat mMode = PRIVATE_DNS_MODE_OFF; } else if (checkedId == R.id.private_dns_mode_cloudflare) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; + } else if (checkedId == R.id.private_dns_mode_adguard) { + mMode = PRIVATE_DNS_MODE_ADGUARD; } else if (checkedId == R.id.private_dns_mode_opportunistic) { mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC; } else if (checkedId == R.id.private_dns_mode_provider) { @@ -291,6 +302,11 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat context.getString(R.string.private_dns_hostname_cloudflare); ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname); modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; + } else if (mMode == PRIVATE_DNS_MODE_ADGUARD) { + final String adguardHostname = + context.getString(R.string.private_dns_hostname_adguard); + ConnectivitySettingsManager.setPrivateDnsHostname(context, adguardHostname); + modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; } ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet); diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java index 9a80d0d0b6b..9c0b9bdf00a 100644 --- a/src/com/android/settings/network/PrivateDnsPreferenceController.java +++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java @@ -67,6 +67,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; + private static final int PRIVATE_DNS_MODE_ADGUARD = 5; private final Handler mHandler; private final ContentObserver mSettingsObserver; @@ -133,6 +134,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController case PRIVATE_DNS_MODE_OFF: return res.getString(com.android.settingslib.R.string.private_dns_mode_off); case PRIVATE_DNS_MODE_CLOUDFLARE: + case PRIVATE_DNS_MODE_ADGUARD: case PRIVATE_DNS_MODE_OPPORTUNISTIC: return dnsesResolved ? res.getString(R.string.private_dns_mode_on) : res.getString( @@ -146,8 +148,12 @@ public class PrivateDnsPreferenceController extends BasePreferenceController ConnectivitySettingsManager.getPrivateDnsHostname(mContext); final String cloudflareHostname = res.getString(R.string.private_dns_hostname_cloudflare); + final String adguardHostname = + res.getString(R.string.private_dns_hostname_adguard); if (privateDnsHostname.equals(cloudflareHostname)) { return res.getString(R.string.private_dns_mode_cloudflare); + } else if (privateDnsHostname.equals(adguardHostname)) { + return res.getString(R.string.private_dns_mode_adguard); } return privateDnsHostname; }