diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java index 822aad05f49..1c3fc76dbae 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.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 PRIVATE_DNS_MAP; + private static final Map 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); } diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java index 4aa92f4e500..07d57140ec1 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.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 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 5fd417d7825..85a67f6d62f 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.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); } } diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java index 390a6744d1d..e31d959622a 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.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); }