Settings: Add more DNS providers

Co-authored-by: Hưng Phan <phandinhhungvp2001@gmail.com>
Co-authored-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This commit is contained in:
minaripenguin37
2022-10-16 17:28:33 +08:00
committed by Joey
parent daac5ad57c
commit 85c24e4cea
4 changed files with 93 additions and 0 deletions

View File

@@ -74,12 +74,18 @@ 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;
private static final int PRIVATE_DNS_MODE_OPEN_DNS = 6;
private static final int PRIVATE_DNS_MODE_CLEANBROWSING = 7;
private static final int PRIVATE_DNS_MODE_QUAD9 = 8;
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_OPEN_DNS, R.id.private_dns_mode_open_dns);
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLEANBROWSING, R.id.private_dns_mode_cleanbrowsing);
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_QUAD9, R.id.private_dns_mode_quad9);
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);
}
@@ -149,10 +155,22 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
context.getString(R.string.private_dns_hostname_cloudflare);
final String adguardHostname =
context.getString(R.string.private_dns_hostname_adguard);
final String opendnsHostname =
context.getString(R.string.private_dns_hostname_open_dns);
final String cleanbrowsingHostname =
context.getString(R.string.private_dns_hostname_cleanbrowsing);
final String quad9Hostname =
context.getString(R.string.private_dns_hostname_quad9);
if (privateDnsHostname.equals(cloudflareHostname)) {
mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
} else if (privateDnsHostname.equals(adguardHostname)) {
mMode = PRIVATE_DNS_MODE_ADGUARD;
} else if (privateDnsHostname.equals(opendnsHostname)) {
mMode = PRIVATE_DNS_MODE_OPEN_DNS;
} else if (privateDnsHostname.equals(cleanbrowsingHostname)) {
mMode = PRIVATE_DNS_MODE_CLEANBROWSING;
} else if (privateDnsHostname.equals(quad9Hostname)) {
mMode = PRIVATE_DNS_MODE_QUAD9;
}
}
mRadioGroup = view.findViewById(R.id.private_dns_radio_group);
@@ -168,6 +186,15 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
final RadioButton adguardRadioButton =
view.findViewById(R.id.private_dns_mode_adguard);
adguardRadioButton.setText(R.string.private_dns_mode_adguard);
final RadioButton opendnsRadioButton =
view.findViewById(R.id.private_dns_mode_open_dns);
opendnsRadioButton.setText(R.string.private_dns_mode_open_dns);
final RadioButton cleanbrowsingRadioButton =
view.findViewById(R.id.private_dns_mode_cleanbrowsing);
cleanbrowsingRadioButton.setText(R.string.private_dns_mode_cleanbrowsing);
final RadioButton quad9RadioButton =
view.findViewById(R.id.private_dns_mode_quad9);
quad9RadioButton.setText(R.string.private_dns_mode_quad9);
final RadioButton opportunisticRadioButton =
view.findViewById(R.id.private_dns_mode_opportunistic);
opportunisticRadioButton.setText(
@@ -207,6 +234,12 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
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_open_dns) {
mMode = PRIVATE_DNS_MODE_OPEN_DNS;
} else if (checkedId == R.id.private_dns_mode_cleanbrowsing) {
mMode = PRIVATE_DNS_MODE_CLEANBROWSING;
} else if (checkedId == R.id.private_dns_mode_quad9) {
mMode = PRIVATE_DNS_MODE_QUAD9;
} else if (checkedId == R.id.private_dns_mode_opportunistic) {
mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
} else if (checkedId == R.id.private_dns_mode_provider) {
@@ -307,6 +340,21 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
context.getString(R.string.private_dns_hostname_adguard);
ConnectivitySettingsManager.setPrivateDnsHostname(context, adguardHostname);
modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
} else if (mMode == PRIVATE_DNS_MODE_OPEN_DNS) {
final String opendnsHostname =
context.getString(R.string.private_dns_hostname_open_dns);
ConnectivitySettingsManager.setPrivateDnsHostname(context, opendnsHostname);
modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
} else if (mMode == PRIVATE_DNS_MODE_CLEANBROWSING) {
final String cleanbrowsingHostname =
context.getString(R.string.private_dns_hostname_cleanbrowsing);
ConnectivitySettingsManager.setPrivateDnsHostname(context, cleanbrowsingHostname);
modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
} else if (mMode == PRIVATE_DNS_MODE_QUAD9) {
final String quad9Hostname =
context.getString(R.string.private_dns_hostname_quad9);
ConnectivitySettingsManager.setPrivateDnsHostname(context, quad9Hostname);
modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
}
ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet);

View File

@@ -68,6 +68,9 @@ 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 static final int PRIVATE_DNS_MODE_OPEN_DNS = 6;
private static final int PRIVATE_DNS_MODE_CLEANBROWSING = 7;
private static final int PRIVATE_DNS_MODE_QUAD9 = 8;
private final Handler mHandler;
private final ContentObserver mSettingsObserver;
@@ -135,6 +138,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
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_OPEN_DNS:
case PRIVATE_DNS_MODE_CLEANBROWSING:
case PRIVATE_DNS_MODE_QUAD9:
case PRIVATE_DNS_MODE_OPPORTUNISTIC:
return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
: res.getString(
@@ -150,10 +156,22 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
res.getString(R.string.private_dns_hostname_cloudflare);
final String adguardHostname =
res.getString(R.string.private_dns_hostname_adguard);
final String opendnsHostname =
res.getString(R.string.private_dns_hostname_open_dns);
final String cleanbrowsingHostname =
res.getString(R.string.private_dns_hostname_cleanbrowsing);
final String quad9Hostname =
res.getString(R.string.private_dns_hostname_quad9);
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);
} else if (privateDnsHostname.equals(opendnsHostname)) {
return res.getString(R.string.private_dns_mode_open_dns);
} else if (privateDnsHostname.equals(cleanbrowsingHostname)) {
return res.getString(R.string.private_dns_mode_cleanbrowsing);
} else if (privateDnsHostname.equals(quad9Hostname)) {
return res.getString(R.string.private_dns_mode_quad9);
}
return privateDnsHostname;
}