Use [set|get]PrivateDnsMode directly
The value of PRIVATE_DNS_MODE_* has changed from String to int and ConnectivityManager provides 2 new APIs to set and get private DNS mode, the caller can use them directly and doesn't need to update Settings by itself. Bug: 185311744 Test: 1. make RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsModeDialogPreferenceTest 2. make RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsPreferenceControllerTest Change-Id: I47706efe9c53a00438fdec97fda244638cecb3dc Merged-In: I47706efe9c53a00438fdec97fda244638cecb3dc (Cherry-picked from ag/14230401)
This commit is contained in:
@@ -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.ContentResolver;
|
||||
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 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
|
||||
|
||||
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 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
|
||||
@VisibleForTesting
|
||||
RadioGroup mRadioGroup;
|
||||
@VisibleForTesting
|
||||
String mMode;
|
||||
int mMode;
|
||||
|
||||
public PrivateDnsModeDialogPreference(Context context) {
|
||||
super(context);
|
||||
@@ -160,7 +160,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
|
||||
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 class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
|
||||
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 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
@@ -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.content.res.Resources;
|
||||
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 class PrivateDnsPreferenceController extends BasePreferenceController
|
||||
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);
|
||||
|
@@ -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.anyInt;
|
||||
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 class PrivateDnsModeDialogPreferenceTest {
|
||||
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 @@ public class PrivateDnsModeDialogPreferenceTest {
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
@@ -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.ContentResolver;
|
||||
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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
|
||||
@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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
@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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
@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 class PrivateDnsPreferenceControllerTest {
|
||||
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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
// 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 @@ public class PrivateDnsPreferenceControllerTest {
|
||||
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user