diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 28488133d25fabdeef0fb62b61ac71168d3df252..86e43a833295cdbd33b4184f518a9348c1a39eaa 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -15,6 +15,11 @@ limitations under the License. --> + + Cloudflare DNS + + one.one.one.one + Extras Advanced settings diff --git a/res/values/e_strings.xml b/res/values/e_strings.xml index b337ff994cf5b0993fd9e224c098e8081dc7c65c..391fdbc3534f2fd1e7b337aa7d0937e11b792c2d 100644 --- a/res/values/e_strings.xml +++ b/res/values/e_strings.xml @@ -33,9 +33,6 @@ You are about to connect to /e/ OS test channel It will allow you to download and install test versions of /e/ OS. Those builds may be unstable, and should be used only for test purposes. Please accept only if you know what you are doing. - - Quad9 DNS - Enable /e/OS Telemetry Enable automatic bug reporting @@ -78,4 +75,8 @@ Find my Device Locate this device + + + Quad9 DNS + dns.quad9.net diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java index 6bf6093f11ff4e1af4ebc75982fc0aa400f85e91..74da484b594a14ebd0669d6f6b253afda75c85e6 100644 --- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java +++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java @@ -71,7 +71,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // DNS_MODE -> RadioButton id private static final Map PRIVATE_DNS_MAP; - // Must match ConnectivitySettingsUtils + // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_QUADNINE = 4; static { @@ -140,6 +140,15 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat protected void onBindDialogView(View view) { final Context context = getContext(); mMode = ConnectivitySettingsManager.getPrivateDnsMode(context); + if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { + final String privateDnsHostname = + ConnectivitySettingsManager.getPrivateDnsHostname(context); + final String quadnineHostname = + context.getString(R.string.private_dns_hostname_quadnine); + if (privateDnsHostname.equals(quadnineHostname)) { + mMode = PRIVATE_DNS_MODE_QUADNINE; + } + } mRadioGroup = view.findViewById(R.id.private_dns_radio_group); mRadioGroup.check(PRIVATE_DNS_MAP.getOrDefault(mMode, R.id.private_dns_mode_opportunistic)); mRadioGroup.setOnCheckedChangeListener(this); @@ -258,6 +267,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat @VisibleForTesting void doSaveButton() { Context context = getContext(); + int modeToSet = mMode; if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { if (mHostnameLayout == null || mHostnameText == null) { Log.e(TAG, "Can't find hostname resources!"); @@ -276,12 +286,17 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat ConnectivitySettingsManager.setPrivateDnsHostname(context, mHostnameText.getText().toString()); + } else if (mMode == PRIVATE_DNS_MODE_QUADNINE) { + final String quadnineHostname = + context.getString(R.string.private_dns_hostname_quadnine); + ConnectivitySettingsManager.setPrivateDnsHostname(context, quadnineHostname); + modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; } - ConnectivitySettingsManager.setPrivateDnsMode(context, mMode); + ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet); FeatureFactory.getFeatureFactory().getMetricsFeatureProvider() - .action(context, SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode); + .action(context, SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet); getDialog().dismiss(); } } diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java index aff8e19a960818487c8ed9d7b5a7a3558eb3d894..072d4aa2d17857d24b122be591ca35a43ee3f5ee 100644 --- a/src/com/android/settings/network/PrivateDnsPreferenceController.java +++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java @@ -65,7 +65,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER), }; - // Must match ConnectivitySettingsUtils + // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_QUADNINE = 4; private final Handler mHandler; @@ -133,18 +133,23 @@ 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_QUADNINE: - return dnsesResolved - ? res.getString(R.string.private_dns_mode_quadnine) - : res.getString(com.android.settingslib.R.string.private_dns_mode_off); case PRIVATE_DNS_MODE_OPPORTUNISTIC: return dnsesResolved ? res.getString(R.string.private_dns_mode_on) : res.getString( com.android.settingslib.R.string.private_dns_mode_opportunistic); case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME: - return dnsesResolved - ? ConnectivitySettingsManager.getPrivateDnsHostname(mContext) - : res.getString( - com.android.settingslib.R.string.private_dns_mode_off); + if (!dnsesResolved) { + return res.getString( + com.android.settingslib.R.string.private_dns_mode_provider_failure); + } + final String privateDnsHostname = + ConnectivitySettingsManager.getPrivateDnsHostname(mContext); + final String quadnineHostname = + res.getString(R.string.private_dns_hostname_quadnine); + if (privateDnsHostname.equals(quadnineHostname)) { + return res.getString(R.string.private_dns_mode_quadnine); + } + return privateDnsHostname; } return ""; }