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 "";
}