Merge "Use [set|get]PrivateDnsMode directly" am: 2e7309ffd3 am: aa307b03a9
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1675475
Change-Id: I460d308ab370a662b63a43c7e027e355c7d36130
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 822aad0..1c3fc76 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -15,9 +15,9 @@
*/
package com.android.settings.network;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -27,7 +27,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.net.ConnectivityManager;
+import android.net.ConnectivitySettingsManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -70,7 +70,7 @@
private static final String TAG = "PrivateDnsModeDialog";
// DNS_MODE -> RadioButton id
- private static final Map<String, Integer> PRIVATE_DNS_MAP;
+ private static final Map<Integer, Integer> PRIVATE_DNS_MAP;
static {
PRIVATE_DNS_MAP = new HashMap<>();
@@ -93,7 +93,7 @@
@VisibleForTesting
RadioGroup mRadioGroup;
@VisibleForTesting
- String mMode;
+ int mMode;
public PrivateDnsModeDialogPreference(Context context) {
super(context);
@@ -160,7 +160,7 @@
final Context context = getContext();
final ContentResolver contentResolver = context.getContentResolver();
- mMode = ConnectivityManager.getPrivateDnsMode(context);
+ mMode = ConnectivitySettingsManager.getPrivateDnsMode(context);
mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname);
mEditText.addTextChangedListener(this);
@@ -196,15 +196,15 @@
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
final Context context = getContext();
- if (mMode.equals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
+ if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
// Only clickable if hostname is valid, so we could save it safely
- Settings.Global.putString(context.getContentResolver(), HOSTNAME_KEY,
+ ConnectivitySettingsManager.setPrivateDnsHostname(context,
mEditText.getText().toString());
}
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
- Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
+ ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
}
}
@@ -264,7 +264,7 @@
}
private void updateDialogInfo() {
- final boolean modeProvider = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME.equals(mMode);
+ final boolean modeProvider = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME == mMode;
if (mEditText != null) {
mEditText.setEnabled(modeProvider);
}
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index 4aa92f4..07d5714 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -16,9 +16,9 @@
package com.android.settings.network;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.provider.Settings.Global.PRIVATE_DNS_DEFAULT_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
@@ -29,6 +29,7 @@
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
+import android.net.ConnectivitySettingsManager;
import android.net.LinkProperties;
import android.net.Network;
import android.net.Uri;
@@ -118,7 +119,7 @@
public CharSequence getSummary() {
final Resources res = mContext.getResources();
final ContentResolver cr = mContext.getContentResolver();
- final String mode = ConnectivityManager.getPrivateDnsMode(mContext);
+ final int mode = ConnectivitySettingsManager.getPrivateDnsMode(mContext);
final LinkProperties lp = mLatestLinkProperties;
final List<InetAddress> dnses = (lp == null) ? null : lp.getValidatedPrivateDnsServers();
final boolean dnsesResolved = !ArrayUtils.isEmpty(dnses);
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
index 5fd417d..85a67f6 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
@@ -16,10 +16,9 @@
package com.android.settings.network;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
-import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
@@ -28,11 +27,9 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
-import android.net.ConnectivityManager;
-import android.provider.Settings;
+import android.net.ConnectivitySettingsManager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
@@ -118,10 +115,8 @@
public void testOnBindDialogView_containsCorrectData() {
// Don't set settings to the default value ("opportunistic") as that
// risks masking failure to read the mode from settings.
- Settings.Global.putString(mContext.getContentResolver(),
- PrivateDnsModeDialogPreference.MODE_KEY, PRIVATE_DNS_MODE_OFF);
- Settings.Global.putString(mContext.getContentResolver(),
- PrivateDnsModeDialogPreference.HOSTNAME_KEY, HOST_NAME);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OFF);
+ ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOST_NAME);
final LayoutInflater inflater = LayoutInflater.from(mContext);
final View view = inflater.inflate(R.layout.private_dns_mode_dialog,
@@ -159,29 +154,26 @@
@Test
public void testOnClick_positiveButtonClicked_saveData() {
// Set the default settings to OFF
- final ContentResolver contentResolver = mContext.getContentResolver();
- Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OFF);
- mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+ mPreference.mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
mPreference.onClick(null, DialogInterface.BUTTON_POSITIVE);
// Change to OPPORTUNISTIC
- assertThat(Settings.Global.getString(contentResolver, PRIVATE_DNS_MODE)).isEqualTo(
+ assertThat(ConnectivitySettingsManager.getPrivateDnsMode(mContext)).isEqualTo(
PRIVATE_DNS_MODE_OPPORTUNISTIC);
}
@Test
public void testOnClick_negativeButtonClicked_doNothing() {
// Set the default settings to OFF
- final ContentResolver contentResolver = mContext.getContentResolver();
- Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OFF);
- mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+ mPreference.mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
mPreference.onClick(null, DialogInterface.BUTTON_NEGATIVE);
// Still equal to OFF
- assertThat(Settings.Global.getString(contentResolver,
- Settings.Global.PRIVATE_DNS_MODE)).isEqualTo(
- ConnectivityManager.PRIVATE_DNS_MODE_OFF);
+ assertThat(ConnectivitySettingsManager.getPrivateDnsMode(mContext)).isEqualTo(
+ PRIVATE_DNS_MODE_OFF);
}
}
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index 390a674..e31d959 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -16,10 +16,9 @@
package com.android.settings.network;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
-import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
-import static android.provider.Settings.Global.PRIVATE_DNS_DEFAULT_MODE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
@@ -48,6 +47,7 @@
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
+import android.net.ConnectivitySettingsManager;
import android.net.LinkProperties;
import android.net.Network;
import android.os.Handler;
@@ -193,8 +193,8 @@
@Test
public void getSummary_PrivateDnsModeOff() {
- setPrivateDnsMode(PRIVATE_DNS_MODE_OFF);
- setPrivateDnsProviderHostname(HOSTNAME);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OFF);
+ ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));
@@ -203,8 +203,8 @@
@Test
public void getSummary_PrivateDnsModeOpportunistic() {
mLifecycle.handleLifecycleEvent(ON_START);
- setPrivateDnsMode(PRIVATE_DNS_MODE_OPPORTUNISTIC);
- setPrivateDnsProviderHostname(HOSTNAME);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OPPORTUNISTIC);
+ ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
@@ -226,8 +226,8 @@
@Test
public void getSummary_PrivateDnsModeProviderHostname() {
mLifecycle.handleLifecycleEvent(ON_START);
- setPrivateDnsMode(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME);
- setPrivateDnsProviderHostname(HOSTNAME);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_PROVIDER_HOSTNAME);
+ ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(
@@ -252,7 +252,7 @@
public void getSummary_PrivateDnsDefaultMode() {
// Default mode is opportunistic, unless overridden by a Settings push.
setPrivateDnsMode("");
- setPrivateDnsProviderHostname("");
+ ConnectivitySettingsManager.setPrivateDnsHostname(mContext, "");
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
@@ -260,7 +260,7 @@
reset(mController);
reset(mPreference);
// Pretend an emergency gservices setting has disabled default-opportunistic.
- Settings.Global.putString(mContentResolver, PRIVATE_DNS_DEFAULT_MODE, PRIVATE_DNS_MODE_OFF);
+ ConnectivitySettingsManager.setPrivateDnsDefaultMode(mContext, PRIVATE_DNS_MODE_OFF);
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));
@@ -270,7 +270,7 @@
// The user interacting with the Private DNS menu, explicitly choosing
// opportunistic mode, will be able to use despite the change to the
// default setting above.
- setPrivateDnsMode(PRIVATE_DNS_MODE_OPPORTUNISTIC);
+ ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OPPORTUNISTIC);
mController.updateState(mPreference);
verify(mController, atLeastOnce()).getSummary();
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
@@ -305,10 +305,6 @@
Settings.Global.putString(mContentResolver, PRIVATE_DNS_MODE, mode);
}
- private void setPrivateDnsProviderHostname(String name) {
- Settings.Global.putString(mContentResolver, PRIVATE_DNS_SPECIFIER, name);
- }
-
private String getResourceString(int which) {
return mContext.getResources().getString(which);
}