Factor in PRIVATE_DNS_MODE_DEFAULTSETTING value
This setting can be used to change the in-code default. Test: as follows - built, flashed, booted - make -j50 RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsModeDialogPreferenceTest passes - make -j50 RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsPreferenceControllerTest passes Bug: 79719289 Change-Id: I27e5fb9cc66dde1df72395c22179bca3f62ef782
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.network;
|
package com.android.settings.network;
|
||||||
|
|
||||||
|
import static android.net.ConnectivityManager.PRIVATE_DNS_DEFAULT_MODE_FALLBACK;
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
|
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_OPPORTUNISTIC;
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
||||||
@@ -79,8 +80,11 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreference imple
|
|||||||
static final String HOSTNAME_KEY = Settings.Global.PRIVATE_DNS_SPECIFIER;
|
static final String HOSTNAME_KEY = Settings.Global.PRIVATE_DNS_SPECIFIER;
|
||||||
|
|
||||||
public static String getModeFromSettings(ContentResolver cr) {
|
public static String getModeFromSettings(ContentResolver cr) {
|
||||||
final String mode = Settings.Global.getString(cr, MODE_KEY);
|
String mode = Settings.Global.getString(cr, MODE_KEY);
|
||||||
return PRIVATE_DNS_MAP.containsKey(mode) ? mode : PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
if (!PRIVATE_DNS_MAP.containsKey(mode)) {
|
||||||
|
mode = Settings.Global.getString(cr, Settings.Global.PRIVATE_DNS_DEFAULT_MODE);
|
||||||
|
}
|
||||||
|
return PRIVATE_DNS_MAP.containsKey(mode) ? mode : PRIVATE_DNS_DEFAULT_MODE_FALLBACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getHostnameFromSettings(ContentResolver cr) {
|
public static String getHostnameFromSettings(ContentResolver cr) {
|
||||||
|
@@ -19,6 +19,9 @@ package com.android.settings.network;
|
|||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
|
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_OPPORTUNISTIC;
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
import static android.net.ConnectivityManager.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;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
@@ -51,8 +54,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
|
|||||||
private static final String KEY_PRIVATE_DNS_SETTINGS = "private_dns_settings";
|
private static final String KEY_PRIVATE_DNS_SETTINGS = "private_dns_settings";
|
||||||
|
|
||||||
private static final Uri[] SETTINGS_URIS = new Uri[]{
|
private static final Uri[] SETTINGS_URIS = new Uri[]{
|
||||||
Settings.Global.getUriFor(Settings.Global.PRIVATE_DNS_MODE),
|
Settings.Global.getUriFor(PRIVATE_DNS_MODE),
|
||||||
Settings.Global.getUriFor(Settings.Global.PRIVATE_DNS_SPECIFIER),
|
Settings.Global.getUriFor(PRIVATE_DNS_DEFAULT_MODE),
|
||||||
|
Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
|
||||||
};
|
};
|
||||||
|
|
||||||
private final Handler mHandler;
|
private final Handler mHandler;
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.network;
|
|||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
|
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_OPPORTUNISTIC;
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
||||||
|
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.Mockito.anyInt;
|
import static org.mockito.Mockito.anyInt;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -158,24 +159,21 @@ public class PrivateDnsModeDialogPreferenceTest {
|
|||||||
public void testOnClick_positiveButtonClicked_saveData() {
|
public void testOnClick_positiveButtonClicked_saveData() {
|
||||||
// Set the default settings to OFF
|
// Set the default settings to OFF
|
||||||
final ContentResolver contentResolver = mContext.getContentResolver();
|
final ContentResolver contentResolver = mContext.getContentResolver();
|
||||||
Settings.Global.putString(contentResolver, Settings.Global.PRIVATE_DNS_MODE,
|
Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);
|
||||||
ConnectivityManager.PRIVATE_DNS_MODE_OFF);
|
|
||||||
|
|
||||||
mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
||||||
mPreference.onClick(null, DialogInterface.BUTTON_POSITIVE);
|
mPreference.onClick(null, DialogInterface.BUTTON_POSITIVE);
|
||||||
|
|
||||||
// Change to OPPORTUNISTIC
|
// Change to OPPORTUNISTIC
|
||||||
assertThat(Settings.Global.getString(contentResolver,
|
assertThat(Settings.Global.getString(contentResolver, PRIVATE_DNS_MODE)).isEqualTo(
|
||||||
Settings.Global.PRIVATE_DNS_MODE)).isEqualTo(
|
PRIVATE_DNS_MODE_OPPORTUNISTIC);
|
||||||
ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnClick_negativeButtonClicked_doNothing() {
|
public void testOnClick_negativeButtonClicked_doNothing() {
|
||||||
// Set the default settings to OFF
|
// Set the default settings to OFF
|
||||||
final ContentResolver contentResolver = mContext.getContentResolver();
|
final ContentResolver contentResolver = mContext.getContentResolver();
|
||||||
Settings.Global.putString(contentResolver, Settings.Global.PRIVATE_DNS_MODE,
|
Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);
|
||||||
ConnectivityManager.PRIVATE_DNS_MODE_OFF);
|
|
||||||
|
|
||||||
mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
||||||
mPreference.onClick(null, DialogInterface.BUTTON_NEGATIVE);
|
mPreference.onClick(null, DialogInterface.BUTTON_NEGATIVE);
|
||||||
|
@@ -21,6 +21,7 @@ import static android.arch.lifecycle.Lifecycle.Event.ON_STOP;
|
|||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
|
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_OPPORTUNISTIC;
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
|
import static android.net.ConnectivityManager.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_MODE;
|
||||||
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
|
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
@@ -220,6 +221,34 @@ public class PrivateDnsPreferenceControllerTest {
|
|||||||
getResourceString(R.string.private_dns_mode_provider_failure));
|
getResourceString(R.string.private_dns_mode_provider_failure));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSummary_PrivateDnsDefaultMode() {
|
||||||
|
// Default mode is opportunistic, unless overridden by a Settings push.
|
||||||
|
setPrivateDnsMode("");
|
||||||
|
setPrivateDnsProviderHostname("");
|
||||||
|
mController.updateState(mPreference);
|
||||||
|
verify(mController, atLeastOnce()).getSummary();
|
||||||
|
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
|
||||||
|
|
||||||
|
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);
|
||||||
|
mController.updateState(mPreference);
|
||||||
|
verify(mController, atLeastOnce()).getSummary();
|
||||||
|
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));
|
||||||
|
|
||||||
|
reset(mController);
|
||||||
|
reset(mPreference);
|
||||||
|
// 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);
|
||||||
|
mController.updateState(mPreference);
|
||||||
|
verify(mController, atLeastOnce()).getSummary();
|
||||||
|
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
|
||||||
|
}
|
||||||
|
|
||||||
private void setPrivateDnsMode(String mode) {
|
private void setPrivateDnsMode(String mode) {
|
||||||
Settings.Global.putString(mContentResolver, PRIVATE_DNS_MODE, mode);
|
Settings.Global.putString(mContentResolver, PRIVATE_DNS_MODE, mode);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user